WO2020187191A1 - 点云编解码方法及编解码器 - Google Patents

点云编解码方法及编解码器 Download PDF

Info

Publication number
WO2020187191A1
WO2020187191A1 PCT/CN2020/079550 CN2020079550W WO2020187191A1 WO 2020187191 A1 WO2020187191 A1 WO 2020187191A1 CN 2020079550 W CN2020079550 W CN 2020079550W WO 2020187191 A1 WO2020187191 A1 WO 2020187191A1
Authority
WO
WIPO (PCT)
Prior art keywords
pixel block
processing mode
occupied
processed
codeword
Prior art date
Application number
PCT/CN2020/079550
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
Priority claimed from CN201910214417.0A external-priority patent/CN111726615B/zh
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2020187191A1 publication Critical patent/WO2020187191A1/zh

Links

Images

Classifications

    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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

Definitions

  • This application relates to the field of coding and decoding technologies, and in particular to point cloud coding and decoding methods and codecs.
  • 3D sensor for example, 3D scanner
  • collecting point cloud data becomes more and more convenient, and the scale of the collected point cloud data is getting larger and larger.
  • high-quality compression, storage and transmission of point clouds have become very important.
  • the encoder when the encoder encodes the point cloud to be coded, it usually needs to down-sample the occupancy map of the original resolution of the point cloud to be coded, and the down-sampled occupancy map (that is, the low-resolution).
  • the relevant information of the occupancy map is sent to the decoder.
  • the encoder and decoder reconstruct the point cloud, they need to upsample the down-sampling occupancy map to obtain the original resolution occupancy map (that is, the high-resolution occupancy map).
  • the up-sampling processed occupancy map reconstructs the point cloud.
  • a judgment operation (if..else..) is usually used to determine the type of the pixel block, thereby determining the processing mode (that is, the filling mode) suitable for the pixel block to be processed. Since the judgment operation is a branch operation, and the branch operation needs to occupy more resources in some application scenarios, this will result in low efficiency of parallel processing of upsampling, thereby affecting the coding and decoding efficiency. For example, for a parallel program running on a graphics processing unit (graphic processing unit), each branch judgment operation needs to occupy two threads, which results in low efficiency of parallel processing of upsampling, which in turn affects coding and decoding efficiency.
  • the embodiments of the present application provide a point cloud coding and decoding method and a codec, which help to improve the parallel processing efficiency of upsampling, thereby improving the coding and decoding efficiency.
  • an embodiment of the present application provides a point cloud decoding method, including: looking up a table (for example, lookup table, LUT) according to the first occupancy codeword to obtain the target processing mode of the pixel block to be processed (also called target filling mode Or pattern); where the first occupied code word is used to characterize whether the current reference pixel block is an occupied pixel block, and/or whether multiple spatial neighboring pixel blocks of the current reference pixel block are occupied pixel blocks;
  • the pixel block is the pixel block in the first occupancy map of the point cloud to be decoded, the pixel block to be processed is the pixel block in the second occupancy map of the point cloud to be decoded, and the current reference pixel block corresponds to the pixel block to be processed;
  • the target processing mode performs filling processing on the pixel block to be processed to obtain the filled pixel block; reconstructs the point cloud to be decoded according to the filled second occupancy map; the filled second occupancy map includes the filled pixel block.
  • the LUT table includes correspondences between multiple reference filling patterns, multiple rotation angles, and multiple occupation codewords; or, the LUT table includes correspondences between multiple filling patterns and multiple occupation codewords.
  • the target processing mode of the pixel block to be processed corresponding to the current reference pixel block is obtained according to the first occupied codeword look-up table (for example, the first occupied codeword is used as an index to look up the table to obtain The entry corresponding to the index), compared with the traditional technology that determines the type of the pixel block to be processed through a judgment operation, thereby determining the target processing mode of the pixel block to be processed, there is no need to perform a judgment branch operation, so it accounts for There are fewer computing resources, which helps to improve the parallel processing efficiency of upsampling, thereby helping to improve the coding and decoding efficiency.
  • the occupancy codeword in this article can be understood as an index for table lookup.
  • the occupancy codeword here is not limited to the attributes or characteristics of the current reference pixel block (also called reference pixel) itself, but refers to Or it characterizes whether the spatial neighboring pixel block (also called spatial neighboring pixel) of the current reference pixel block (also called reference pixel) is occupied or not, and/or the current reference pixel block itself is occupied or not.
  • the resolution of the second occupancy map may be equal to or different from the resolution of the first occupancy map.
  • the resolution of the second occupancy map is greater than or equal to the resolution of the first occupancy map, for example, the second occupancy map is a high-resolution occupancy map of the point cloud to be decoded, and the first occupancy map is the point to be decoded Low-resolution occupancy map of clouds.
  • the pixel block to be processed is a pixel block to be encoded (also called a pixel), and when the method is a point cloud decoding method, the pixel block to be processed is a pixel to be decoded Piece.
  • the current reference pixel block corresponds to the pixel block to be processed, which can be understood as: the position of the current reference pixel block in the first occupancy map is the same as the position of the pixel block to be processed in the second occupancy map. For example, if the current reference pixel block is the bth pixel block in the ath row in the first occupancy map, the pixel block to be processed is the bth pixel block in the ath row in the second occupancy map. Both a and b are integers greater than or equal to 1.
  • the target processing mode is used to indicate the position distribution of occupied pixels (or unoccupied pixels) in the filled pixel block.
  • the filled second occupancy map can be understood as an occupancy map obtained after at least one (for example, each) pixel block to be processed in the second occupancy map is filled.
  • the length of the binary indicator of the first occupied codeword corresponds to the current reference pixel block and the number of all pixel blocks in the multiple spatial adjacent pixel blocks of the current reference pixel block.
  • the value of the Xth bit in the binary indicator is used to indicate whether the pixel block at the corresponding position is an occupied pixel block.
  • the Xth bit is 1, which means that the pixel block at the corresponding position is an occupied pixel block; or, the Xth bit is 0, which means that the pixel block at the corresponding position is an unoccupied pixel block.
  • X is an integer greater than or equal to 1.
  • the X-th bit in the first occupied codeword in the form of a binary indicator is the valid or invalid flag bit of a corresponding pixel block.
  • “multiple spatial adjacent pixel blocks of the current reference pixel block” may be all spatial adjacent pixel blocks of the current reference pixel block, or may be spatial adjacent pixel blocks at the target position of the current reference pixel block , This application does not limit this.
  • the spatial neighboring pixel blocks at the target position of the current reference pixel block may be the spatial neighboring pixel blocks directly above, directly below, directly left, and directly right of the current reference pixel block.
  • filling the pixel block to be processed according to the target processing mode to obtain the filled pixel block includes: filling the pixel block to be processed (for example, the pixel block to be processed with an empty pixel value) according to the target processing mode ; Or, according to the target processing mode, fill the filled pixel block to be processed again.
  • the first occupied codeword is used to characterize whether the current reference pixel block is an occupied pixel block. In another possible design, the first occupied codeword is used to characterize whether neighboring pixel blocks in a part or all of the current reference pixel block are occupied pixel blocks. In another possible design, the first occupied codeword is used to characterize whether the current reference pixel block and its partial or all spatial neighboring pixel blocks are occupied pixel blocks, respectively.
  • the local spatial neighboring pixel block may be a spatial neighboring pixel block at a target location (or a specific position), such as a spatial neighboring pixel block directly above, directly below, directly left, and right.
  • the pixel block to be processed is filled according to the target processing mode to obtain the filled pixel block, including: storing an indicator of the target processing mode (such as a binary indicator, etc.) or a storage corresponding to the target processing mode
  • the data is assigned or copied to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block. For example, copy the corresponding items in the LUT table to the pixel block to be processed to complete the filling of the pixel block to be processed.
  • the target processing mode is stored in the form of an array. Accordingly, the "corresponds to the target processing mode"
  • the "stored data" can be understood as an array.
  • assigning or copying the indicator of the target processing mode or the stored data corresponding to the target processing mode to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block includes: changing the target processing mode
  • the indicator of or the stored data corresponding to the target processing mode is assigned line by line or copied line by line to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block.
  • the filling process is performed in units of rows.
  • the "corresponding pixel" may be a row of pixels in the pixel block to be processed, such as a row of pixels with all 0s or all 1s. In this way, compared with filling one by one or marking one by one or setting one by one, this design method can improve the efficiency of the filling process.
  • assigning or copying the indicator of the target processing mode or the stored data corresponding to the target processing mode to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block includes: changing the target processing mode
  • the indicator of or the stored data corresponding to the target processing mode is assigned column by column or copied column by column to the corresponding pixel in the pixel block to be processed to obtain the filled pixel block.
  • the filling process is performed in units of columns.
  • the “corresponding pixel” may be a column of pixels in the pixel block to be processed, such as a column of pixels with all 0s or all 1s. In this way, compared with filling one by one or marking one by one or setting one by one, this design method can improve the efficiency of the filling process.
  • assigning or copying the indicator of the target processing mode or the stored data corresponding to the target processing mode to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block includes: changing the target processing mode
  • the indicator of or the stored data corresponding to the target processing mode is assigned block by block or copied block by block to the corresponding pixel in the pixel block to be processed to obtain the filled pixel block.
  • the filling process is performed in units of blocks.
  • the “corresponding pixel” may be a pixel in a sub-pixel block in the pixel block to be processed. In this way, compared to the way of filling one by one or marking one by one or setting one by one, this design method can improve the efficiency of the filling process.
  • which method is used for filling processing can be based on the storage method of pixels in the second occupancy map. For example, if the pixels in the second occupancy map are stored row by row, then the pixel block to be processed is performed Fill processing line by line.
  • assign or copy the indicator of the target processing mode or the stored data corresponding to the target processing mode to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block including: filling in pixels as a unit .
  • looking up the table according to the first occupied codeword to obtain the target processing mode of the pixel block to be processed includes: looking up the first table according to the first occupied codeword to obtain a reference corresponding to the first occupied codeword Processing mode (also called reference filling mode) and transformation method (also called reference processing mode and transformation method corresponding to the pixel block to be processed); the first table includes multiple reference processing modes, multiple transformation methods, and multiple occupancy Correspondence between codewords; according to the transformation mode corresponding to the first occupied codeword, the reference processing mode corresponding to the first occupied codeword is transformed to obtain the target processing mode of the pixel block to be processed. In this way, the storage space occupied by the checked table can be saved.
  • the multiple occupation code words included in the first table correspond to the same reference processing mode.
  • the reference processing mode may not be included in the first table.
  • This possible design can be replaced as follows: look up the first table according to the first occupied codeword to obtain the conversion mode corresponding to the first occupied codeword; wherein, the first table includes the relationship between multiple conversion modes and multiple occupied codewords.
  • the reference processing mode is transformed to obtain the target processing mode of the pixel block to be processed.
  • the multiple occupation code words included in the first table correspond to the same conversion mode.
  • the conversion method may not be included in the first table.
  • This possible design can be replaced as follows: look up the first table according to the first occupied codeword to obtain the reference processing mode corresponding to the first occupied codeword; wherein, the first table includes multiple reference processing modes and multiple occupied codewords. Correspondence between; according to the transformation method, the reference processing mode corresponding to the first occupied codeword is transformed to obtain the target processing mode of the pixel block to be processed.
  • the reference processing mode corresponding to the first occupied codeword is transformed to obtain the target processing mode of the pixel block to be processed, including: Rotate the reference processing mode corresponding to the first occupied codeword by a rotation angle corresponding to the occupied codeword to obtain the target processing mode of the pixel block to be processed.
  • the pixels in the reference processing mode corresponding to the first occupied codeword can be rotated as a whole (such as clockwise or counterclockwise), that is, there is no need to distinguish between occupied pixels and/or unoccupied pixels in the reference processing mode s position.
  • the specific clockwise rotation or counterclockwise rotation may be pre-defined, such as pre-defined by a standard; or, the encoder may transmit to the decoder through a code stream, which is not limited in the embodiment of the present application.
  • looking up the table according to the first occupied codeword to obtain the target processing mode of the pixel block to be processed includes: looking up the table according to the first occupied codeword to obtain the reference processing mode corresponding to the first occupied codeword (Also known as reference filling pattern) and rotation angle; this table includes the correspondence between multiple reference processing modes, multiple rotation angles, and multiple occupation code words; according to the rotation angle corresponding to the first occupation code word, Rotate the reference processing mode corresponding to the first occupied codeword to obtain the target processing mode of the pixel block to be processed.
  • looking up the table according to the first occupied codeword to obtain the target processing mode of the pixel block to be processed includes: looking up the second table according to the first occupied codeword to obtain the target processing mode of the pixel block to be processed;
  • the second table includes the correspondence between multiple processing modes and multiple occupied codewords.
  • This possible design can obtain the target processing mode through a look-up table, which is relatively simple to implement. It should be understood that the tables (such as the first table, the second table, etc.) in the embodiments of the present application are used to distinguish different tables, and to limit the order of these tables, which are explained here in a unified manner and will not be repeated hereafter. .
  • looking up the table according to the first occupied code word to obtain the target processing mode of the pixel block to be processed includes: looking up the third table according to the first occupied code word to obtain the target processing mode of the pixel block to be processed Index; the third table includes the correspondence between the indexes of multiple processing modes and the multiple occupancy codewords; the fourth table is checked according to the index of the target processing mode of the pixel block to be processed to obtain the target processing mode of the pixel block to be processed; Among them, the fourth table includes the corresponding relationship between the indexes of the multiple processing modes and the multiple processing modes. In this way, the storage space occupied by the checked table can be saved.
  • looking up the table according to the first occupied codeword to obtain the target processing mode of the pixel block to be processed includes: looking up the fifth table according to the first sub-occupied codeword to obtain the first processing mode;
  • the occupied codeword is used to characterize whether the current reference pixel block is an occupied pixel block;
  • the fifth table includes the correspondence between multiple processing modes and multiple sub-occupied codewords;
  • the second sub-occupied codeword check the sixth table to get The second processing mode; where the second sub-occupied codeword is used to characterize whether the multiple spatial neighboring pixel blocks of the current reference pixel block are occupied pixel blocks respectively;
  • the sixth table includes multiple processing modes and multiple sub-occupied codewords Correspondence between: According to the first processing mode and the second processing mode, determine the target processing mode of the pixel block to be processed. In this way, the storage space occupied by the checked table can be saved.
  • the target processing mode of the pixel block to be processed is determined, including: using "0" to indicate unoccupied and "1" to indicate occupied.
  • the binary indicator of the processing mode and the binary indicator of the second processing mode are bitwise ANDed to obtain the binary indicator of the target processing mode.
  • looking up the table according to the first occupied codeword to obtain the target processing mode of the pixel block to be processed includes: looking up the seventh table according to the number of adjacent pixel blocks in the occupied space of the current reference pixel block, Obtain the third processing mode; the seventh table includes the correspondence between multiple processing modes and multiple numbers; look up the eighth table according to the first occupied codeword to obtain the reference processing mode and rotation corresponding to the first occupied codeword Angle; The eighth table includes the correspondence between multiple reference processing modes, multiple rotation angles, and multiple occupation code words; according to the rotation angle corresponding to the first occupation code word, the reference corresponding to the first occupation code word The processing mode is rotated to obtain the fourth processing mode of the pixel block to be processed; according to the third processing mode and the fourth processing mode, the target processing mode of the pixel block to be processed is determined.
  • determining the target processing mode of the pixel block to be processed may include: in the case of using "0" to indicate unoccupied and "1" to indicate occupied, to The binary indicator of the three processing mode and the binary indicator of the fourth processing mode are bitwise ORed to obtain the binary indicator of the target processing mode.
  • determining the target processing mode of the pixel block to be processed according to the first processing mode and the second processing mode may include: determining the target processing mode of the pixel block to be processed according to the first processing mode, the second processing mode, and the third processing mode Processing mode. For example, when "0" is used to indicate unoccupied, and "1" is used to indicate occupied, the result of bitwise AND of the binary indicator of the first processing mode and the binary indicator of the second processing mode" and the first The binary representation of the three processing mode is bitwise ORed to obtain the binary representation of the target processing mode.
  • an embodiment of the present application provides a point cloud decoding method, including: looking up a table (such as a lookup table, LUT) according to a second occupancy codeword to obtain the target processing mode of the pixel block to be processed (for example, using the second occupancy
  • the codeword is used as an index to look up the table to obtain the entry corresponding to the index);
  • the second occupied codeword is used to characterize whether the pixel block to be processed is an occupied pixel block, and/or multiple spatial adjacent pixels of the pixel block to be processed Whether the blocks are occupied pixel blocks respectively, the pixel blocks to be processed are the pixel blocks in the occupancy map of the point cloud to be decoded; the pixel blocks to be processed are filled according to the target processing mode to obtain the filled pixel blocks; according to the filled occupancy map , Reconstruct the point cloud to be decoded; the filled occupancy map includes the filled pixel block.
  • the LUT table includes correspondences between multiple reference filling patterns, multiple rotation angles, and multiple occupation codewords; or, the LUT table includes correspondences between multiple filling patterns and multiple occupation codewords.
  • the difference between this technical solution and the technical solution provided in the first aspect is that the meanings of the occupation code words in the two technical solutions are different, and the technical solution provided in the first aspect requires the current reference pixel in the first occupation map
  • the relevant information of the block (such as the second occupancy codeword) determines the target processing mode of the pixel block to be processed in the second occupancy map, that is, two occupancy maps need to be involved in the table lookup process.
  • the target processing mode of the pixel block to be processed is determined by the related information of the pixel block to be processed (such as the first occupancy codeword), that is, only one occupancy map is involved in the table look-up process.
  • the pixel block to be processed is filled according to the target processing mode to obtain the filled pixel block, which includes: assigning or copying the indicator of the target processing mode or the stored data corresponding to the target processing mode to the target processing mode.
  • the corresponding pixels in the pixel block are processed to obtain the filled pixel block.
  • assigning or copying the indicator of the target processing mode or the stored data corresponding to the target processing mode to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block includes: changing the target processing mode
  • the indicator or the stored data corresponding to the target processing mode is assigned row by row or copied row by row to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block; or, the indicator of the target processing mode or the target processing mode
  • the corresponding storage data is assigned column by column or copied column by column to the corresponding pixel in the pixel block to be processed to obtain the filled pixel block; or, the indicator of the target processing mode or the stored data corresponding to the target processing mode are assigned block by block Or copy to the corresponding pixels in the pixel block to be processed block by block to obtain the filled pixel block.
  • the length of the binary indicator of the second occupancy codeword corresponds to the number of pixel blocks in the pixel block to be processed and the number of adjacent pixel blocks in multiple spatial domains of the pixel block to be processed.
  • the value of the Xth bit in the binary indicator is used to indicate whether the pixel block at the corresponding position is an occupied pixel block.
  • the Xth bit is 1, which means that the pixel block at the corresponding position is an occupied pixel block; or, the Xth bit is 0, which means that the pixel block at the corresponding position is an unoccupied pixel block.
  • X is an integer greater than or equal to 1.
  • the Xth bit in the second occupied codeword in the form of a binary indicator is the valid or invalid flag bit of a corresponding pixel block.
  • looking up the table according to the second occupied codeword to obtain the target processing mode of the pixel block to be processed includes: looking up the first table according to the second occupied codeword to obtain the reference processing corresponding to the pixel block to be processed Mode (also called reference filling mode) and transformation method; the first table includes the correspondence between multiple reference processing modes, multiple transformation methods, and multiple occupation codewords; according to the transformation method corresponding to the pixel block to be processed, The reference processing mode corresponding to the pixel block to be processed is transformed to obtain the target processing mode of the pixel block to be processed. In this way, the storage space occupied by the checked table can be saved.
  • Mode also called reference filling mode
  • different transformation methods include different rotation angles; according to the transformation method corresponding to the pixel block to be processed, the reference processing mode corresponding to the pixel block to be processed is transformed to obtain the target of the pixel block to be processed
  • the processing mode includes: rotating the reference processing mode corresponding to the pixel block to be processed according to the rotation angle corresponding to the pixel block to be processed to obtain the target processing mode of the pixel block to be processed.
  • the pixels in the reference processing mode corresponding to the second occupied codeword can be rotated as a whole (such as clockwise or counterclockwise), that is, there is no need to distinguish between occupied pixels and/or unoccupied pixels in the reference processing mode s position.
  • the specific clockwise rotation or counterclockwise rotation may be pre-defined, such as pre-defined by a standard; or, the encoder may transmit to the decoder through a code stream, which is not limited in the embodiment of the present application.
  • looking up the table according to the second occupancy codeword to obtain the target processing mode of the pixel block to be processed includes: looking up the second table according to the second occupancy codeword to obtain the target processing mode of the pixel block to be processed;
  • the second table includes the correspondence between multiple processing modes and multiple occupied codewords.
  • looking up the table according to the second occupied code word to obtain the target processing mode of the pixel block to be processed includes: looking up the third table according to the second occupied code word to obtain the target processing mode of the pixel block to be processed Index; the third table includes the correspondence between the indexes of multiple processing modes and the multiple occupancy codewords; the fourth table is checked according to the index of the target processing mode of the pixel block to be processed to obtain the target processing mode of the pixel block to be processed; Among them, the fourth table includes the corresponding relationship between the indexes of the multiple processing modes and the multiple processing modes. In this way, the storage space occupied by the checked table can be saved.
  • looking up the table according to the second occupied codeword to obtain the target processing mode of the pixel block to be processed includes: looking up the fifth table according to the first sub-occupied codeword to obtain the first processing mode;
  • the occupied codeword is used to characterize whether the pixel block to be processed is an occupied pixel block;
  • the fifth table includes the correspondence between multiple processing modes and multiple sub-occupied codewords;
  • the second sub-occupied codeword is used to characterize whether the multiple spatial neighboring pixel blocks of the pixel block to be processed are occupied pixel blocks respectively;
  • the sixth table includes multiple processing modes and multiple sub-occupied codewords Correspondence; according to the first processing mode and the second processing mode, determine the target processing mode of the pixel block to be processed. In this way, the storage space occupied by the checked table can be saved.
  • the target processing mode of the pixel block to be processed is determined, including: using "0" to indicate unoccupied and "1" to indicate occupied.
  • the binary indicator of the processing mode and the binary indicator of the second processing mode are bitwise ANDed to obtain the binary indicator of the target processing mode.
  • looking up the table according to the second occupied codeword to obtain the target processing mode of the pixel block to be processed includes: looking up the seventh table according to the number of adjacent pixel blocks in the occupied space of the pixel block to be processed, Obtain the third processing mode; the seventh table includes the correspondence between the various processing modes and the various numbers of adjacent pixel blocks in the occupied space of the pixel block; check the eighth table according to the second occupied codeword, and obtain the The reference processing mode and rotation angle corresponding to the processed pixel block; the eighth table includes the correspondence between multiple reference processing modes, multiple rotation angles and multiple occupation code words; according to the rotation angle corresponding to the pixel block to be processed, The reference processing mode corresponding to the pixel block to be processed is rotated to obtain the fourth processing mode of the pixel block to be processed; according to the third processing mode and the fourth processing mode, the target processing mode of the pixel block to be processed is determined.
  • determining the target processing mode of the pixel block to be processed may include: in the case of using "0" to indicate unoccupied and "1" to indicate occupied, to The binary indicator of the three processing mode and the binary indicator of the fourth processing mode are bitwise ORed to obtain the binary indicator of the target processing mode.
  • the second occupied codeword is used to characterize whether the pixel block to be processed and the multiple adjacent pixel blocks of the pixel block to be processed are occupied pixel blocks, respectively.
  • the point cloud to be decoded is the point cloud to be coded; the method further includes: compiling the checked table into the code stream.
  • the point cloud to be decoded is the point cloud to be decoded; the method further includes: parsing the code stream to obtain the table to be checked, and correspondingly, checking the table according to the first occupied code word, including: The first occupied codeword checks the table obtained by parsing the code stream.
  • the point cloud to be decoded is the point cloud to be coded; the method further includes: encoding identification information into a code stream, and the identification information is used to indicate the table being checked.
  • the point cloud to be decoded is the point cloud to be decoded; the method further includes: parsing the code stream to obtain identification information, which is used to indicate the table being checked.
  • looking up the table according to the first occupied code word includes: looking up the table indicated by the identification information according to the first occupied code word.
  • the table to be looked up compiled in the code stream or the table represented by the identification information compiled in the code stream may be any one or more tables in any of the above technical solutions.
  • Any one or more of the tables may be a table of point cloud granularity, or a table of point cloud group granularity, or a table of point cloud frame sequence granularity.
  • these tables are all pre-defined by the encoder and the decoder, such as pre-defined according to the protocol.
  • a point cloud encoding method including: determining instruction information, the instruction information being used to indicate whether to process the occupancy map of the point cloud to be encoded according to the target point cloud encoding method; the target point cloud encoding method includes the above-mentioned One aspect or any possible design of the first aspect, or the point cloud decoding method (specifically a point cloud encoding method) provided by the second aspect or any possible design of the second aspect; compile the instruction information Into the code stream.
  • a point cloud decoding method including: parsing a code stream to obtain indication information, the indication information being used to indicate whether to process the occupancy map of the point cloud to be decoded according to the target point cloud decoding method; the target point cloud
  • the decoding method includes any possible design of the first aspect or the first aspect, or the point cloud decoding method (specifically a point cloud decoding method) provided by the second or any possible design of the second aspect;
  • the instruction information indicates to process according to the target point cloud decoding method
  • the occupancy map of the point cloud to be decoded is processed according to the target point cloud decoding method.
  • a decoder including: an up-sampling module, configured to look up a table according to the first occupied codeword to obtain the target processing mode of the pixel block to be processed; wherein, the first occupied codeword is used to represent the current Whether the reference pixel block is an occupied pixel block, and/or whether multiple spatial adjacent pixel blocks of the current reference pixel block are occupied pixel blocks respectively; the current reference pixel block is in the first occupied image of the point cloud to be decoded
  • the pixel block to be processed is the pixel block in the second occupancy map of the point cloud to be decoded.
  • the current reference pixel block corresponds to the pixel block to be processed; the pixel block to be processed is filled according to the target processing mode to obtain the filled Pixel blocks.
  • the point cloud reconstruction module is used to reconstruct the point cloud to be decoded according to the filled second occupancy map; the filled second occupancy map includes the filled pixel block.
  • a decoder including: an up-sampling module, used to look up a table according to a second occupied codeword to obtain the target processing mode of the pixel block to be processed; the second occupied codeword is used to characterize the pixel to be processed Whether the block is an occupied pixel block, and/or whether multiple spatial adjacent pixel blocks of the pixel block to be processed are occupied pixel blocks; the pixel block to be processed is the pixel block in the occupancy map of the point cloud to be decoded, according to The target processing mode performs filling processing on the pixel block to be processed to obtain the filled pixel block.
  • the point cloud reconstruction module is used to reconstruct the point cloud to be decoded according to the filled occupancy map; the filled occupancy map includes the filled pixel block.
  • an encoder including: an auxiliary information encoding module for determining instruction information, the instruction information being used to indicate whether to process the occupancy map of the point cloud to be encoded according to the target point cloud encoding method; the target point cloud
  • the coding method includes any possible design of the first aspect or the first aspect, or the point cloud decoding method (specifically a point cloud coding method) provided by the second or any possible design of the second aspect; Compile the instruction information into the code stream.
  • the occupancy map processing module is used to process the occupancy map of the point cloud to be coded according to the target point cloud coding method when the instruction information indicates that the occupancy map of the point cloud to be coded is coded according to the target point cloud coding method.
  • the occupancy map processing module may be implemented by the up-sampling module 111 and the point cloud reconstruction module 112 included in the encoder as shown in FIG. 2.
  • a decoder including: an auxiliary information decoding module, configured to parse the code stream to obtain indication information, the indication information being used to indicate whether the occupancy map of the point cloud to be decoded is in accordance with the target point cloud decoding method Perform decoding;
  • the target point cloud decoding method includes any possible design of the first aspect or the first aspect, or the point cloud decoding method provided by any possible design of the second or second aspect ( Specifically, it is a point cloud decoding method);
  • an occupancy map processing module is used to process the occupancy map of the point cloud to be decoded according to the target point cloud decoding method when the indication information indicates that the processing is performed according to the target point cloud decoding method.
  • the occupancy map processing module can be implemented by the up-sampling module 208 and the point cloud reconstruction module 205 included in the decoder as shown in FIG. 5.
  • a decoding device including: a memory and a processor; wherein the memory is used to store program code; the processor is used to call the program code to execute the first aspect or any of the first aspects.
  • an encoding device including: a memory and a processor; wherein the memory is used to store program code; the processor is used to call the program code to execute the point cloud encoding method provided in the third aspect.
  • a decoding device including: a memory and a processor; wherein the memory is used to store program code; the processor is used to call the program code to execute the point cloud decoding method provided in the fourth aspect above .
  • This application also provides a computer-readable storage medium, including program code, when the program code runs on a computer, the computer executes the first aspect and its possible design, or the second aspect and its possible design. Any of the occupancy map sampling methods.
  • the present application also provides a computer-readable storage medium, including program code, which, when run on a computer, causes the computer to execute the point cloud coding method provided in the third aspect.
  • the present application also provides a computer-readable storage medium, including program code, which, when run on a computer, causes the computer to execute the point cloud coding method provided in the fourth aspect.
  • FIG. 1 is a schematic block diagram of a point cloud decoding system that can be used in an example of an embodiment of the present application
  • FIG. 2 is a schematic block diagram of an encoder that can be used in an example of an embodiment of the present application
  • FIG. 3 is a schematic diagram of a point cloud, a patch of the point cloud, and an occupancy map of the point cloud applicable to the embodiments of the present application;
  • FIG. 4 is a schematic diagram of comparison of a change process of an occupancy map of an encoding endpoint cloud provided by an embodiment of this application;
  • Fig. 5 is a schematic block diagram of a decoder that can be used in an example of an embodiment of the present application
  • FIG. 6 is a schematic diagram of the correspondence between an index of a pixel block type, a schematic diagram of a pixel block type, and a schematic diagram of a processing mode according to an embodiment of the application;
  • FIG. 7 is a schematic flowchart of a point cloud decoding method provided by an embodiment of this application.
  • FIG. 8A is a schematic diagram of a corresponding relationship between a current reference pixel block and a pixel block to be processed according to an embodiment of the application;
  • FIG. 8B is a schematic diagram of another correspondence between a current reference pixel block and a pixel block to be processed according to an embodiment of the application;
  • FIG. 9 is a schematic diagram of a filling processing method provided by an embodiment of the application.
  • FIG. 10 is a schematic flowchart of another point cloud decoding method provided by an embodiment of this application.
  • FIG. 11 is a schematic flowchart of a point cloud encoding method provided by an embodiment of this application.
  • FIG. 12 is a schematic flowchart of a point cloud decoding method provided by an embodiment of this application.
  • FIG. 13 is a schematic block diagram of a decoder provided by an embodiment of this application.
  • FIG. 14 is a schematic block diagram of an encoder provided by an embodiment of the application.
  • FIG. 15 is a schematic block diagram of a decoder provided by an embodiment of this application.
  • FIG. 16 is a schematic block diagram of an implementation manner of a decoding device used in an embodiment of the present application.
  • FIG. 17 is a schematic diagram of the structure of a construction table provided by an embodiment of the application.
  • FIG. 18 is a schematic diagram of a process of finding a target processing mode provided in FIG. 17 based on an embodiment of the application;
  • FIG. 19 is a schematic diagram of the structure of another construction table provided by an embodiment of the application.
  • FIG. 20 is a schematic diagram of a process of finding a target processing mode provided in FIG. 19 based on an embodiment of the application;
  • FIG. 21 is a schematic diagram of a relationship between tables provided in an embodiment of the application.
  • FIG. 22 is a corresponding relationship between a binary representation of a reference processing mode and a schematic diagram of a reference processing mode provided by an embodiment of the application.
  • FIG. 1 is a schematic block diagram of a point cloud decoding system 1 that can be used in an example of an embodiment of the present application.
  • the term "point cloud coding" or “coding” may generally refer to point cloud encoding or point cloud decoding.
  • the encoder 100 of the point cloud decoding system 1 can encode the point cloud to be encoded according to any of the point cloud encoding methods proposed in this application.
  • the decoder 200 of the point cloud decoding system 1 can decode the point cloud to be decoded according to the point cloud decoding method corresponding to the point cloud encoding method used by the encoder proposed in this application.
  • the point cloud decoding system 1 includes a source device 10 and a destination device 20.
  • the source device 10 generates encoded point cloud data. Therefore, the source device 10 may be referred to as a point cloud encoding device.
  • the destination device 20 may decode the encoded point cloud data generated by the source device 10. Therefore, the destination device 20 may be referred to as a point cloud decoding device.
  • Various implementations of source device 10, destination device 20, or both may include one or more processors and memory coupled to the one or more processors.
  • the memory may include but is not limited to random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory, EEPROM ), flash memory, or any other medium that can be used to store the desired program code in the form of instructions or data structures that can be accessed by a computer, as described herein.
  • RAM random access memory
  • ROM read-only memory
  • EEPROM electrically erasable programmable read-only memory
  • flash memory or any other medium that can be used to store the desired program code in the form of instructions or data structures that can be accessed by a computer, as described herein.
  • the source device 10 and the destination device 20 may include various devices, including desktop computers, mobile computing devices, notebook (for example, laptop) computers, tablet computers, set-top boxes, telephone handsets such as so-called “smart" phones.
  • desktop computers mobile computing devices
  • notebook (for example, laptop) computers tablet computers
  • set-top boxes telephone handsets such as so-called “smart” phones.
  • Computer television, camera, display device, digital media player, video game console, onboard computer or the like.
  • Link 30 may include one or more media or devices capable of moving encoded point cloud data from source device 10 to destination device 20.
  • link 30 may include one or more communication media that enable source device 10 to send encoded point cloud data directly to destination device 20 in real time.
  • the source device 10 may modulate the coded point cloud data according to a communication standard (for example, a wireless communication protocol), and may transmit the modulated point cloud data to the destination device 20.
  • the one or more communication media may include wireless and/or wired communication media, such as radio frequency (RF) spectrum or one or more physical transmission lines.
  • RF radio frequency
  • the one or more communication media may form part of a packet-based network, such as a local area network, a wide area network, or a global network (e.g., the Internet).
  • the one or more communication media may include routers, switches, base stations, or other devices that facilitate communication from source device 10 to destination device 20.
  • the encoded data may be output from the output interface 140 to the storage device 40.
  • the encoded point cloud data can be accessed from the storage device 40 through the input interface 240.
  • the storage device 40 may include any of a variety of distributed or locally accessed data storage media, such as hard disk drives, Blu-ray discs, digital versatile discs (DVD), and compact disc read-only discs. only memory, CD-ROM), flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded point cloud data.
  • the storage device 40 may correspond to a file server or another intermediate storage device that may hold the encoded point cloud data generated by the source device 10.
  • the destination device 20 can access the stored point cloud data from the storage device 40 via streaming or downloading.
  • the file server may be any type of server capable of storing the encoded point cloud data and transmitting the encoded point cloud data to the destination device 20.
  • Example file servers include network servers (for example, for websites), file transfer protocol (FTP) servers, network attached storage (NAS) devices, or local disk drives.
  • the destination device 20 can access the coded point cloud data through any standard data connection (including an Internet connection).
  • the transmission of the coded point cloud data from the storage device 40 may be a streaming transmission, a download transmission, or a combination of both.
  • the point cloud decoding system 1 illustrated in FIG. 1 is only an example, and the technology of the present application is applicable to point cloud decoding that does not necessarily include any data communication between a point cloud encoding device and a point cloud decoding device (for example, point cloud decoding).
  • Cloud encoding or point cloud decoding) device In other instances, data is retrieved from local storage, streamed on the network, and so on.
  • the point cloud encoding device may encode data and store the data to the memory, and/or the point cloud decoding device may retrieve the data from the memory and decode the data.
  • encoding and decoding are performed by devices that do not communicate with each other but only encode data to and/or retrieve data from memory and decode the data.
  • the source device 10 includes a data source 120, an encoder 100 and an output interface 140.
  • the output interface 140 may include a regulator/demodulator (modem) and/or a transmitter (or referred to as a transmitter).
  • the data source 120 may include a point cloud capture device (for example, a camera), a point cloud archive containing previously captured point cloud data, a point cloud feed interface to receive point cloud data from a point cloud content provider, and/or use A computer graphics system for generating point cloud data, or a combination of these sources of point cloud data.
  • the encoder 100 may encode point cloud data from the data source 120.
  • the source device 10 sends the encoded point cloud data directly to the destination device 20 via the output interface 140.
  • the encoded point cloud data may also be stored on the storage device 40 for later access by the destination device 20 for decoding and/or playback.
  • the destination device 20 includes an input interface 240, a decoder 200 and a display device 220.
  • the input interface 240 includes a receiver and/or a modem.
  • the input interface 240 may receive coded point cloud data via the link 30 and/or from the storage device 40.
  • the display device 220 may be integrated with the destination device 20 or may be external to the destination device 20. Generally, the display device 220 displays the decoded point cloud data.
  • the display device 220 may include various display devices, for example, a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, or other types of display devices.
  • LCD liquid crystal display
  • OLED organic light-emitting diode
  • the encoder 100 and the decoder 200 may be integrated with an audio encoder and decoder, and may include an appropriate multiplexer-demultiplexer (multiplexer- demultiplexer (MUX-DEMUX) unit or other hardware and software to handle the encoding of both audio and video in a common data stream or separate data streams.
  • MUX-DEMUX multiplexer-demultiplexer
  • the MUX-DEMUX unit may conform to the ITU H.223 multiplexer protocol, or other protocols such as the user datagram protocol (UDP).
  • Each of the encoder 100 and the decoder 200 can be implemented as any of a variety of circuits such as the following: one or more microprocessors, digital signal processing (DSP), application specific integrated circuits (application Specific integrated circuit, ASIC), field-programmable gate array (FPGA), discrete logic, hardware, or any combination thereof.
  • DSP digital signal processing
  • ASIC application Specific integrated circuit
  • FPGA field-programmable gate array
  • the device can store instructions for the software in a suitable non-volatile computer-readable storage medium, and can use one or more processors to execute the instructions in hardware So as to implement the technology of this application. Any of the foregoing (including hardware, software, a combination of hardware and software, etc.) can be regarded as one or more processors.
  • Each of the encoder 100 and the decoder 200 may be included in one or more encoders or decoders, any of which may be integrated as a combined encoder/decoder in the corresponding device Part of the device (codec).
  • This application may generally refer to the encoder 100 as “signaling” or “sending” certain information to another device such as the decoder 200.
  • the term “signaling” or “sending” may generally refer to the transmission of syntax elements and/or other data used to decode compressed point cloud data. This transmission can occur in real time or almost in real time. Alternatively, this communication may occur after a period of time, for example, when the syntax element is stored in a computer-readable storage medium in the encoded bitstream during encoding, and the decoding device may then store the syntax element on this medium. retrieve the syntax element at any time.
  • FIG. 2 it is a schematic block diagram of an encoder 100 that can be used as an example of an embodiment of the present application.
  • Fig. 2 illustrates an example of an MPEG (moving picture expert group) point cloud compression (PCC) coding framework.
  • the encoder 100 may include a patch information generation module 101, a packing module 102, a depth map generation module 103, a texture map generation module 104, a filling module 105, an image or video-based encoding module 106, and an occupancy map encoding Module 107, auxiliary information encoding module 108, multiplexing module 109 and so on.
  • the encoder 100 may also include a down-sampling module 110, an up-sampling module 111, a point cloud reconstruction module 112, a point cloud filtering module 113, and so on.
  • the patch information generating module 101 is used to divide a frame of point cloud to generate multiple patches by using a certain method, and to obtain related information of the generated patches.
  • patch refers to a collection of points in a frame of point cloud, and usually a connected area corresponds to a patch.
  • Patch related information can include but is not limited to at least one of the following information: the number of patches divided into the point cloud, the position information of each patch in the three-dimensional space, the index of the normal axis of each patch, each The depth map generated by the projection of a patch from the three-dimensional space to the two-dimensional space, the depth map size of each patch (such as the width and height of the depth map), and the occupancy map generated by the projection of each patch from the three-dimensional space to the two-dimensional space.
  • the part of the related information of the patch such as the number of patches divided into the point cloud, the index of the normal axis of each patch, the depth map size of each patch, the position information of each patch in the point cloud, each The size information of the occupancy map of each patch, etc., can be sent to the auxiliary information encoding module 108 as auxiliary information for encoding (ie, compression encoding).
  • the depth map of the patch, etc. may also be sent to the depth map generating module 103.
  • Part of the related information of the patch can be sent to the packaging module 102 for packaging.
  • the patches of the point cloud are arranged in a specific order, for example, according to the width of the occupancy map of each patch. /High descending order (or ascending order); then, according to the order of each patch after the arrangement, insert the occupancy map of the patch into the available area of the point cloud occupancy map to obtain the occupancy map of the point cloud.
  • the resolution of the cloud occupancy map is the original resolution.
  • FIG. 3 it is a schematic diagram of a point cloud, a patch of the point cloud, and an occupancy map of the point cloud applicable to the embodiments of the present application.
  • Figure 3 (a) is a schematic diagram of a frame of point cloud
  • Figure 3 (b) is a schematic diagram of the patch of the point cloud obtained based on Figure 3 (a)
  • ( c) The figure is a schematic diagram of the occupancy map of the point cloud obtained by packing the occupancy map of each patch obtained by mapping each patch shown in Figure 3 (b) to a two-dimensional plane.
  • the packing information of the patches obtained by the packing module 102 can be sent to the depth map generating module 103.
  • the occupancy map of the point cloud obtained by the packing module 102 can be used to instruct the depth map generating module 103 to generate the depth map of the point cloud and to instruct the texture map generating module 104 to generate the texture map of the point cloud. On the other hand, it can be used to reduce the resolution by the down-sampling module 110 and send to the occupancy map encoding module 107 for encoding.
  • the depth map generating module 103 is used to generate a depth map of the point cloud according to the occupancy map of the point cloud, the occupancy map of each patch of the point cloud and the depth information, and send the generated depth map to the filling module 105, The blank pixels in the depth map are filled to obtain a filled depth map.
  • the texture map generating module 104 is configured to generate a texture map of the point cloud according to the occupancy map of the point cloud, the occupancy map of each patch of the point cloud, and texture information, and send the generated texture map to the filling module 105, Fill in the blank pixels in the texture map to obtain a filled texture map.
  • the filled depth map and the filled texture map are sent by the filling module 105 to the image or video-based encoding module 106 for image or video-based encoding.
  • the image or video-based encoding module 106, the occupancy map encoding module 107, and the auxiliary information encoding module 108 send the obtained encoding result (ie code stream) to the multiplexing module 109 to combine into one code stream.
  • the code stream can be sent to the output interface 140.
  • the encoding result (ie, code stream) obtained by the image or video-based encoding module 106 is sent to the point cloud reconstruction module 112 for point cloud reconstruction to obtain a reconstructed point cloud (specifically, the reconstructed point cloud is obtained).
  • Cloud geometry information Specifically, video decoding is performed on the encoded depth map obtained by the image or video-based encoding module 106 to obtain the decoded depth map of the point cloud, using the decoded depth map, the occupancy map of the point cloud, and the auxiliary information of each patch , And the original resolution point cloud occupancy map restored by the up-sampling module 111 to obtain reconstructed point cloud geometric information.
  • the geometric information of the point cloud refers to the coordinate value of a point in the point cloud (for example, each point in the point cloud) in a three-dimensional space.
  • the "occupancy map of the point cloud” herein may be the occupancy map obtained after the point cloud is filtered by the filtering module 113 (or referred to as smoothing).
  • the up-sampling module 111 is configured to perform up-sampling processing on the occupancy map of the low-resolution point cloud received from the down-sampling module 110, so as to restore the occupancy map of the point cloud with the original resolution.
  • the up-sampling module 111 can be used to perform according to the occupied code word (the first occupied code word or the second occupied code word or the first sub occupied code word or the second sub occupied code word, etc.) Look up the table to obtain the target processing mode of the pixel block to be processed; and perform filling processing on the pixel block to be processed according to the target processing mode (for example, fill the target pattern pattern to the corresponding pixels of the pixel block to be processed) to obtain the filled pixel block.
  • the occupancy map containing the filled pixel block can be regarded as the high-resolution occupancy map output by the up-sampling module 111.
  • the point cloud reconstruction module 112 may also send the texture information of the point cloud and the reconstructed point cloud geometric information to the coloring module, and the coloring module is used to color the reconstructed point cloud to obtain the reconstructed point cloud.
  • the texture information may also be generated.
  • the texture map generating module 104 may also generate a texture map of the point cloud based on information obtained by filtering the reconstructed geometric information of the point cloud by the point cloud filtering module 113.
  • the encoder 100 shown in FIG. 2 is only an example. In a specific implementation, the encoder 100 may include more or fewer modules than those shown in FIG. 2. The embodiment of the present application does not limit this.
  • FIG. 4 a comparison schematic diagram of the change process of the occupancy map of the encoding endpoint cloud provided by this embodiment of the application.
  • the occupancy map of the point cloud shown in (a) of FIG. 4 is the original occupancy map of the point cloud generated by the packing module 102, and its resolution (ie, the original resolution) is 1280*864.
  • the occupancy map shown in Figure 4(b) is the occupancy of the low-resolution point cloud obtained after the down-sampling module 110 processes the original occupancy map of the point cloud shown in Figure 4(a) Picture, its resolution is 320*216.
  • the occupancy map shown in (c) in FIG. 4 is the original resolution point cloud obtained by up-sampling the occupancy map of the low-resolution point cloud shown in (b) in FIG. 4 by the upsampling module 111 Occupancy map with a resolution of
  • FIG. 4 is a partially enlarged view of the elliptical area in (a) in FIG. 4, and (e) in FIG. 4 is a partially enlarged view of the elliptical area in (c) in FIG. 4.
  • the partially enlarged view shown in (e) in FIG. 4 is obtained after the partially enlarged view shown in (d) in FIG. 4 is processed by the down-sampling module 110 and the up-sampling module 111.
  • FIG. 5 it is a schematic block diagram of a decoder 200 that can be used as an example of an embodiment of the present application.
  • FIG. 5 uses the MPEG PCC decoding framework as an example for description.
  • the decoder 200 may include a demultiplexing module 201, an image or video-based decoding module 202, an occupancy map decoding module 203, an auxiliary information decoding module 204, a point cloud reconstruction module 205, and a point cloud filtering module. 206 and the point cloud texture information reconstruction module 207.
  • the decoder 200 may include an up-sampling module 208. among them:
  • the demultiplexing module 201 is used to send the input code stream (ie, the combined code stream) to the corresponding decoding module. Specifically, the code stream containing the coded texture map and the coded depth map are sent to the image or video-based decoding module 202; the code stream containing the coded occupancy map is sent to the occupancy map decoding module 203 , Send the code stream containing the encoded auxiliary information to the auxiliary information decoding module 204.
  • the image or video-based decoding module 202 is used to decode the received encoded texture map and the encoded depth map; then, the decoded texture map information is sent to the texture information reconstruction module 207 of the point cloud, The decoded depth map information is sent to the point cloud reconstruction module 205.
  • the occupancy map decoding module 203 is configured to decode the received code stream containing the encoded occupancy map, and send the decoded occupancy map information to the point cloud reconstruction module 205.
  • the occupancy map information decoded by the occupancy map decoding module 203 is the occupancy map information of the low-resolution point cloud described above.
  • the occupancy map here may be the occupancy map of the point cloud shown in (b) in FIG. 4.
  • the occupancy map decoding module 203 may first send the decoded occupancy map information to the up-sampling module 208 for up-sampling processing, and then send the occupancy map of the original resolution point cloud obtained after the up-sampling processing to the point.
  • Cloud reconstruction module 205 For example, the occupancy map of the original resolution point cloud obtained after the upsampling process may be the occupancy map of the point cloud shown in (c) in FIG. 4.
  • the up-sampling module 208 may be used to perform according to the occupied codeword (the first occupied codeword or the second occupied codeword or the first sub-occupied codeword or the second sub-occupied codeword in the following text, etc. ) Look up the table to obtain the target processing mode of the pixel block to be processed; and perform filling processing on the pixel block to be processed according to the target processing mode (for example, fill the target pattern pattern to the corresponding pixels of the pixel block to be processed) to obtain the filled pixel block.
  • the occupancy map containing the filled pixel block can be regarded as the high-resolution occupancy map output by the up-sampling module 111.
  • the point cloud reconstruction module 205 is used to reconstruct the geometric information of the point cloud according to the received occupancy map information and auxiliary information. For the specific reconstruction process, please refer to the reconstruction of the point cloud reconstruction module 112 in the encoder 100 The process is not repeated here.
  • the geometric information of the reconstructed point cloud is sent to the point cloud texture information reconstruction module 207.
  • the point cloud texture information reconstruction module 207 is used to reconstruct the texture information of the point cloud to obtain the reconstructed point cloud.
  • the decoder 200 shown in FIG. 5 is only an example. In a specific implementation, the decoder 200 may include more or fewer modules than those shown in FIG. 5. The embodiment of the present application does not limit this.
  • the up-sampling module 111 may be connected to the auxiliary information encoding module 108 to send one or more tables (or the one or more tables) checked by the up-sampling module 208 to the auxiliary information encoding module 108 Table identification information), so that the auxiliary information encoding module 108 encodes the one or more tables (or identification information of the one or more tables) used when performing filling processing into the code stream.
  • the up-sampling module 208 can be connected to the auxiliary information decoding module 204 to receive the corresponding table obtained by the auxiliary information decoding module 204 from parsing the code stream (or the table identified by the corresponding identification information obtained by parsing the code stream), thereby Up-sampling is performed on the occupancy map of the point cloud to be decoded.
  • the specific implementation mode and related description of this embodiment please refer to the following, which will not be repeated here.
  • Occupied pixels refer to pixels that are filled as occupied.
  • Unoccupied pixels refer to pixels that are filled as unoccupied.
  • the occupied pixel block means that at least one of the contained pixels is filled as an occupied pixel block.
  • the occupied pixel block has the same meaning as the occupied pixel.
  • the unoccupied pixel block means that all pixels contained are filled as unoccupied pixel blocks. When a pixel block contains only one pixel, the unoccupied pixel block has the same meaning as the unoccupied pixel.
  • the spatial neighboring pixel block of a pixel block can also be referred to as the neighboring spatial neighboring pixel block of a pixel block. It refers to the neighboring pixel block and is located directly above, directly below, and directly to the left of the pixel block. , One or more pixel blocks in the front right, top left, bottom left, top right, and bottom right.
  • the spatial neighboring pixel blocks of the non-edge pixel block of the occupancy map of a point cloud include those adjacent to the pixel block, and are located directly above, directly below, directly to the left, and directly to the right of the pixel block. 8 pixel blocks of square, upper left, lower left, upper right, and lower right.
  • the number of spatial neighboring pixel blocks of the edge pixel block of the occupancy map of one frame of point cloud is less than 8.
  • the edge pixel block of an occupation map refers to the pixel block in the first row, last row, first column, and last column in the occupation map.
  • the pixel blocks in other positions in the first occupancy map are non-edge pixel blocks in the occupancy map.
  • the adjacent pixel block in the occupied space means that at least one of the included pixels is filled as an adjacent pixel block in the occupied space.
  • the adjacent pixel block in the unoccupied space means that at least one of the included pixels is filled as an adjacent pixel block in the unoccupied space.
  • the type of the pixel block is determined based on whether the pixel block is an occupied pixel block or an unoccupied pixel block, and the distribution of adjacent pixel blocks in the invalid space (or adjacent pixel blocks in the effective space). specific:
  • the two pixel blocks are different types of pixel blocks. If two pixel blocks are occupied pixel blocks, but the distribution of adjacent pixel blocks in the invalid space (or adjacent pixel blocks in the effective space) of the two pixel blocks is different, then the two pixel blocks are different types of pixels Piece.
  • both pixel blocks are unoccupied pixel blocks, the two pixel blocks are pixel blocks of the same type. If two pixel blocks are occupied pixel blocks, and the distribution of adjacent pixel blocks in the invalid space (or adjacent pixel blocks in the effective space) of the two pixel blocks is the same, then the two pixel blocks are the same type of pixels Piece.
  • the distribution of adjacent pixel blocks in the invalid space (or adjacent pixel blocks in the effective space) of the pixel block may refer to the distribution of local or all adjacent pixel blocks in the invalid space (or adjacent pixel blocks in the effective space) of the pixel block Happening.
  • the "pixel block” in 3) can be replaced with a "reference pixel block", so as to obtain a related description of the type of the reference pixel block.
  • the decoder can use the following method to obtain the filled-in information contained in the up-sampled occupancy map Pixel block:
  • the occupancy map A of the point cloud to be decoded is enlarged to obtain the occupancy map B.
  • the resolution of the occupation map A is smaller than the resolution of the occupation map B.
  • the filled pixel block is obtained by one of the following embodiments.
  • Embodiment 1 For any pixel block in the occupancy map A, if the pixel block is a non-boundary pixel block and is an occupied pixel block, all pixels in the pixel block to be processed are filled as occupied, and the filled Pixel blocks. If the pixel block is a non-boundary pixel block and an unoccupied pixel block, all pixels in the pixel block to be processed are filled as unoccupied to obtain a filled pixel block. If the pixel block is a boundary pixel block, the pixels occupying the first target position in the pixel block to be processed corresponding to the pixel block in Figure B are filled as occupied, and/or the second target in the pixel block to be processed The pixel at the position is filled as unoccupied, and the filled pixel block is obtained.
  • the first target position and the second target position indicate the positions of some pixels in the pixel block to be processed.
  • “and/or” is “and”
  • different types of pixel blocks correspond to different processing modes.
  • Embodiment 2 Fill the pixels in the occupation map B to obtain the occupation map C. Specifically, for any pixel block in the occupation map B, if the pixel block is an occupied pixel block, the occupation map C will be occupied. All pixels in the pixel block corresponding to the pixel block are filled as occupied; if the pixel block is an unoccupied pixel block, all pixels in the pixel block corresponding to the pixel block in Figure C will be occupied. Filled as unoccupied. Then, the pixels occupying the target position in the boundary pixel block of the image C are updated to be unoccupied to obtain the filled pixel block.
  • Embodiment 3 Fill the pixels in the occupancy map B to obtain the occupancy map C.
  • the occupancy map C For the implementation process, refer to the second embodiment; then, generate a blank occupancy map D with the same resolution as the occupancy map C, and calculate the occupancy map C
  • the pixels in Figure D are filled.
  • a pixel block in the occupancy map C is a non-boundary pixel block and an occupied pixel block
  • the pixels in the pixel block corresponding to the pixel block in the occupancy map D are all filled as occupied.
  • the pixel block is a non-boundary pixel block and is an unoccupied pixel block, all pixels in the pixel block corresponding to the pixel block in the occupied map D are filled as unoccupied.
  • the pixels occupying the first target position in the pixel block corresponding to the pixel block in Figure D are filled as occupied, and/or the pixels at the second target position are filled as unoccupied .
  • first target position and the second target position reference may be made to the first embodiment above.
  • each small square in this column represents a pixel block
  • white small squares indicate occupied pixel blocks
  • black small squares indicate unoccupied pixel blocks
  • small squares shaded by diagonal lines can be It means the occupied pixel block can also mean the unoccupied pixel block.
  • the pixel block in the center of the schematic diagram of each type of pixel block may be the reference pixel block described below or the pixel block to be processed, and the surrounding 8 pixel blocks refer to the spatial neighboring pixel blocks of the center pixel block.
  • Each small square in the column of "Processing Mode" represents a pixel, white small squares indicate occupied pixels, and black small squares indicate unoccupied pixels.
  • the schematic diagram of each type of processing mode represents the distribution of occupied pixels and/or unoccupied pixels in a 4*4 pixel block to be processed.
  • FIG. 6 is only some examples of the types of pixel blocks, which does not constitute a limitation on the types of pixel blocks applicable to the embodiments of the present application.
  • the processing mode corresponding to each type shown in FIG. 6 is only an example, which does not limit the applicable processing mode of the embodiment of the present application. This is a unified description, and will not be repeated here.
  • Occupied codeword is an indicator composed of one or more occupied bits, such as a binary indicator.
  • An occupied bit includes one or more bits.
  • the naming is based on the occupied code word. It should be understood that other naming methods can also be applied to the solution of the present invention, which is not limited in this application. In the following, the description is given by taking an occupied position as an example. This is a unified description, and will not be repeated here.
  • An occupancy codeword is used to characterize whether at least one pixel block of a pixel block and all its spatial neighboring pixel blocks is an occupied pixel block. If an occupied code word is used to characterize whether at least two pixel blocks of a pixel block and all its spatial neighboring pixel blocks are occupied pixel blocks, it is specifically used to characterize whether the at least two pixel blocks are occupied pixels respectively Block, and the occupancy codeword is obtained by sorting the occupancy bits of the at least two pixel blocks according to the predetermined sequence of the at least two pixel blocks.
  • the pre-appointed sequence may be, for example, the sequence of the positions of the at least two pixel blocks in the occupancy map where they are located from left to right and from top to bottom. For the convenience of description, the following description is based on the pre-agreed order that the positions of the at least two pixel blocks in the occupancy map are from left to right and from top to bottom as an example. , I won’t repeat it below.
  • the embodiment of the present application does not limit the specific representation manner of the occupied codeword.
  • it can be a character string that can characterize whether one or more pixel blocks are occupied pixel blocks (or unoccupied pixel blocks).
  • the character "a" means occupied
  • the character "b” means unoccupied.
  • the occupied codeword may be a binary indicator; for the convenience of description, the specific examples in the embodiments of the present application are described as examples.
  • the length of a binary indicator of an occupied codeword corresponds to the number of all pixel blocks in a pixel block and/or spatial neighboring pixel blocks of the pixel block.
  • the value of the Xth bit in the binary indicator is used to indicate whether the pixel block at the corresponding position is an occupied pixel block.
  • the Xth bit is 1, which means that the pixel block at the corresponding position is an occupied pixel block; or, the Xth bit is 0, which means that the pixel block at the corresponding position is an unoccupied pixel block.
  • X is an integer greater than or equal to 1.
  • the embodiments of the present application are not limited to this.
  • the occupied codeword can be a 9-bit binary indicator, such as any of 000000000 ⁇ 111111111.
  • the type index of a pixel block is 2, that is, the pixel block is an occupied pixel block, and the spatial neighboring pixel blocks at the upper left, right above, and right left are unoccupied pixel blocks, and other spatial regions are adjacent
  • the pixel block is an occupied pixel block; then the occupied codeword can be: 001011111.
  • the occupied code word can be 5 Bit binary indicator, such as any value from 00000 to 11111.
  • the index of the type of a pixel block is 5, that is, the pixel block is an occupied pixel block, and the adjacent pixel block in the space directly above and directly on the right is an unoccupied pixel block, and the space on the left and right below is an unoccupied pixel block.
  • Adjacent pixel blocks are occupied pixel blocks; whether neighboring pixel blocks in the space of other positions are occupied pixel blocks is not considered, the occupied codeword can be 01101.
  • one occupied codeword may include at least two sub-occupied codewords, such as a first sub-occupied codeword and a second sub-occupied codeword.
  • first sub-occupied codeword and the second sub-occupied codeword please refer to the following.
  • processing mode also known as filling mode
  • the processing mode is used to indicate the position distribution of occupied pixels (or unoccupied pixels) in the filled pixel block.
  • the position distributions of occupied pixels (or unoccupied pixels) corresponding to different processing modes are different.
  • the specific representation of the processing mode is not limited in the embodiment of the present application.
  • it may be a schematic diagram of the processing mode shown in FIG. 6 (may also be called a pattern form).
  • the processing mode in order to facilitate processing, may be represented by an "indicator".
  • the length of the indicator of the processing mode is the number of pixels in the filled pixel block.
  • the indicator of the processing mode may be a binary indicator.
  • the Y-th bit in the binary indicator is used to indicate whether the pixel at the corresponding position in the filled pixel block is an occupied pixel.
  • the Y-th bit is 1, indicating that the pixel at the corresponding position is an occupied pixel; or The Y bit is 0, indicating that the pixel at the corresponding position is an unoccupied pixel.
  • Y is an integer greater than or equal to 1.
  • the embodiments of the present application are not limited to this. Taking the filled pixel block as a 4*4 pixel block as an example, the indicator of the processing mode may be a 16-bit binary indicator.
  • the indicator of the processing mode may be obtained after sorting the bits corresponding to each pixel in the order of each pixel in the filled pixel block agreed in advance.
  • the predetermined order may be, for example, the order of the positions of the pixels in the filled pixel block in the filled pixel block from top to bottom and from left to right.
  • the binary indicator of the target processing mode of the pixel block to be processed can be: 0000000000000000; if the index of the type of a pixel block is 2, then The binary indicator of the target processing mode for processing the pixel block may be: 0001001101111111.
  • At least one (species) in the embodiments of the present application includes one (species) or more (species).
  • Multiple (species) means two (species) or more than two (species).
  • at least one of A, B and C includes: A alone, B alone, A and B simultaneously, A and C simultaneously, B and C simultaneously, and A, B and C simultaneously.
  • "/" means or, for example, A/B can mean A or B;
  • "and/or” in this document is only an association relationship describing associated objects, It means that there can be three kinds of relationships, for example, A and/or B, which can mean: A alone exists, A and B exist at the same time, and B exists alone.
  • Multiple means two or more than two.
  • words such as “first” and “second” are used to distinguish the same items or similar items with substantially the same function and effect. Those skilled in the art can understand that words such as “first” and “second” do not limit the quantity and order of execution, and words such as “first” and “second” do not limit the difference.
  • a judgment operation (if..else..) is usually used to determine the type of the pixel block to be processed, so as to determine the target processing mode of the pixel block to be processed. For example, multiple judging operations are used to determine whether adjacent pixel blocks in the spatial domain of a pixel block are occupied pixel blocks. Since the judgment operation is a branch operation, it is not conducive to the design of efficient parallel algorithms. For example, in actual deployment, the up-sampling process will be completed on the graphics processing unit (GPU), and the program running on the GPU needs to start two processes when performing the judgment operation, and both branches of the judgment operation are executed. Once again, this requires a lot of resources, resulting in low efficiency. Based on this, the embodiment of the present application provides a point cloud coding and decoding method and a corresponding codec.
  • the point cloud decoding method described below may include a point cloud encoding method or a point cloud decoding method.
  • the point cloud decoding method is the point cloud encoding method
  • the point cloud to be decoded in Figure 7 is specifically the point cloud to be encoded
  • the point cloud decoding method is the point cloud decoding method
  • the point to be decoded in Figure 7 The cloud is specifically a point cloud to be decoded.
  • any of the following point cloud encoding methods may be executed by the source device 10 in the point cloud decoding system, more specifically, by the source Executed by the encoder 100 in the device 10.
  • Any of the following point cloud decoding methods may be executed by the destination device 20 in the point cloud decoding system, and more specifically, executed by the decoder 200 in the destination device 20.
  • FIG. 7 it is a schematic flowchart of a point cloud decoding method provided by an embodiment of this application.
  • the method can include:
  • S101 Obtain the target processing mode of the pixel block to be processed by looking up the table according to the first occupied codeword.
  • the first occupied code word is used to characterize whether the current reference pixel block is an occupied pixel block, and/or whether multiple spatial adjacent pixel blocks of the current reference pixel block are occupied pixel blocks respectively; the current reference pixel block is to be decoded
  • the pixel block in the first occupancy map of the point cloud, the pixel block to be processed is the pixel block in the second occupancy map of the point cloud to be decoded, and the current reference pixel block corresponds to the pixel block to be processed.
  • the first occupancy map and the second occupancy map are different occupancy maps of the point cloud to be decoded.
  • the resolution of the first occupancy map and the resolution of the second occupancy map may be equal or unequal.
  • the first occupancy map may be the occupancy map A
  • the second occupancy map may be the occupancy map B.
  • the first occupancy map may be the occupancy map A
  • the second occupancy map may be the occupancy map C.
  • the first occupancy map may be the occupancy map C
  • the second occupancy map may be the occupancy map D.
  • the first occupancy map includes a plurality of reference pixel blocks, the multiple reference pixel blocks occupy the first occupancy map, and there is no overlap between the reference pixel blocks.
  • the second occupation map includes a plurality of pixel blocks, and the plurality of pixel blocks occupy the second occupation map, and there is no overlap between the pixel blocks.
  • the pixel block to be processed described in S101 may be the pixel block currently to be processed in the second occupancy map.
  • the pixel block to be processed is a pixel block obtained by magnifying the current reference pixel block.
  • the reference pixel block may be a B1*B1 pixel block.
  • the pixel block to be processed may be a B2*B2 pixel block.
  • the pixel block of B1*B1 refers to a square matrix composed of pixels in row B1 and column B1.
  • the pixel block of B2*B2 refers to a square matrix composed of pixels in row B2 and column B2.
  • B1 and B2 are both integer powers of 2.
  • the spatial neighboring pixel block of the reference pixel block may be specifically referred to as the spatial neighboring pixel of the reference pixel.
  • the current reference pixel block corresponds to the pixel block to be processed, which may be specifically embodied as: the position of the current reference pixel block in the first occupancy map is the same as the position of the pixel block to be processed in the second occupancy map. For example, if the current reference pixel block is the b-th reference pixel block in the a-th row in the first occupancy map, the pixel block to be processed is the b-th pixel block in the a-th row in the second occupancy map. Both a and b are integers greater than or equal to 1.
  • FIG. 8A it is a schematic diagram of the correspondence between the current reference pixel block and the pixel block to be processed.
  • Figure 8A (a) can be the occupancy diagram A in the first embodiment above, that is, the low-resolution occupancy diagram;
  • Figure 8A (b) can be the occupancy diagram B in the above embodiment 1, that is, high Resolution occupancy map.
  • the pixels occupying 1*1 in Figure A are enlarged to obtain a 4*4 pixel block.
  • the pixel block to be processed is a 4* pixel block in row 1, column 1 in the second occupancy map. 4 pixel blocks.
  • FIG. 8B it is a schematic diagram of another corresponding relationship between the current reference pixel block and the pixel block to be processed.
  • Figure 8B (a) can be the occupancy map C in the third embodiment;
  • Figure 8B (b) can be the occupancy map D in the third embodiment, the resolution of the occupancy map C and the occupancy map D The resolution is equal.
  • the current reference pixel block is a 4*4 pixel block in the first row and 1st column in the first occupancy map
  • the to-be-processed pixel block is a 4*4 pixel block in the first row and 1st column in the second occupancy map. 4 pixel blocks.
  • the reference pixel block and the pixel block to be processed are both squares as an example for description, which can be expanded, and these pixel blocks are all rectangular.
  • "1" is used to indicate occupied
  • "0" is used to indicate unoccupied. This is a unified description, and will not be repeated here.
  • the first occupied codeword is used to characterize whether the current reference pixel block is an occupied pixel block.
  • the processing mode of the pixel block to be processed may be a mode indicating that all pixels in the pixel block to be processed are unoccupied pixels.
  • the first occupied codeword is used to characterize whether multiple spatial adjacent pixel blocks (including part or all of the spatial adjacent pixel blocks) of the current reference pixel block are occupied pixel blocks. For example, if all spatial neighboring pixel blocks of the current reference pixel block are unoccupied pixel blocks, the processing mode of the pixel block to be processed may be a mode indicating that all pixels in the pixel block to be processed are unoccupied pixels. For another example, if all spatial neighboring pixel blocks of the current reference pixel block are occupied pixel blocks, the processing mode of the pixel block to be processed may be a mode indicating that all pixels in the pixel block to be processed are occupied pixels.
  • the first occupied codeword is used to characterize whether the current reference pixel block is an occupied pixel block, and whether multiple spatial adjacent pixel blocks (including part or all of the spatial adjacent pixel blocks) of the current reference pixel block are respectively Pixel blocks are occupied.
  • the following reference may be made to the following, which will not be repeated here.
  • the encoder and decoder can locally store one or more tables in advance.
  • the encoder can encode the one or more tables that are checked into the code stream, or the identification information of the one or more tables that are checked into the code stream; the decoder can obtain the one or more tables by parsing the code stream. Table, or get the identification information of the one or more tables.
  • the tables that the decoder looks up are different.
  • the table checked by the decoder may be based on the granularity of one frame of point cloud, or based on the granularity of the point cloud group, or based on the granularity of the point cloud frame sequence.
  • the table checked by the decoder may be based on the point cloud to be decoded, or based on the point cloud group where the point cloud to be decoded is located, or based on the point cloud frame sequence where the point cloud to be decoded is located.
  • S102 Perform filling processing on the pixel block to be processed according to the target processing mode to obtain the filled pixel block.
  • the target processing mode is used to indicate the position distribution of occupied pixels (or unoccupied pixels) in the filled pixel block.
  • the decoder may perform filling processing on the pixel block to be processed (for example, the pixel values in the pixel block to be processed are all 0 or all 1, or are empty) according to the target processing mode to obtain the filled pixel block.
  • S102 may be implemented in this optional manner.
  • the decoder may refill the filled pixel block to be processed according to the target processing mode.
  • S102 can be implemented in this optional manner.
  • S102 may include: assigning or copying the indicator of the target processing mode or the stored data corresponding to the target processing mode to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block.
  • the indicator of the target processing mode may be a binary indicator, for example. Of course it is not limited to this. For example, taking the filled pixel block as a 4*4 pixel block, if the binary indicator of the target processing mode is 0000000001101111, then "0000000001101111" can be assigned or copied to the corresponding pixel in the pixel block to be processed, as shown in the figure 9 shown.
  • the "stored data corresponding to the target processing mode" in this article is the array.
  • the indicator of the target processing mode is 0000000001101111
  • the indicator can be stored in an array consisting of two 1-byte unsigned byte integers, and one number in the array is a decimal number 111 (corresponding to 01101111), the other number is the decimal number 0 (corresponding to 00000000).
  • the stored data corresponding to the target processing mode may be the decimal number 111 and the decimal number 0.
  • the decoder can assign or copy row by row/column/block by row.
  • the mth row can be any row of the filled pixel block.
  • nth column can be any column of the filled pixel block.
  • the indicator used to represent one sub-pixel block of the filled pixel block can be assigned or copied to the sub-pixel block of the pixel block to be processed.
  • the sub-pixel block includes at least two rows and at least two columns of elements.
  • the decoder can also be assigned or copied in units of pixels.
  • S103 Reconstruct the to-be-decoded point cloud according to the filled second occupancy map; the filled second occupancy map includes the filled pixel block.
  • video decoding is performed according to the encoded depth map to obtain the decoded depth map of the point cloud, and the reconstructed point cloud geometric information is obtained by using the decoded depth map, the filled second occupancy map and the auxiliary information of each patch.
  • the specific implementation process can refer to the above, or refer to the prior art.
  • the target processing mode of the pixel block to be processed is obtained by looking up the table by occupying codewords.
  • the branch operation does not need to be performed, so it occupies less computing resources, which helps Improve the parallel processing efficiency of upsampling, thereby helping to improve the coding and decoding efficiency.
  • the filled pixel block (or the pixel block to be processed) is a 4*4 pixel block as an example.
  • the binary indicator of the processing mode can be any value from 0000000000000000 to 1111111111111111.
  • the processing mode in any of the following tables can be an indicator of the processing mode (such as a binary indicator) during specific implementation, or can be a schematic diagram of the processing mode (that is, pattern, as shown in the third column of Figure 6). ).
  • each table may not include the column "Serial Number".
  • the “serial number” column in any table usually has a certain corresponding relationship (such as the value corresponding to the same) with a certain column in the table (such as the second column), therefore, in specific implementation, in some embodiments ,
  • the table can include the column "Serial Number” instead of the column corresponding to the serial number.
  • each sequence number in Table 1 is equal to the binary value represented by its corresponding occupancy codeword. Based on this, Table 1 does not need to include the column of occupancy codeword. In this case, the sequence number is determined based on the occupied codeword. The serial number determines the processing mode corresponding to the occupied codeword.
  • the variants of other tables are similar to this and will not be explained here.
  • the encoder may set a table including the correspondence between various occupied codewords and various processing modes.
  • the decoder can set the same table as the encoder; or can obtain the same table as the encoder set by parsing the code stream.
  • One occupied codeword corresponds to one processing mode.
  • the processing modes corresponding to different occupied codewords can be the same or different.
  • an occupied codeword is used to characterize whether a reference pixel block and all its spatial neighboring pixel blocks are occupied pixel blocks respectively.
  • an occupied codeword can be a 9-bit binary indicator, that is, 000000000 Any value from ⁇ 111111111. If the 9-bit binary indicator is: according to the reference pixel block and all its spatial neighboring pixel blocks from left to right, top to bottom, the occupied position of the reference pixel block and all spatial neighboring pixel blocks After sorting, the corresponding relationship between the multiple occupation codewords and the multiple processing modes can be shown in Table 1.
  • Serial number Occupy codeword Processing mode (also known as fill mode) 0 000000000 000000000000 1 000000001 0000000000000000 ... ... ... 95 001011111 0001001101111111 ... ... ... 511 111111111 1111111111111111
  • a schematic diagram of the process of constructing or using Table 1 by the decoder may be as shown in FIG. 17.
  • the resolution of the first occupancy map is smaller than the resolution of the second occupancy map as an example for illustration, which can be specifically embodied as: the reference pixel block in the first occupancy map is a reference pixel (ie 1*1 The reference pixel block), the pixel block corresponding to the reference pixel block in the second occupancy map is a 4*4 pixel block, that is to say, the processing mode is the processing mode of the 4*4 pixel block as an example. .
  • Figure 17 (a) shows a schematic diagram of whether a reference pixel block (centered) and its spatial neighboring pixel blocks in the first occupancy map are occupied pixel blocks respectively.
  • Figure 17 (a) can be used as An occupancy codeword "001011111” is used for characterization.
  • Figure 17(b) shows a schematic diagram of the processing mode "0001001101111111” corresponding to the first occupancy codeword "001011111”.
  • Figure 17 (c) shows Table 1 constructed by the decoder. Among them, based on the diagrams (a) and (b) in FIG. 17 can be used to construct a row of the sequence number 95 of the diagram (c) in FIG. 17. Or, based on the diagram in (a) in FIG. 17, the occupied codeword "001011111” can be used as an index, and the corresponding filling pattern pattern can be obtained by looking up the table, as shown in diagram (b) in FIG. 17.
  • the first occupied codeword is "001011111" (the serial number is 95)
  • the current reference pixel block (the center of (a) in Figure 17) is directly on the left, directly above, and on the top left
  • the adjacent pixel blocks in the spatial domain of the square are all unoccupied pixel blocks (the black in Figure 17 (a) indicates empty, that is, unoccupied), and the adjacent pixel blocks in other spatial domains and the current reference pixel block are all occupied pixel blocks.
  • the white in (a) in Fig. 17 indicates occupancy).
  • the decoder can obtain the binary indicator of the target processing mode of the pixel block to be processed is 0001001101111111, which is the processing mode corresponding to index 2 as shown in Figure 6.
  • a schematic diagram of this process can be shown in Figure 18.
  • FIG. 18 it is a schematic diagram of the process of finding a target processing mode provided based on FIG. 17. Specifically, if a schematic diagram of whether the current reference pixel block and its spatial neighboring pixel blocks are occupied pixel blocks is shown in Figure 18 (a), the first occupied code word can be 001011111, as shown in Figure 18 (b) As shown in the figure. Based on the look-up table of the first occupied codeword 001011111, that is, the table shown in Figure 17 (c), it can be obtained that the binary indicator of the processing mode corresponding to the first occupied codeword 001011111 is 0001001101111111 (that is, the binary indicator of the target processing mode ).
  • the blank pixel block to be processed (that is, the unfilled pixel block to be processed) shown in Figure 18 (c) is filled, and the result is shown in Figure 18 (d). Filled pixel block shown.
  • the black in Figure 18 (a) represents empty, that is, unoccupied, which is represented by 0; the white in Figure 18 (a) represents occupied, which is represented by 1; it should be understood that this application is This is not limited. For example, 1 can also be used to represent unoccupied, and 0 can be used to represent occupied.
  • a schematic diagram of the process of constructing or using Table 1 by the decoder may be as shown in FIG. 19.
  • the resolution of the first occupancy map is equal to the resolution of the second occupancy map as an example for illustration, which can be specifically embodied as: the reference pixel block in the first occupancy map is a 4*4 pixel block, The pixel block corresponding to the reference pixel block in the second occupancy map is also a 4*4 pixel block, that is, the processing mode is described by taking the processing mode of the 4*4 pixel block as an example.
  • Figure 19 (a) shows a schematic diagram of whether a reference pixel block (centered 4*4 block) and its spatial neighboring pixel blocks in the first occupancy map are occupied pixel blocks, respectively, in Figure 19 (b)
  • the figure shows a schematic diagram of the processing mode 0001001101111111 corresponding to the first occupied codeword 001011111.
  • Figure 19 (c) shows Table 1 constructed by the decoder.
  • based on the diagrams (a) and (b) in FIG. 19 can be used to construct a row of the sequence number 95 in the diagram (c) in FIG.
  • the occupied codeword "001011111” can be used as an index, and the corresponding filling pattern pattern can be obtained by looking up the table, as shown in figure (b) in FIG. 19.
  • FIG. 20 it is a schematic diagram of a process of finding a target processing mode provided based on FIG. 19. Specifically, if a schematic diagram of whether the current reference pixel block and its spatial neighboring pixel blocks are occupied pixel blocks is shown in Figure 20 (a), the first occupied code word can be 001011111, as shown in Figure 20 (b) As shown in the figure. Based on the look-up table of the first occupied codeword 001011111, which is the table shown in Figure 19 (c), it can be obtained that the binary indicator of the processing mode corresponding to the first occupied codeword 001011111 is 0001001101111111 (that is, the binary indicator of the target processing mode ).
  • the blank pixel block to be processed (that is, the unfilled pixel block to be processed) shown in Figure 20 (c) is filled, and the result is shown in Figure 20 (d). Filled pixel block shown.
  • the black in Figure 20 (a) represents empty, that is, unoccupied, represented by 0; the white in Figure 20 (a) represents occupied, represented by 1; it should be understood that this application is This is not limited. For example, 1 can also be used to represent unoccupied, and 0 can be used to represent occupied.
  • the encoder can set up a table that includes the correspondence between multiple occupancy codewords and indexes of multiple processing modes, and a table that includes the correspondence between indexes of multiple processing modes and multiple processing modes. table.
  • the decoder can set the same table as the encoder; or it can obtain the same table as the encoder set by parsing the code stream.
  • An index of an occupied codeword corresponds to a processing mode.
  • the index of the processing mode corresponding to different occupied code words can be the same or different.
  • the index of the processing mode corresponds to the processing mode one to one.
  • the indexes of different processing modes correspond to different processing modes.
  • an occupied codeword is used to characterize whether a reference pixel block and all its spatial neighboring pixel blocks are occupied pixel blocks respectively.
  • a reference occupied codeword can be a 9-bit binary indicator, that is Any value from 000000000 to 111111111.
  • the 9-bit binary indicator is: according to the reference pixel block and all its spatial neighboring pixel blocks from left to right and top to bottom, the occupied position of the reference pixel block and all spatial neighboring pixel blocks
  • Table 2 and Table 3 a total of 16 processing modes (indexes 0-15) are used as examples for description.
  • Serial number Occupy codeword Index of processing mode 0 000000000 0 1 000000001 0 ... ... ... 95 001011111 5 ... ... ... 511 111111111 15
  • Table 2 One way of representing the relationship between Table 2 and Table 3 above may be as shown in FIG. 21.
  • Table 3 the table shown in (a) in FIG. 21 is Table 2
  • Table 3 the table shown in (b) in FIG. 21 is Table 3. It can be seen from FIG. 21 that multiple occupied codewords can correspond to the index of the same processing mode, and thus correspond to the same processing mode.
  • the decoder can obtain the index of the processing mode corresponding to the occupied codeword by looking up Table 2 to be 5; then, by looking up Table 3 , The binary representation of the target processing mode of the pixel block to be processed can be obtained as 0001001101111111.
  • the technical solution provided in this embodiment can save the storage space occupied by the checked table.
  • the encoder can set at least two tables that "include the correspondence between multiple processing modes and multiple sub-occupancy codewords".
  • the decoder can set the same table as the encoder; or it can obtain the same table as the encoder set by parsing the code stream.
  • the first sub-occupied codeword is used to characterize whether the current reference pixel block is an occupied pixel block.
  • the first sub-occupied codeword may be a 1-bit binary indicator.
  • Table 4 The table of the correspondence between the various processing modes and the various sub-occupied codewords can be shown in Table 4.
  • the processing mode column in Table 4 can be replaced with the processing mode index, for example, use “0" as the index of the processing mode "0000000000000000” and use “1” as the processing mode "1111111111111111” index of.
  • the decoder can also store the corresponding relationship between the index of the processing mode and the processing mode, which can further save the storage space occupied by the checked table.
  • the second sub-occupied codeword is used to characterize whether the multiple spatial adjacent pixel blocks of the current reference pixel block are occupied pixel blocks.
  • the second sub-occupancy codeword is used to characterize whether all (that is, all) spatial neighboring pixel blocks of the current reference pixel block are occupied pixel blocks.
  • the second sub-occupation codeword can be an 8-bit binary representation. symbol.
  • the second sub-occupied codeword is used to characterize whether neighboring pixel blocks in a partial (ie, local) space of the reference pixel block are occupied pixel blocks.
  • the second sub-occupied codeword is used to characterize whether the spatial neighboring pixel blocks directly above, directly left, directly right, and directly below the current reference pixel block are occupied pixel blocks, respectively.
  • the second sub-occupied codeword may be a 4-bit binary indicator, that is, any value from 0000 to 1111. If the 4-bit binary indicator is in the order from left to right and top to bottom of the spatial neighboring pixel blocks directly above, directly left, right, and directly below the reference pixel block, the reference pixel block is The occupancy bits of the adjacent pixel blocks in the space above, on the left, on the right, and below are sorted. Then, the corresponding relationship between multiple processing modes and multiple sub-occupancy codewords can be shown in Table 5. Shown.
  • the processing mode column in Table 5 can be replaced with the processing mode index. Based on this, the decoder can also store the corresponding relationship between the processing mode index and the processing mode. In this way, The storage space occupied by the checked table can be further saved.
  • the decoder can obtain the target processing mode of the pixel block to be processed by executing the following steps:
  • Step 1 According to the first sub-occupancy codeword, look up a table of correspondences between multiple processing modes and multiple sub-occupied codewords (for example, look up Table 4) to obtain the first processing mode corresponding to the first sub-occupied codeword.
  • Step 2 According to the second sub-occupancy codeword, look up a table of correspondences between multiple processing modes and multiple sub-occupation codewords (for example, look up Table 5) to obtain the second processing mode corresponding to the second sub-occupation codeword.
  • step 1 and step 2 can be in no particular order.
  • Step 3 Obtain the target processing mode of the pixel block to be processed according to the first processing mode and the second processing mode. For example, when “0" is used to indicate unoccupied and "1" is used to indicate occupied, bitwise AND is performed on the binary indicator of the first processing mode and the binary indicator of the second processing mode to obtain the target processing mode Binary indicator.
  • the decoder will look up Table 4 according to "0” to obtain the first processing mode Binary indicator "0000000000000000”; look up Table 5 according to "0001” to get the binary indicator "0000000000001111” of the second processing mode. Then, the bitwise AND of "0000000000000000" and "0000000000001111” is performed to obtain the binary indicator "0000000000000000" of the target processing mode.
  • the decoder when the binary indicator of the first sub-occupied codeword is "1", and the binary indicator of the second sub-occupied codeword is "0001", the decoder will look up Table 4 according to "1” to obtain the first processing mode The binary representation of "1111111111111111”; look up Table 5 according to "0001", and get the binary representation of the second processing mode "0000000000001111". Then, perform bitwise AND of "1111111111111” and "0000000000001111" to obtain the binary representation "0000000000001111" of the target processing mode.
  • the technical solution provided in this embodiment can save the storage space occupied by the checked table.
  • processing modes corresponding to different types of pixel blocks can be obtained through transformation (such as rotation).
  • transformation such as rotation
  • the processing modes corresponding to the type 2, type 3, and type 4 pixel blocks in FIG. It is obtained by rotating the type 1 pixel block by 90°, 180°, and 270° counterclockwise. Based on this, the technical solution of this embodiment is proposed.
  • the encoder can set a table that includes the correspondence between multiple reference processing modes, multiple rotation angles, and multiple occupation codewords.
  • the decoder can set the same table as the encoder; or it can obtain the same table as the encoder set by parsing the code stream.
  • the reference processing modes corresponding to different occupied code words may be the same or different.
  • the rotation angles corresponding to different occupied codes can be the same or different.
  • One reference processing mode can correspond to one or more rotation angles.
  • the encoder can set a table that includes the correspondence between multiple processing modes and multiple sub-occupied codewords, and includes multiple references A table of the correspondence between processing modes, multiple rotation angles, and multiple sub-occupancy codewords
  • the decoder can replace the "table including the correspondence between multiple reference processing modes, multiple rotation angles, and multiple sub-occupation codewords" with: “including multiple The index of the reference processing mode, the index of the multiple rotation angles, and the table of the correspondence between the multiple sub-occupation codewords (see Table 6)", "The index including the multiple reference processing modes and the multiple reference processing modes The corresponding relationship table (see Table 7)”, and the "table including the correspondence relationship between the indexes of multiple rotation angles and the multiple rotation angles (see Table 8)".
  • Table 6 takes the second sub-occupied codeword used to characterize whether the spatial neighboring pixel blocks directly above, directly left, directly right, and directly below the current reference pixel block are occupied pixel blocks respectively.
  • Reference processing mode index Reference processing mode 0 0 1000110011101111 1 1 0000000001101111 2 2 1111111111111111
  • the reference processing mode 0 (ie, "1000110011101111”) may be the processing mode corresponding to index 5 in FIG. 6.
  • the schematic diagram of the reference processing mode 1 (ie, “0000000001101111”) may be the processing mode corresponding to index 9 in FIG. 6. As shown in Figure 22.
  • rotation angles in Table 8 are all counterclockwise rotation angles as examples.
  • the decoder can obtain the target processing mode of the pixel block to be processed by executing the following steps:
  • Step 1 According to the first sub-occupancy codeword, look up a table of correspondences between multiple processing modes and multiple sub-occupied codewords (for example, look up Table 3) to obtain the first processing mode corresponding to the first sub-occupied codeword.
  • a table of correspondences between multiple processing modes and multiple sub-occupied codewords for example, look up Table 3
  • Step 2 According to the second sub-occupation codeword, look up a table of correspondence between multiple reference processing modes, multiple rotation angles, and multiple sub-occupation codewords (for example, look up Table 6, Table 7 and Table 8), and obtain The reference processing mode and rotation angle corresponding to the second sub-occupation codeword. Then, according to the rotation angle corresponding to the second occupied codeword, the reference processing mode corresponding to the second occupied codeword is rotated to obtain the fifth processing mode of the pixel block to be processed.
  • a table of correspondence between multiple reference processing modes, multiple rotation angles, and multiple sub-occupation codewords for example, look up Table 6, Table 7 and Table 8
  • Step 3 Obtain the target processing mode of the pixel block to be processed according to the first processing mode and the fifth processing mode. For example, when “0" is used to indicate unoccupied and "1" is used to indicate occupied, bitwise AND is performed on the binary indicator of the first processing mode and the binary indicator of the fifth processing mode to obtain the target processing mode Binary indicator.
  • the technical solution provided in this embodiment can save the storage space occupied by the checked table.
  • the above Table 5 and Table 6 are based on "The second sub-occupation codeword is used to characterize whether the spatial neighboring pixel blocks of the current reference pixel block are directly above, directly left, right, and directly below the spatial neighboring pixel blocks respectively. "Occupied pixel block" is described as an example. In actual implementation, if the second sub-occupied codeword is used to characterize whether the spatial neighboring pixel blocks in other positions of the current reference pixel block are occupied pixel blocks, the specific content of the table stored in the decoder can be based on Table 5 or It is deduced from Table 6 and will not be repeated here.
  • the pixel block to be processed corresponding to the current reference pixel block can be considered It is inside a point cloud block (patch) that all pixels in the pixel block to be processed have a higher probability of being occupied pixels. Therefore, all pixels in the pixel block to be processed can be filled as occupied.
  • the number of adjacent pixel blocks in the occupied space of the current reference pixel block is less than the second threshold, it can be considered that the pixel block to be processed corresponding to the current reference pixel block belongs to a small point cloud block, and it is difficult to determine its true shape.
  • the first threshold is greater than the second threshold. Assuming that the first threshold is 6 and the second threshold is 2, then the correspondence between multiple numbers and multiple processing modes can be as shown in Table 9:
  • Serial number Number (that is, the number of adjacent pixel blocks in the occupied space) Processing mode 0 0 1111111111111111 1 1 1111111111111 2 2 0000000000000000
  • the processing mode column in Table 9 can be replaced with the processing mode index, for example, use “0" as the index of the processing mode "0000000000000000” and use “1” as the processing mode "1111111111111111” index of.
  • the decoder can also store the corresponding relationship between the index of the processing mode and the processing mode, which can further save the storage space occupied by the checked table.
  • Table 9 can be used in combination with any of the embodiments described above.
  • the decoder can look up Table 9 according to the number of occupied spatial pixel blocks of the current reference pixel block to obtain a processing mode corresponding to the current reference pixel block, and combine This processing mode is bitwise ORed with the "result of the bitwise AND of the first processing mode and the fifth processing mode" in the fourth embodiment to obtain the target processing mode of the pixel block to be processed corresponding to the current reference pixel block.
  • the decoder can look up Table 9 according to the number of occupied spatial pixel blocks of the current reference pixel block to obtain a processing mode corresponding to the current reference pixel block, and Perform a bitwise OR between the processing mode and the "result of the bitwise AND of the first processing mode and the second processing mode" in the third embodiment to obtain the target processing mode of the pixel block to be processed corresponding to the current reference pixel block.
  • a code stream format may be as follows:
  • FIG. 10 it is a schematic flowchart of a point cloud decoding method provided by an embodiment of this application. This method can include:
  • S201 Obtain the target processing mode of the pixel block to be processed according to the second occupancy codeword lookup table; the second occupancy codeword is used to characterize whether the pixel block to be processed is an occupied pixel block, and/or multiple pixel blocks to be processed Whether adjacent pixel blocks in the spatial domain are occupied pixel blocks respectively; the pixel blocks to be processed are pixel blocks in the occupied map of the point cloud to be decoded.
  • S202 Perform filling processing on the pixel block to be processed according to the target processing mode to obtain the filled pixel block.
  • the occupancy map of the point cloud to be decoded may be the occupancy map C.
  • the difference between this embodiment and the embodiment shown in FIG. 7 is that the meanings of the occupied code words in the two technical solutions are different, and the technical solutions provided in the first aspect described above need to pass the current reference pixel block in the first occupation map.
  • Related information (such as the first occupancy codeword), determine the target processing mode of the pixel block to be processed in the second occupancy map, where the current reference pixel block in the first occupancy map (for example, a low-resolution occupancy map) corresponds to the first Second, the pixel blocks to be processed in the occupancy map (for example, a high-resolution occupancy map), that is, two occupancy maps are involved in the table lookup process.
  • the target processing mode of the pixel block to be processed is determined by the related information of the pixel block to be processed (such as the second occupancy codeword), that is, only one occupancy map is involved in the table look-up process.
  • the related information of the pixel block to be processed such as the second occupancy codeword
  • FIG. 11 it is a schematic flowchart of a point cloud encoding method provided by an embodiment of this application.
  • the execution subject of this embodiment may be an encoder.
  • the method can include:
  • the target coding method includes any point cloud coding method provided in the embodiments of the present application, for example, it may be FIG. 7 Or the point cloud decoding method shown in FIG. 10, and the decoding here specifically refers to encoding.
  • one of the at least two types may be any point cloud encoding method provided in the embodiments of this application, and the other may be points provided in the prior art or in the future. Cloud coding method.
  • the indication information may specifically be the index of the target point cloud encoding/decoding method.
  • the encoder and decoder can pre-appoint the indexes of at least two point cloud encoding/decoding methods supported by the encoder/decoder. Then, after the encoder determines the target encoding method, the target encoding method The index or the index of the decoding method corresponding to the target encoding method is used as the indication information to be encoded into the code stream.
  • the embodiment of the present application does not limit how the encoder determines which of the at least two encoding methods supported by the encoder is the target encoding method.
  • This embodiment provides a technical solution for selecting a target coding method, and the technical solution can be applied to a scenario where the encoder supports at least two point cloud coding methods.
  • FIG. 12 it is a schematic flowchart of a point cloud decoding method provided by an embodiment of this application.
  • the execution subject of this embodiment may be a decoder.
  • the method can include:
  • the target decoding method includes any point cloud decoding method provided in the embodiments of this application, For example, it may be the point cloud decoding method shown in FIG. 7 or FIG. 10, and the decoding here specifically refers to decoding. Specifically, it is a decoding method corresponding to the encoding method described in FIG. 11. Among them, the indication information is frame-level information.
  • the point cloud decoding method provided in this embodiment corresponds to the point cloud encoding method provided in FIG. 11.
  • the embodiment of the present application may divide the encoder/decoder into functional modules according to the foregoing method examples.
  • each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or software functional modules. It should be noted that the division of modules in the embodiments of the present application is illustrative, and is only a logical function division, and there may be other division methods in actual implementation.
  • FIG. 13 it is a schematic block diagram of a decoder 130 provided by an embodiment of this application.
  • the decoder 130 may specifically be an encoder or a decoder.
  • the decoder 130 may include an up-sampling module 1301 and a point cloud reconstruction module 1302.
  • the decoder 130 may correspond to the encoder 100 in FIG. 2.
  • the up-sampling module 1301 may correspond to the up-sampling module 111
  • the point cloud reconstruction module 1302 may correspond to the point cloud reconstruction module 112.
  • the decoder 130 may correspond to the decoder 200 in FIG. 5.
  • the up-sampling module 1301 may correspond to the up-sampling module 208
  • the point cloud reconstruction module 1302 may correspond to the point cloud reconstruction module 205.
  • the coding framework shown in FIG. 2 and the decoding framework shown in FIG. 5 are only for illustration. It should be understood that the framework of the encoder or decoder of the present application includes but is not limited to this.
  • the up-sampling module 1301 is configured to look up the table according to the first occupied codeword to obtain the target processing mode of the pixel block to be processed; wherein, the first occupied codeword is used to characterize whether the current reference pixel block is The occupied pixel block, and/or whether the multiple spatial neighboring pixel blocks of the current reference pixel block are occupied pixel blocks; the current reference pixel block is a pixel in the first occupied image of the point cloud to be decoded Block, the pixel block to be processed is a pixel block in the second occupancy map of the point cloud to be decoded, and the current reference pixel block corresponds to the pixel block to be processed; the pixel block to be processed is performed according to the target processing mode Filling processing to obtain filled pixel blocks.
  • the point cloud reconstruction module 1302 is configured to reconstruct the point cloud to be decoded according to the filled second occupancy map; the filled second occupancy map includes the filled pixel block.
  • the up-sampling module 1301 may be used to perform S101 and S102, and the point cloud reconstruction module 1302 may be used to perform S103.
  • the up-sampling module 1301 is specifically configured to: use the indicator of the target processing mode or the stored data corresponding to the target processing mode, Assign or copy to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block.
  • the upsampling module 1301 is specifically used for :
  • the indicator of the target processing mode or the stored data corresponding to the target processing mode is assigned or copied line by line to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block; or, the indicator of the target processing mode Or the stored data corresponding to the target processing mode is assigned or copied column by column to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block; or, the indicator of the target processing mode or the storage corresponding to the target processing mode
  • the data is assigned block by block or copied block by block to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block.
  • the up-sampling module 1301 is specifically configured to: look up the first table according to the first occupancy codeword, and obtain The reference processing mode and transformation method corresponding to the codeword; the first table includes the correspondence between multiple reference processing modes, multiple transformation methods, and multiple occupation codewords; according to the transformation method corresponding to the first occupied codeword, The reference processing mode corresponding to the first occupied codeword is transformed to obtain the target processing mode of the pixel block to be processed.
  • different transformation methods include different rotation angles; in accordance with the transformation method corresponding to the first occupied codeword, the reference processing mode corresponding to the first occupied codeword is transformed to obtain the target processing of the pixel block to be processed
  • the up-sampling module 1301 is specifically configured to rotate the reference processing mode corresponding to the first occupied codeword according to the rotation angle corresponding to the first occupied codeword to obtain the target processing mode of the pixel block to be processed.
  • the upsampling module 1301 is specifically configured to: look up the second table according to the first occupied codeword to obtain the pixel block to be processed The target processing mode; the second table includes the correspondence between multiple processing modes and multiple occupied codewords.
  • the upsampling module 1301 is specifically configured to: look up the third table according to the first occupied codeword to obtain the pixel block to be processed The index of the target processing mode; the third table includes the correspondence between the indexes of multiple processing modes and the multiple occupation codewords; the fourth table is checked according to the index of the target processing mode of the pixel block to be processed, and the pixel block to be processed is obtained The target processing mode; where the fourth table includes the corresponding relationship between the index of the multiple processing modes and the multiple processing modes.
  • the upsampling module 1301 is specifically configured to: look up the fifth table according to the first sub-occupied codeword to obtain the first processing Mode; the first sub-occupancy codeword is used to characterize whether the current reference pixel block is an occupied pixel block; the fifth table includes the correspondence between multiple processing modes and multiple sub-occupation codewords; check according to the second sub-occupation codeword The sixth table obtains the second processing mode; where the second sub-occupancy codeword is used to characterize whether the multiple spatial neighboring pixel blocks of the current reference pixel block are occupied pixel blocks respectively; the sixth table includes multiple processing modes and Correspondence between multiple sub-occupation codewords; according to the first processing mode and the second processing mode, determine the target processing mode of the pixel block to be processed.
  • the up-sampling module 1301 is specifically configured to: according to the number of adjacent pixel blocks in the occupied space of the current reference pixel block Look up the seventh table to get the third processing mode; the seventh table includes the correspondence between multiple processing modes and multiple numbers; look up the eighth table according to the first occupied codeword to obtain the corresponding to the first occupied codeword Reference processing mode and rotation angle; The eighth table includes the correspondence between multiple reference processing modes, multiple rotation angles, and multiple occupation codewords; according to the rotation angle corresponding to the first occupation codeword, compare with the first occupation codeword The reference processing mode corresponding to the codeword is rotated to obtain the fourth processing mode of the pixel block to be processed; according to the third processing mode and the fourth processing mode, the target processing mode of the pixel block to be processed is determined.
  • the first occupied codeword is used to characterize whether the current reference pixel block and multiple spatially adjacent pixel blocks of the current reference pixel block are occupied pixel blocks, respectively.
  • the up-sampling module 1301 is configured to look up the table according to the second occupied codeword to obtain the target processing mode of the pixel block to be processed; the second occupied codeword is used to characterize whether the pixel block to be processed is Is an occupied pixel block, and/or whether a plurality of spatial neighboring pixel blocks of the pixel block to be processed are occupied pixel blocks, and the pixel block to be processed is a pixel block in the occupation map of the point cloud to be decoded ; According to the target processing mode, the pixel block to be processed is filled to obtain the filled pixel block.
  • the point cloud reconstruction module 1302 is configured to reconstruct the point cloud to be decoded according to the filled occupancy map; the filled occupancy map includes the filled pixel block.
  • the up-sampling module 1301 may be used to perform S201 and S202, and the point cloud reconstruction module 1302 may be used to perform S203.
  • the up-sampling module 1301 is specifically configured to: use the indicator of the target processing mode or the stored data corresponding to the target processing mode, Assign or copy to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block.
  • the upsampling module 1301 is specifically used for :
  • the indicator of the target processing mode or the stored data corresponding to the target processing mode is assigned or copied line by line to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block; or, the indicator of the target processing mode Or the stored data corresponding to the target processing mode is assigned or copied column by column to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block; or, the indicator of the target processing mode or the storage corresponding to the target processing mode
  • the data is assigned block by block or copied block by block to the corresponding pixels in the pixel block to be processed to obtain the filled pixel block.
  • the up-sampling module 1301 is specifically configured to: look up the first table according to the second occupied codeword to obtain the corresponding The reference processing mode and transformation method corresponding to the block; the first table includes the correspondence between multiple reference processing modes, multiple transformation methods, and multiple occupation codewords; according to the transformation method corresponding to the pixel block to be processed, The reference processing mode corresponding to the processed pixel block is transformed to obtain the target processing mode of the pixel block to be processed.
  • different transformation methods include different rotation angles; in accordance with the transformation method corresponding to the pixel block to be processed, the reference processing mode corresponding to the pixel block to be processed is transformed to obtain the target processing mode of the pixel block to be processed
  • the up-sampling module 1301 is specifically configured to rotate the reference processing mode corresponding to the pixel block to be processed according to the rotation angle corresponding to the pixel block to be processed to obtain the target processing mode of the pixel block to be processed.
  • the upsampling module 1301 is specifically configured to: look up the second table according to the second occupied codeword to obtain the pixel block to be processed The target processing mode; the second table includes the correspondence between multiple processing modes and multiple occupied codewords.
  • the upsampling module 1301 is specifically configured to: look up the third table according to the second occupied codeword to obtain the pixel block to be processed The index of the target processing mode; the third table includes the correspondence between the indexes of multiple processing modes and the multiple occupation codewords; the fourth table is checked according to the index of the target processing mode of the pixel block to be processed, and the pixel block to be processed is obtained The target processing mode; where the fourth table includes the corresponding relationship between the index of the multiple processing modes and the multiple processing modes.
  • the up-sampling module 1301 is specifically configured to: look up the fifth table according to the first sub-occupied codeword to obtain the first processed Mode; the first sub-occupancy codeword is used to characterize whether the pixel block to be processed is an occupied pixel block; the fifth table includes the correspondence between multiple processing modes and multiple sub-occupation codewords; check according to the second sub-occupation codeword The sixth table obtains the second processing mode; where the second sub-occupancy codeword is used to characterize whether the multiple spatial neighboring pixel blocks of the pixel block to be processed are occupied pixel blocks; the sixth table includes multiple processing modes and Correspondence between multiple sub-occupation codewords; according to the first processing mode and the second processing mode, determine the target processing mode of the pixel block to be processed.
  • the up-sampling module 1301 is specifically configured to: according to the number of adjacent pixel blocks in the occupied space of the pixel block to be processed Check the seventh table to get the third processing mode; the seventh table includes the correspondence between multiple processing modes and multiple numbers; check the eighth table according to the second occupancy codeword to get the reference corresponding to the pixel block to be processed Processing mode and rotation angle; The eighth table includes the correspondence between multiple reference processing modes, multiple rotation angles and multiple occupation codewords; according to the rotation angle corresponding to the pixel block to be processed, the pair corresponds to the pixel block to be processed The reference processing mode is rotated to obtain the fourth processing mode of the pixel block to be processed; according to the third processing mode and the fourth processing mode, the target processing mode of the pixel block to be processed is determined.
  • the second occupied codeword is used to characterize whether the pixel block to be processed and multiple adjacent pixel blocks in the spatial domain of the pixel block to be processed are occupied pixel blocks, respectively.
  • the point cloud to be decoded is a point cloud to be coded.
  • the decoder 130 further includes: an auxiliary information encoding module 1303, which is used to encode one or more tables to be checked into a code stream, or to encode identification information into a code stream, and the identification information is used to indicate the checked One or more tables.
  • the point cloud to be decoded is a point cloud to be decoded.
  • the decoder 130 further includes: an auxiliary information decoding module 1304, which is used to parse the code stream to obtain one or more tables to be checked.
  • the up-sampling module 1301 may be specifically used to check one or more tables obtained by analyzing the code stream based on the first occupied codeword.
  • the auxiliary information decoding module 1304 is used to parse the code stream to obtain identification information, which is used to indicate the one or more tables being checked.
  • the up-sampling module 1301 can be specifically used to check one or more tables represented by the identification information obtained by parsing the code stream based on the first occupied codeword.
  • modules in the decoder 130 provided in the embodiments of the present application are functional entities that implement the various execution steps included in the corresponding methods provided above, that is, they are capable of fully implementing the point cloud decoding of the present application.
  • steps in the method, as well as the main body of the expansion and modification of these steps please refer to the introduction of the corresponding method above. For the sake of brevity, this article will not repeat them.
  • FIG. 16 is a schematic block diagram of an implementation manner of an encoding device or a decoding device (referred to as a decoding device 160 for short) used in an embodiment of the present application.
  • the decoding device 160 may include a processor 1610, a memory 1630, and a bus system 1650.
  • the processor 1610 and the memory 1630 are connected through a bus system 1650, the memory 1630 is used to store instructions, and the processor 1610 is used to execute instructions stored in the memory 1630 to execute various point cloud decoding methods described in this application. To avoid repetition, it will not be described in detail here.
  • the processor 1610 may be a central processing unit (CPU), and the processor 1610 may also be other general-purpose processors, DSP, ASIC, FPGA or other programmable logic devices, discrete gates. Or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the memory 1630 may include a ROM device or a RAM device. Any other suitable type of storage device can also be used as the memory 1630.
  • the memory 1630 may include code and data 1631 accessed by the processor 1610 using the bus system 1650.
  • the memory 1630 may further include an operating system 1633 and an application program 1635.
  • the application program 1635 includes allowing the processor 1610 to execute the point cloud coding method or the point cloud decoding method described in this application (especially the occupancy code word lookup table described in this application).
  • the application program 1635 may include applications 1 to N, which further include a video encoding or decoding application (referred to as a video decoding application) that executes the video encoding or decoding method described in this application.
  • the bus system 1650 may also include a power bus, a control bus, and a status signal bus. However, for clear description, various buses are marked as the bus system 1650 in the figure.
  • the decoding device 160 may also include one or more output devices, such as a display 1670.
  • the display 1670 may be a touch-sensitive display, which merges the display with a touch-sensitive unit operable to sense touch input.
  • the display 1670 may be connected to the processor 1610 via the bus system 1650.
  • the computer-readable medium may include a computer-readable storage medium, which corresponds to a tangible medium, such as a data storage medium, or a communication medium that includes any medium that facilitates the transfer of a computer program from one place to another (for example, according to a communication protocol) .
  • computer-readable media generally correspond to non-transitory tangible computer-readable storage media, or communication media, such as signals or carrier waves.
  • Data storage media can be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and/or data structures for implementing the techniques described in this application.
  • the computer program product may include a computer-readable medium.
  • such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage devices, magnetic disk storage devices or other magnetic storage devices, flash memory, or structures that can be used to store instructions or data Any other media that can be accessed by the computer in the form of desired program code. And, any connection is properly termed a computer-readable medium.
  • any connection is properly termed a computer-readable medium.
  • coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave to transmit instructions from a website, server, or other remote source
  • coaxial cable Wire, fiber optic cable, twisted pair, DSL or wireless technologies such as infrared, radio and microwave are included in the definition of media.
  • the computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other temporary media, but are actually directed to non-transitory tangible storage media.
  • magnetic disks and optical disks include compact disks (CDs), laser disks, optical disks, DVDs, and Blu-ray disks, where disks usually reproduce data magnetically, and optical disks use lasers to reproduce data optically. Combinations of the above should also be included in the scope of computer-readable media.
  • DSP digital signal processors
  • ASIC application-specific integrated circuits
  • FPGA field programmable logic arrays
  • processor may refer to any of the foregoing structure or any other structure suitable for implementing the techniques described herein.
  • the functions described by the various illustrative logical blocks, modules, and steps described herein may be provided in dedicated hardware and/or software modules configured for encoding and decoding, or combined Into the combined codec.
  • the technology may be fully implemented in one or more circuits or logic elements.
  • various illustrative logical blocks, units, and modules in the encoder 100 and the decoder 200 can be understood as corresponding circuit devices or logical elements.
  • the technology of this application can be implemented in a variety of devices or devices, including wireless handsets, integrated circuits (ICs), or a set of ICs (for example, chipsets).
  • ICs integrated circuits
  • a set of ICs for example, chipsets.
  • Various components, modules, or units are described in this application to emphasize the functional aspects of the device for performing the disclosed technology, but they do not necessarily need to be implemented by different hardware units.
  • various units can be combined with appropriate software and/or firmware in the codec hardware unit, or by interoperating hardware units (including one or more processors as described above). provide.

Abstract

本申请公开了点云编解码方法及编解码器,涉及编解码技术领域,有助于提高上采样的并行处理效率,从而提高编解码效率。点云译码(包括编码或解码)方法包括:根据第一占用码字查表,得到待处理像素块的目标处理模式;其中,第一占用码字用于表征当前基准像素块是否为已占用像素块,和/或当前基准像素块的多个空域相邻像素块分别是否为已占用像素块;当前基准像素块是待译码点云的第一占用图中的像素块,待处理像素块是待译码点云的第二占用图中的像素块,当前基准像素块对应于待处理像素块;根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块;根据经填充的第二占用图,重构待译码点云;经填充的第二占用图包括经填充像素块。

Description

点云编解码方法及编解码器
本申请要求于2019年03月19日提交国家知识产权局、申请号为201910210186.6、申请名称为“点云编解码方法及编解码器”的中国专利申请的优先权,以及,2019年03月20日提交国家知识产权局、申请号为201910214417.0、申请名称为“点云编解码方法及编解码器”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及编解码技术领域,尤其涉及点云(point cloud)编解码方法及编解码器。
背景技术
随着3d传感器(例如3d扫描仪)技术的不断发展,采集点云数据越来越便捷,所采集的点云数据的规模也越来越大。面对海量的点云数据,对点云的高质量压缩、存储和传输就变得非常重要。
为了节省码流传输开销,编码器对待编码点云进行编码时,通常需要对待编码点云的原始分辨率的占用图进行下采样处理,并将经下采样处理的占用图(即低分辨率的占用图)的相关信息发送给解码器。基于此,编码器和解码器在重构点云时,需要先对经下采样处理的占用图进行上采样处理,得到原始分辨率的占用图(即高分辨率的占用图),再基于经上采样处理的占用图重构点云。
在上采样处理的过程中,通常采用判断操作(if..else..)确定像素块的类型,从而确定适用于待处理像素块的处理模式(即填充模式)。由于判断操作是一种分支操作,而分支操作在某些应用场景中需要占用较多的资源,这会导致上采样的并行处理效率较低,从而影响编解码效率。例如,在图形处理单元(graphic processing unit)上运行的并行程序,每个分支判断操作都需要占用2个线程,从而导致上采样的并行处理效率较低,进而影响编解码效率。
发明内容
本申请实施例提供了点云编解码方法及编解码器,有助于提高上采样的并行处理效率,从而提高编解码效率。
第一方面,本申请实施例提供了点云译码方法,包括:根据第一占用码字查表(例如lookup table,LUT),得到待处理像素块的目标处理模式(亦称为目标填充模式或pattern);其中,第一占用码字用于表征当前基准像素块是否为已占用像素块,和/或当前基准像素块的多个空域相邻像素块分别是否为已占用像素块;当前基准像素块是待译码点云的第一占用图中的像素块,待处理像素块是待译码点云的第二占用图中的像素块,当前基准像素块对应于待处理像素块;根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块;根据经填充的第二占用图,重构待译码点云;该经填充的第二占用图包括该经填充像素块。
例如,该LUT表包括多种参考填充模式、多种旋转角度和多种占用码字之间的对应关系;或者,该LUT表包括多种填充模式与多种占用码字之间的对应关系。
可见,该技术方案中,根据第一占用码字查表,得到与该当前基准像素块相对应的待处理像素块的目标处理模式(例如,以第一占用码字作为索引查表,以得到与索引对应的表项),与传统技术中通过判断操作确定待处理像素块的类型,从而确定待处理像素块的目标处理模式的技术方案相比,不需要执行判断分支操作,因此所占的计算资源较少,这有助于提高上采样的并行处理效率,从而有助于提高编解码效率。
应当理解的是,本文中的占用码字可以理解为用于查表的索引,这里的占用码字不限于当前基准像素块(亦称为基准像素)本身的属性或特点,而指用于描述或表征当前基准像素块(亦称为基准像素)的空域相邻像素块(亦称为空域相邻像素)的占用与否的情况,和/或当前基准像素块自身占用与否的情况。
应当理解的是,在本申请实施例的任一技术方案中,“是否为占用像素块”均可以替换为“是否是未占用像素块”。在本申请实施例的任一技术方案中,“填充”可以替换为“标记”。
第二占用图的分辨率与第一占用图的分辨率可以相等,也可以不相等。可选的,第二占用图的分辨率大于或等于第一占用图的分辨率,例如第二占用图为待译码点云的高分辨率的占用图,第一占用图为待译码点云的低分辨率的占用图。
当所述方法为点云编码方法时,所述待处理像素块为待编码像素块(亦称为像素),当所述方法为点云解码方法时,所述待处理像素块为待解码像素块。
当前基准像素块对应于待处理像素块,可以理解为:当前基准像素块在第一占用图中的位置与待处理像素块在第二占用图中的位置相同。例如,如果当前基准像素块是第一占用图中的第a行第b个像素块,则待处理像素块是第二占用图中的第a行第b个像素块。a和b均是大于或等于1的整数。
目标处理模式用于表示经填充像素块中已占用像素(或未占用像素)的位置分布。
经填充的第二占用图可以理解为是,将第二占用图中的至少一个(如每个)待处理像素块进行填充处理后所得到的占用图。
在一种可能的设计中,第一占用码字的二进制表示符的长度对应于当前基准像素块和当前基准像素块的多个空域相邻像素块中所有像素块的个数。其中,该二进制表示符中的第X位的取值用于表示对应位置的像素块是否是已占用像素块。例如第X位为1,表示对应位置的像素块是已占用像素块;或者,第X位为0,表示对应位置的像素块是未占用像素块。X是大于或等于1的整数。换言之,二进制表示符形式的第一占用码字中的第X位即某个对应的像素块的有效或无效标记位。应当理解的是,“当前基准像素块的多个空域相邻像素块”可以是当前基准像素块的所有的空域相邻像素块,也可以是当前基准像素块的目标位置的空域相邻像素块,本申请对此不做限定。例如,当前基准像素块的目标位置的空域相邻像素块可以是当前基准像素块的正上方、正下方、正左方和正右方的空域相邻像素块。
在一种可能的设计中,根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块,包括:根据目标处理模式对待处理像素块(例如像素值为空的待处理像素块)进行填充;或者,根据目标处理模式对已填充的待处理像素块进行再次填充。
在一种可能的设计中,第一占用码字用于表征当前基准像素块是否是已占用像素块。在另一种可能的设计中,第一占用码字用于表征当前基准像素块的局部或全部空 域相邻像素块分别是否是已占用像素块。在另一种可能的设计中,第一占用码字用于表征当前基准像素块及其局部或全部空域相邻像素块分别是否是已占用像素块。其中,局部空域相邻像素块可以是目标位置(或特定位置)的空域相邻像素块,如正上方、正下方、正左方和正右方的空域相邻像素块。
在一种可能的设计中,根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块,包括:将目标处理模式的表示符(如二进制表示符等)或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块。例如,复制LUT表中对应项到待处理像素块中,以完成待处理像素块的填充,应当理解的是,例如目标处理模式以数组形式进行存储,相应地,这里的“与目标处理模式对应的存储数据”即可理解为数组。
在一种可能的设计中,将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块,包括:将目标处理模式的表示符或与目标处理模式对应的存储数据,逐行赋值或逐行复制给待处理像素块中的相应像素,得到经填充像素块。也就是说,以行为单位进行填充处理。该情况下,“相应像素”可以是待处理像素块中的一行像素,如全0或全1的一行像素。这样,相比于逐个填充或逐个标记或逐个设置的方式,本设计方式能够提高填充处理的效率。
在一种可能的设计中,将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块,包括:将目标处理模式的表示符或与目标处理模式对应的存储数据,逐列赋值或逐列复制给待处理像素块中的相应像素,得到经填充像素块。也就是说,以列为单位进行填充处理。该情况下,“相应像素”可以是待处理像素块中的一列像素,如全0或全1的一列像素。这样,相比于逐个填充或逐个标记或逐个设置的方式,本设计方式能够提高填充处理的效率。
在一种可能的设计中,将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块,包括:将目标处理模式的表示符或与目标处理模式对应的存储数据,逐块赋值或逐块复制给待处理像素块中的相应像素,得到经填充像素块。也就是说,以块为单位进行填充处理。该情况下,“相应像素”可以是待处理像素块中的一个子像素块中的像素,这样,相比于逐个填充或逐个标记或逐个设置的方式,本设计方式能够提高填充处理的效率。
其中,具体实现时,以哪种方式进行填充处理,可以是基于第二占用图中的像素的存储方式,例如,若第二占用图中的像素是逐行存储的,则对待处理像素块进行逐行填充处理。
当然具体实现时,将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块,包括:以像素为单位进行填充处理。
在一种可能的设计中,根据第一占用码字查表,得到待处理像素块的目标处理模式,包括:根据第一占用码字查第一表,得到与第一占用码字对应的参考处理模式(亦称为参考填充模式)和变换方式(亦称为与待处理像素块对应的参考处理模式和变换 方式);第一表包括多种参考处理模式、多种变换方式和多种占用码字之间的对应关系;按照与第一占用码字对应的变换方式,对与第一占用码字对应的参考处理模式进行变换,得到待处理像素块的目标处理模式。这样,可以节省所查的表所占的存储空间。
可替换的,第一表中包括的多种占用码字对应同一种参考处理模式。基于此,第一表中可以不包含参考处理模式。该可能的设计可以替换为:根据第一占用码字查第一表,得到与第一占用码字对应的变换方式;其中,第一表包括多种变换方式与多种占用码字之间的对应关系;按照与第一占用码字对应的变换方式,对该参考处理模式进行变换,得到待处理像素块的目标处理模式。
可替换的,第一表中包括的多种占用码字对应同一种变换方式。基于此,第一表中可以不包含变换方式。该可能的设计可以替换为:根据第一占用码字查第一表,得到与第一占用码字对应的参考处理模式;其中,第一表包括多种参考处理模式与多种占用码字之间的对应关系;按照该变换方式,对与第一占用码字对应的参考处理模式进行变换,得到待处理像素块的目标处理模式。
在一种可能的设计中,按照与第一占用码字对应的变换方式,对与第一占用码字对应的参考处理模式进行变换,得到待处理像素块的目标处理模式,包括:按照与第一占用码字对应的旋转角度,对与第一占用码字对应的参考处理模式进行旋转,得到待处理像素块的目标处理模式。具体的,可以对与第一占用码字对应的参考处理模式中的像素进行整体旋转(如顺时针旋转或逆时针旋转),即不需要区分参考处理模式中已占用像素和/或未占用像素的位置。其中,具体是顺时针旋转还是逆时针旋转可以是预先定义的,如通过标准预先定义的;或者,可以是编码器通过码流传输给解码器的,本申请实施例对此不进行限定。
在一种可能的设计中,根据第一占用码字查表,得到待处理像素块的目标处理模式,包括:根据第一占用码字查表,得到与第一占用码字对应的参考处理模式(亦称为参考填充模式pattern)和旋转角度;该表包括多种参考处理模式、多种旋转角度和多种占用码字之间的对应关系;按照与第一占用码字对应的旋转角度,对与第一占用码字对应的参考处理模式进行旋转,得到待处理像素块的目标处理模式。
在一种可能的设计中,根据第一占用码字查表,得到待处理像素块的目标处理模式,包括:根据第一占用码字查第二表,得到待处理像素块的目标处理模式;第二表包括多种处理模式与多种占用码字之间的对应关系。该可能的设计,通过一次查表获得目标处理模式,实现较简单。应当理解的是,本申请实施例中的各表(如第一表、第二表等)均是为了区分不同的表,而并限定这些表的先后顺序,在此统一说明,下文不再赘述。
在一种可能的设计中,根据第一占用码字查表,得到待处理像素块的目标处理模式,包括:根据第一占用码字查第三表,得到待处理像素块的目标处理模式的索引;第三表包括多种处理模式的索引与多种占用码字之间的对应关系;根据待处理像素块的目标处理模式的索引查第四表,得到待处理像素块的目标处理模式;其中,第四表包括多种处理模式的索引与多种处理模式之间的对应关系。这样,可以节省所查的表所占的存储空间。
在一种可能的设计中,根据第一占用码字查表,得到待处理像素块的目标处理模式,包括:根据第一子占用码字查第五表,得到第一处理模式;第一子占用码字用于表征当前基准像素块是否是已占用像素块;第五表包括多种处理模式与多种子占用码字之间的对应关系;根据第二子占用码字查第六表,得到第二处理模式;其中,第二子占用码字用于表征当前基准像素块的多个空域相邻像素块分别是否是已占用像素块;第六表包括多种处理模式与多种子占用码字之间的对应关系;根据第一处理模式和第二处理模式,确定待处理像素块的目标处理模式。这样,可以节省所查的表所占的存储空间。
可选的,根据第一处理模式和第二处理模式,确定待处理像素块的目标处理模式,包括:在使用“0”表示未占用,使用“1”表示已占用的情况下,对第一处理模式的二进制表示符和第二处理模式的二进制表示符进行按位与,得到目标处理模式的二进制表示符。
在一种可能的设计中,根据第一占用码字查表,得到待处理像素块的目标处理模式,包括:根据当前基准像素块的已占用空域相邻像素块的个数查第七表,得到第三处理模式;第七表包括多种处理模式与多种个数之间的对应关系;根据第一占用码字查第八表,得到与第一占用码字对应的参考处理模式和旋转角度;第八表包括多种参考处理模式、多种旋转角度和多种占用码字之间的对应关系;按照与第一占用码字对应的旋转角度,对与第一占用码字对应的参考处理模式进行旋转,得到待处理像素块的第四处理模式;根据第三处理模式和第四处理模式,确定待处理像素块的目标处理模式。
可选的,根据第三处理模式和第四处理模式,确定待处理像素块的目标处理模式,可以包括:在使用“0”表示未占用,使用“1”表示已占用的情况下,对第三处理模式的二进制表示符和第四处理模式的二进制表示符进行按位或,得到目标处理模式的二进制表示符。
可扩展的,第三处理模式可以与上文中任意一种可能的设计进行结合,从而构成新的技术方案。例如,上述根据第一处理模式和第二处理模式,确定待处理像素块的目标处理模式,可以包括:根据第一处理模式、第二处理模式和第三处理模式,确定待处理像素块的目标处理模式。例如,在使用“0”表示未占用,使用“1”表示已占用的情况下,对“第一处理模式的二进制表示符和第二处理模式的二进制表示符进行按位与的结果”与第三处理模式的二进制表示符进行按位或,得到目标处理模式的二进制表示符。
第二方面,本申请实施例提供了点云译码方法,包括:根据第二占用码字查表(例如lookup table,LUT),得到待处理像素块的目标处理模式(例如,以第二占用码字作为索引查表,以得到与索引对应的表项);第二占用码字用于表征待处理像素块是否为已占用像素块,和/或待处理像素块的多个空域相邻像素块分别是否为已占用像素块,待处理像素块是待译码点云的占用图中的像素块;根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块;根据经填充占用图,重构待译码点云;该经填充占用图包括该经填充像素块。
例如,该LUT表包括多种参考填充模式、多种旋转角度和多种占用码字之间的对 应关系;或者,该LUT表包括多种填充模式与多种占用码字之间的对应关系。
可见,本技术方案与上述第一方面提供的技术方案的区别在于,两个技术方案中占用码字的含义不同,上述第一方面提供的技术方案中需要通过第一占用图中的当前基准像素块的相关信息(如第二占用码字),确定第二占用图中的待处理像素块的目标处理模式,也就是说,在查表过程中需涉及两个占用图。而本技术方案中通过待处理像素块的相关信息(如第一占用码字),确定待处理像素块的目标处理模式,也就是说,在查表过程中仅需涉及一个占用图。
在一种可能的设计中,根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块,包括:将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块。
在一种可能的设计中,将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块,包括:将目标处理模式的表示符或与目标处理模式对应的存储数据,逐行赋值或逐行复制给待处理像素块中的相应像素,得到经填充像素块;或者,将目标处理模式的表示符或与目标处理模式对应的存储数据,逐列赋值或逐列复制给待处理像素块中的相应像素,得到经填充像素块;或者,将目标处理模式的表示符或与目标处理模式对应的存储数据,逐块赋值或逐块复制给待处理像素块中的相应像素,得到经填充像素块。
在一种可能的设计中,第二占用码字的二进制表示符的长度对应于待处理像素块和待处理像素块的多个空域相邻像素块中所有像素块的个数。其中,该二进制表示符中的第X位的取值用于表示对应位置的像素块是否是已占用像素块。例如第X位为1,表示对应位置的像素块是已占用像素块;或者,第X位为0,表示对应位置的像素块是未占用像素块。X是大于或等于1的整数。换言之,二进制表示符形式的第二占用码字中的第X位即某个对应的像素块的有效或无效标记位。
在一种可能的设计中,根据第二占用码字查表,得到待处理像素块的目标处理模式,包括:根据第二占用码字查第一表,得到与待处理像素块对应的参考处理模式(亦称为参考填充模式)和变换方式;第一表包括多种参考处理模式、多种变换方式和多种占用码字之间的对应关系;按照与待处理像素块对应的变换方式,对与待处理像素块对应的参考处理模式进行变换,得到待处理像素块的目标处理模式。这样,可以节省所查的表所占的存储空间。
在一种可能的设计中,不同的变换方式包括不同的旋转角度;按照与待处理像素块对应的变换方式,对与待处理像素块对应的参考处理模式进行变换,得到待处理像素块的目标处理模式,包括:按照与待处理像素块对应的旋转角度,对与待处理像素块对应的参考处理模式进行旋转,得到待处理像素块的目标处理模式。具体的,可以对与第二占用码字对应的参考处理模式中的像素进行整体旋转(如顺时针旋转或逆时针旋转),即不需要区分参考处理模式中已占用像素和/或未占用像素的位置。其中,具体是顺时针旋转还是逆时针旋转可以是预先定义的,如通过标准预先定义的;或者,可以是编码器通过码流传输给解码器的,本申请实施例对此不进行限定。
在一种可能的设计中,根据第二占用码字查表,得到待处理像素块的目标处理模式,包括:根据第二占用码字查第二表,得到待处理像素块的目标处理模式;第二表 包括多种处理模式与多种占用码字之间的对应关系。
在一种可能的设计中,根据第二占用码字查表,得到待处理像素块的目标处理模式,包括:根据第二占用码字查第三表,得到待处理像素块的目标处理模式的索引;第三表包括多种处理模式的索引与多种占用码字之间的对应关系;根据待处理像素块的目标处理模式的索引查第四表,得到待处理像素块的目标处理模式;其中,第四表包括多种处理模式的索引与多种处理模式之间的对应关系。这样,可以节省所查的表所占的存储空间。
在一种可能的设计中,根据第二占用码字查表,得到待处理像素块的目标处理模式,包括:根据第一子占用码字查第五表,得到第一处理模式;第一子占用码字用于表征待处理像素块是否是已占用像素块;第五表包括多种处理模式与多种子占用码字之间的对应关系;根据第二子占用码字查第六表,得到第二处理模式;第二子占用码字用于表征待处理像素块的多个空域相邻像素块分别是否是已占用像素块;第六表包括多种处理模式与多种子占用码字之间的对应关系;根据第一处理模式和第二处理模式,确定待处理像素块的目标处理模式。这样,可以节省所查的表所占的存储空间。
可选的,根据第一处理模式和第二处理模式,确定待处理像素块的目标处理模式,包括:在使用“0”表示未占用,使用“1”表示已占用的情况下,对第一处理模式的二进制表示符和第二处理模式的二进制表示符进行按位与,得到目标处理模式的二进制表示符。
在一种可能的设计中,根据第二占用码字查表,得到待处理像素块的目标处理模式,包括:根据待处理像素块的已占用空域相邻像素块的个数查第七表,得到第三处理模式;第七表包括多种处理模式与像素块的已占用空域相邻像素块的多种个数之间的对应关系;根据第二占用码字查第八表,得到与待处理像素块对应的参考处理模式和旋转角度;第八表包括多种参考处理模式、多种旋转角度和多种占用码字之间的对应关系;按照与待处理像素块对应的旋转角度,对与待处理像素块对应的参考处理模式进行旋转,得到待处理像素块的第四处理模式;根据第三处理模式和第四处理模式,确定待处理像素块的目标处理模式。
可选的,根据第三处理模式和第四处理模式,确定待处理像素块的目标处理模式,可以包括:在使用“0”表示未占用,使用“1”表示已占用的情况下,对第三处理模式的二进制表示符和第四处理模式的二进制表示符进行按位或,得到目标处理模式的二进制表示符。
在一种可能的设计中,第二占用码字用于表征待处理像素块和待处理像素块的多个空域相邻像素块分别是否为已占用像素块。
第二方面及其可能的设计中相关内容的解释以及有益效果的描述等均可以参考上文第一方面或其对应的可能的设计,此处不再赘述。
基于上述第一方面或其任意一种可能的设计,或者,基于上述第二方面或其任意一种可能的设计,以下提供一些可能的技术方案:
在一种可能的设计中,待译码点云是待编码点云;该方法还包括:将所查的表编入码流。
在一种可能的设计中,待译码点云是待解码点云;该方法还包括:解析码流,以 得到所查的表,相应的,根据第一占用码字查表,包括:根据第一占用码字查解析码流得到的表。这样,可以针对某一个或者某一组点云帧设计更好的处理模式,使得使用该处理模式获得的占有图可以重建出质量更高的点云帧。
在一种可能的设计中,待译码点云是待编码点云;该方法还包括:将标识信息编入码流,该标识信息用于表示所查的表。
在一种可能的设计中,待译码点云是待解码点云;该方法还包括:解析码流,以得到标识信息,该标识信息用于表示所查的表。相应的,根据第一占用码字查表,包括:根据第一占用码字查该标识信息所表示的表。
其中,码流中编入的所查的表,或者码流中所编入的标识信息所表示的表,可以是上文中任意一种技术方案中的任意一个或多个表。其中的任意一个或多个表可以是点云粒度的表,或者是点云组粒度的表,或者是点云帧序列粒度的表。另外,在一些实现方式中,这些表均以是编码器和解码器预先定义的,如根据协议预先定义的。
第三方面,提供了一种点云编码方法,包括:确定指示信息,该指示信息用于指示是否按照目标点云编码方法对待编码点云的占用图进行处理;目标点云编码方法包括上述第一方面或第一方面的任一种可能的设计,或第二方面或第二方面的任一种可能的设计提供的点云译码方法(具体是点云编码方法);将该指示信息编入码流。
第四方面,提供了一种点云解码方法,包括:解析码流,以得到指示信息,该指示信息用于指示是否按照目标点云解码方法对待解码点云的占用图进行处理;目标点云解码方法包括上述第一方面或第一方面的任一种可能的设计,或第二方面或第二方面的任一种可能的设计提供的点云译码方法(具体是点云解码方法);当该指示信息指示按照目标点云解码方法进行处理时,按照目标点云解码方法对待解码点云的占用图进行处理。
第五方面,提供了一种译码器,包括:上采样模块,用于根据第一占用码字查表,得到待处理像素块的目标处理模式;其中,第一占用码字用于表征当前基准像素块是否为已占用像素块,和/或当前基准像素块的多个空域相邻像素块分别是否为已占用像素块;当前基准像素块是待译码点云的第一占用图中的像素块,待处理像素块是该待译码点云的第二占用图中的像素块,当前基准像素块对应于待处理像素块;根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块。点云重构模块,用于根据经填充的第二占用图,重构待译码点云;该经填充的第二占用图包括该经填充像素块。
第六方面,提供了一种译码器,包括:上采样模块,用于根据第二占用码字查表,得到待处理像素块的目标处理模式;第二占用码字用于表征待处理像素块是否为已占用像素块,和/或待处理像素块的多个空域相邻像素块分别是否为已占用像素块;待处理像素块是待译码点云的占用图中的像素块,根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块。点云重构模块,用于根据经填充占用图,重构待译码点云;该经填充占用图包括该经填充像素块。
第七方面,提供了一种编码器,包括:辅助信息编码模块,用于确定指示信息,该指示信息用于指示是否按照目标点云编码方法对待编码点云的占用图进行处理;目标点云编码方法包括上述第一方面或第一方面的任一种可能的设计,或第二方面或第 二方面的任一种可能的设计提供的点云译码方法(具体是点云编码方法);将该指示信息编入码流。占用图处理模块,用于在该指示信息指示按照目标点云编码方法对待编码点云的占用图进行编码的情况下,按照目标点云编码方法对该待编码点云的占用图进行处理。示例的,占用图处理模块可以通过如图2所示的编码器包括的上采样模块111和点云重构模块112实现。
第八方面,提供了一种解码器,包括:辅助信息解码模块,用于解析码流,以得到指示信息,所述指示信息用于指示是否按照目标点云解码方法对待解码点云的占用图进行解码;所述目标点云解码方法包括上述第一方面或第一方面的任一种可能的设计,或第二方面或第二方面的任一种可能的设计提供的点云译码方法(具体是点云解码方法);占用图处理模块,用于当该指示信息指示按照目标点云解码方法进行处理时,按照目标点云解码方法对待解码点云的占用图进行处理。其中,占用图处理模块可以通过如图5所示的解码器包括的上采样模块208和点云重构模块205实现。
第九方面,提供了一种译码装置,包括:存储器和处理器;其中,该存储器用于存储程序代码;该处理器用于调用该程序代码,以执行上述第一方面或第一方面的任一种可能的设计,或第二方面或第二方面的任一种可能的设计提供的点云译码方法。
第十方面,提供了一种编码装置,包括:存储器和处理器;其中,该存储器用于存储程序代码;该处理器用于调用该程序代码,以执行上述第三方面提供的点云编码方法。
第十一方面,提供了一种解码装置,包括:存储器和处理器;其中,该存储器用于存储程序代码;该处理器用于调用该程序代码,以执行上述第四方面提供的点云解码方法。
本申请还提供一种计算机可读存储介质,包括程序代码,该程序代码在计算机上运行时,使得该计算机执行如上述第一方面及其可能的设计,或第二方面及其可能的设计提供的任一种占用图上采样方法。
本申请还提供一种计算机可读存储介质,包括程序代码,该程序代码在计算机上运行时,使得该计算机执行上述第三方面提供的点云编码方法。
本申请还提供一种计算机可读存储介质,包括程序代码,该程序代码在计算机上运行时,使得该计算机执行上述第四方面提供的点云编码方法。
应当理解的是,上述提供的任一种编解码器、编解码装置和计算机可读存储介质的有益效果均可以对应参考上文对应方面提供的方法实施例的有益效果,不再赘述。
附图说明
图1可用于本申请实施例的一种实例的点云译码系统的示意性框图;
图2为可用于本申请实施例的一种实例的编码器的示意性框图;
图3为可适用于本申请实施例的一种点云、点云的patch以及点云的占用图的示意图;
图4为本申请实施例提供的一种编码端点云的占用图的变化过程的对比示意图;
图5为可用于本申请实施例的一种实例的解码器的示意性框图;
图6为本申请实施例提供的一种像素块的类型的索引、像素块的类型的示意图与处理模式的示意图之间的对应关系的示意图;
图7为本申请实施例提供的一种点云译码方法的流程示意图;
图8A为本申请实施例提供的一种当前基准像素块与待处理像素块之间的对应关系的示意图;
图8B为本申请实施例提供的另一种当前基准像素块与待处理像素块之间的对应关系的示意图;
图9为本申请实施例提供的一种填充处理方法的示意图;
图10为本申请实施例提供的另一种点云译码方法的流程示意图;
图11为本申请实施例提供的一种点云编码方法的流程示意图;
图12为本申请实施例提供的一种点云解码方法的流程示意图;
图13为本申请实施例提供的一种译码器的示意性框图;
图14为本申请实施例提供的一种编码器的示意性框图;
图15为本申请实施例提供的一种解码器的示意性框图;
图16为用于本申请实施例的译码设备的一种实现方式的示意性框图;
图17为本申请实施例提供的一种构建表的构成示意图;
图18为本申请实施例基于图17提供的一种查找目标处理模式的过程示意图;
图19为本申请实施例提供的另一种构建表的构成示意图;
图20为本申请实施例基于图19提供的一种查找目标处理模式的过程示意图;
图21为本申请实施例提供的一种表格之间的关系示意图;
图22为本申请实施例提供的一种参考处理模式的二进制表示符与参考处理模式的示意图之间的对应关系。
具体实施方式
图1为可用于本申请实施例的一种实例的点云译码系统1的示意性框图。术语“点云译码”或“译码”可一般地指代点云编码或点云解码。点云译码系统1的编码器100可以根据本申请提出的任一种点云编码方法对待编码点云进行编码。点云译码系统1的解码器200可以根据本申请提出的与编码器使用的点云编码方法相对应的点云解码方法对待解码点云进行解码。
如图1所示,点云译码系统1包含源装置10和目的地装置20。源装置10产生经编码点云数据。因此,源装置10可被称为点云编码装置。目的地装置20可对由源装置10所产生的经编码的点云数据进行解码。因此,目的地装置20可被称为点云解码装置。源装置10、目的地装置20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、带电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
源装置10和目的地装置20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
目的地装置20可经由链路30从源装置10接收经编码点云数据。链路30可包括能够将经编码点云数据从源装置10移动到目的地装置20的一或多个媒体或装置。在一个实例中,链路30可包括使得源装置10能够实时将经编码点云数据直接发送到目的地装置20的一或多个通信媒体。在此实例中,源装置10可根据通信标准(例如无线通信协议)来调制经编码点云数据,且可将经调制的点云数据发送到目的地装置20。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(radio frequency,RF)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备。
在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通过输入接口240从存储装置40存取经编码点云数据。存储装置40可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、数字多功能光盘(digital versatile disc,DVD)、只读光盘(compact disc read-only memory,CD-ROM)、快闪存储器、易失性或非易失性存储器,或用于存储经编码点云数据的任何其它合适的数字存储媒体。
在另一实例中,存储装置40可对应于文件服务器或可保持由源装置10产生的经编码点云数据的另一中间存储装置。目的地装置20可经由流式传输或下载从存储装置40存取所存储的点云数据。文件服务器可为任何类型的能够存储经编码的点云数据并且将经编码的点云数据发送到目的地装置20的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传输协议(file transfer protocol,FTP)服务器、网络附属存储(network attached storage,NAS)装置或本地磁盘驱动器。目的地装置20可通过任何标准数据连接(包含因特网连接)来存取经编码点云数据。这可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线路(digital subscriber line,DSL)、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码点云数据的两者的组合。经编码点云数据从存储装置40的传输可为流式传输、下载传输或两者的组合。
图1中所说明的点云译码系统1仅为实例,并且本申请的技术可适用于未必包含点云编码装置与点云解码装置之间的任何数据通信的点云译码(例如,点云编码或点云解码)装置。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。点云编码装置可对数据进行编码并且将数据存储到存储器,和/或点云解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。
在图1的实例中,源装置10包含数据源120、编码器100和输出接口140。在一些实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发送器(或称为发射器)。数据源120可包括点云捕获装置(例如,摄像机)、含有先前捕获的点云数据的点云存档、用以从点云内容提供者接收点云数据的点云馈入接口,和/或用于产生点云数据的计算机图形系统,或点云数据的这些来源的组合。
编码器100可对来自数据源120的点云数据进行编码。在一些实例中,源装置10经由输出接口140将经编码点云数据直接发送到目的地装置20。在其它实例中,经编 码点云数据还可存储到存储装置40上,供目的地装置20以后存取来用于解码和/或播放。
在图1的实例中,目的地装置20包含输入接口240、解码器200和显示装置220。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码点云数据。显示装置220可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置220显示经解码点云数据。显示装置220可包括多种显示装置,例如,液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其它类型的显示装置。
尽管图1中未图示,但在一些方面,编码器100和解码器200可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器(multiplexer-demultiplexer,MUX-DEMUX)单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么MUX-DEMUX单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(user datagram protocol,UDP)等其它协议。
编码器100和解码器200各自可实施为例如以下各项的多种电路中的任一者:一或多个微处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行所述指令从而实施本申请技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。编码器100和解码器200中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
本申请可大体上将编码器100称为将某些信息“发信号通知”或“发送”到例如解码器200的另一装置。术语“发信号通知”或“发送”可大体上指代用以对经压缩点云数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
如图2所示,为可用于本申请实施例的一种实例的编码器100的示意性框图。图2是以MPEG(moving picture expert group)点云压缩(point cloud compression,PCC)编码框架为例进行说明的。在图2的实例中,编码器100可以包括patch信息生成模块101、打包模块102、深度图生成模块103、纹理图生成模块104、填充模块105、基于图像或视频的编码模块106、占用图编码模块107、辅助信息编码模块108和复用模块109等。另外,编码器100还可以包括下采样模块110、上采样模块111、点云重构模块112和点云滤波模块113等。
patch信息生成模块101,用于采用某种方法将一帧点云分割产生多个patch,以及获得所生成的patch的相关信息等。其中,patch是指一帧点云中部分点构成的集合, 通常一个连通区域对应一个patch。patch的相关信息可以包括但不限于以下信息中的至少一项:点云所分成的patch的个数、每个patch在三维空间中的位置信息、每个patch的法线坐标轴的索引、每个patch从三维空间投影到二维空间产生的深度图、每个patch的深度图大小(例如深度图的宽和高)、每个patch从三维空间投影到二维空间产生的占用图等。
patch的相关信息中的部分,如点云所分成的patch的个数,每个patch的法线坐标轴的索引,每个patch的深度图大小、每个patch在点云中的位置信息、每个patch的占用图的尺寸信息等,可以作为辅助信息被发送到辅助信息编码模块108,以进行编码(即压缩编码)。另外,patch的深度图等还可以被发送到深度图生成模块103。
patch的相关信息中的部分,如每个patch的占用图可以被发送到打包模块102进行打包,具体的,将该点云的各patch按照特定的顺序进行排列例如按照各patch的占用图的宽/高降序(或升序)排列;然后,按照排列后的各patch的顺序,依次将patch的占用图插入该点云占用图的可用区域中,得到该点云的占用图,此时获得的点云的占用图的分辨率是原始分辨率。
如图3所示,为可适用于本申请实施例的一种点云、点云的patch以及点云的占用图的示意图。其中,图3中的(a)图为一帧点云的示意图,图3中的(b)图为基于图3中的(a)图获得的点云的patch的示意图,图3中的(c)图为图3中的(b)图所示的各patch映射到二维平面上所得到的各patch的占用图经打包得到的该点云的占用图的示意图。
打包模块102获得的patch的打包信息如各patch在该点云占用图中的具体位置信息等可以被发送到深度图生成模块103。
打包模块102获得的该点云的占用图,一方面可以用于指导深度图生成模块103生成该点云的深度图和指导纹理图生成模块104生成该点云的纹理图。另一方面可以用于经下采样模块110降低分辨率后发送到占用图编码模块107以进行编码。
深度图生成模块103,用于根据该点云的占用图、该点云的各patch的占用图和深度信息,生成该点云的深度图,并将所生成的深度图发送到填充模块105,以对深度图中的空白像素点进行填充,得到经填充的深度图。
纹理图生成模块104,用于根据该点云的占用图、该点云的各patch的占用图和纹理信息,生成该点云的纹理图,并将所生成的纹理图发送到填充模块105,以对纹理图中的空白像素点进行填充,得到经填充的纹理图。
经填充的深度图和经填充的纹理图被填充模块105发送到基于图像或视频的编码模块106,以进行基于图像或视频的编码。后续:
一方面,基于图像或视频的编码模块106、占用图编码模块107、辅助信息编码模块108,将所得到的编码结果(即码流)发送到复用模块109,以合并成一个码流,该码流可以被发送到输出接口140。
另一方面,基于图像或视频的编码模块106所得到的编码结果(即码流)发送到点云重构模块112进行点云重构得到经重构的点云(具体是得到重构的点云几何信息)。具体的,对基于图像或视频的编码模块106所得到的经编码的深度图进行视频解码,获得该点云的解码深度图,利用解码深度图、该点云的占用图和各patch的辅助信息, 以及上采样模块111恢复出的原始分辨率的点云的占用图,获得重构的点云几何信息。其中,点云的几何信息是指点云中的点(例如点云中的每个点)在三维空间中的坐标值。应用于在本申请实施例时,这里的“该点云的占用图”可以是该点云经滤波模块113滤波(或称为平滑处理)后得到的占用图。
其中,上采样模块111用于对接收到的来自下采样模块110发送的低分辨率的点云的占用图进行上采样处理,从而恢复成原始分辨率的点云的占用图。其中,恢复得到的点云的占用图越接近真实的点云的占用图(即打包模块102生成的点云的占用图),重构得到的点云就越接近原始点云,点云编码性能会越高。
在本申请的一些实施例中,上采样模块111可用于根据占用码字(如下文中的第一占用码字或第二占用码字或第一子占用码字或第二子占用码字等)查表,得到待处理像素块的目标处理模式;并根据目标处理模式对待处理像素块进行填充处理(例如填充该目标模式pattern到待处理像素块的相应像素上),得到经填充像素块。其中,包含该经填充像素块的占用图可以认为是上采样模块111输出的高分辨率的占用图。
可选的,点云重构模块112还可以将该点云的纹理信息和重构的点云几何信息发送到着色模块,着色模块用于对重构点云进行着色,以获得重构点云的纹理信息。可选的,纹理图生成模块104还可以基于经点云滤波模块113对重构的点云几何信息进行滤波得到的信息生成该点云的纹理图。
可以理解的,图2所示的编码器100仅为示例,具体实现时,编码器100可以包括比图2中所示的更多或更少的模块。本申请实施例对此不进行限定。
如图4所示,为本申请实施例提供的一种编码端点云的占用图的变化过程的对比示意图。
其中,图4中的(a)图所示的点云的占用图是打包模块102生成的点云的原始占用图,其分辨率(即原始分辨率)是1280*864。
图4中的(b)图所示的占用图是下采样模块110对图4中的(a)图所示的点云的原始占用图进行处理后,得到的低分辨率的点云的占用图,其分辨率是320*216。
图4中的(c)图所示的占用图是上采样模块111对图4中的(b)图所示的低分辨率的点云的占用图进行上采样得到的原始分辨率的点云的占用图,其分辨率是
1280*864。
图4中的(d)图是图4中的(a)图的椭圆区域的局部放大图,图4中的(e)图是图4中的(c)图的椭圆区域的局部放大图。并且,图4中的(e)图所示的局部放大图是图4中的(d)图所示的局部放大图经下采样模块110和上采样模块111处理之后得到的。
如图5所示,为可用于本申请实施例的一种实例的解码器200的示意性框图。其中,图5中是以MPEG PCC解码框架为例进行说明的。在图5的实例中,解码器200可以包括解复用模块201、基于图像或视频的解码模块202、占用图解码模块203、辅助信息解码模块204、点云重构模块205、点云滤波模块206和点云的纹理信息重构模块207。另外,解码器200可以包括上采样模块208。其中:
解复用模块201用于将输入的码流(即合并的码流)发送到相应解码模块。具体的,将包含经编码的纹理图的码流和经编码的深度图的码流发送给基于图像或视频的 解码模块202;将包含经编码的占用图的码流发送给占用图解码模块203,将包含经编码的辅助信息的码流发送给辅助信息解码模块204。
基于图像或视频的解码模块202,用于对接收到的经编码的纹理图和经编码的深度图进行解码;然后,将解码得到的纹理图信息发送给点云的纹理信息重构模块207,将解码得到的深度图信息发送给点云重构模块205。占用图解码模块203,用于对接收到的包含经编码的占用图的码流进行解码,并将解码得到的占用图信息发送给点云重构模块205。其中,占用图解码模块203解码得到的占用图信息是上文中所描述的低分辨率的点云的占用图的信息。例如,这里的占用图可以是图4中的(b)图所示的点云的占用图。
具体的,占用图解码模块203可以先将解码得到的占用图信息发送给上采样模块208,以进行上采样处理,然后将上采样处理后得到的原始分辨率的点云的占用图发送给点云重构模块205。例如,上采样处理后得到的原始分辨率的点云的占用图可以是图4中的(c)图所示的点云的占用图。
在本申请的一些实施例中,上采样模块208可以用于根据占用码字(如下文中的第一占用码字或第二占用码字或第一子占用码字或第二子占用码字等)查表,得到待处理像素块的目标处理模式;并根据目标处理模式对待处理像素块进行填充处理(例如填充该目标模式pattern到待处理像素块的相应像素上),得到经填充像素块。其中,包含该经填充像素块的占用图可以认为是上采样模块111输出的高分辨率的占用图。
点云重构模块205,用于根据接收到的占用图信息和辅助信息对点云的几何信息进行重构,具体的重构过程可以参考编码器100中的点云重构模块112的重构过程,此处不再赘述。经重构的点云的几何信息经点云滤波模块206滤波之后,被发送到点云的纹理信息重构模块207。点云的纹理信息重构模块207用于对点云的纹理信息进行重构,得到经重构的点云。
可以理解的,图5所示的解码器200仅为示例,具体实现时,解码器200可以包括比图5中所示的更多或更少的模块。本申请实施例对此不进行限定。
在本申请的一些实施例中,上采样模块111可以与辅助信息编码模块108连接,用于向辅助信息编码模块108发送上采样模块208所查的一个或多个表(或者该一个或多个表的标识信息),以使得辅助信息编码模块108将表示执行填充处理时所采用的该一个或多个表(或者该一个或多个表的标识信息)编入码流。相应的,上采样模块208可以与辅助信息解码模块204连接,用于接收辅助信息解码模块204解析码流得到的相应的表(或解析码流得到的相应的标识信息所标识的表),从而对待解码点云的占用图进行上采样处理。关于该实施例的具体实现方式及相关说明可以参考下文,此处不再赘述。
为了便于理解本申请实施例提供的技术方案,以下对本申请实施例涉及的技术及术语进行说明。
1)、已占用像素、未占用像素、已占用像素块、未占用像素块
已占用像素,是指被填充为已占用的像素。
未占用像素,是指被填充为未占用的像素。
已占用像素块,是指所包含的至少一个像素被填充为已占用的像素块。当一个像 素块仅包含一个像素时,已占用像素块与已占用像素的含义相同。
未占用像素块,是指所包含的所有像素均被填充为未占用的像素块。当一个像素块仅包含一个像素时,未占用像素块与未占用像素的含义相同。
2)、空域相邻像素块、已占用空域相邻像素块、未占用空域相邻像素块
一个像素块的空域相邻像素块,也可以称为一个像素块的周边空域相邻像素块,是指与该像素块相邻的,且位于该像素块的正上方、正下方、正左方、正右方、左上方、左下方、右上方和右下方的一个或多个方位的像素块。
可以理解的是,一帧点云的占用图的非边缘像素块的空域相邻像素块包括与该像素块相邻的,且位于该像素块的正上方、正下方、正左方、正右方、左上方、左下方、右上方和右下方的8个像素块。一帧点云的占用图的边缘像素块的空域相邻像素块的个数小于8个。一个占用图的边缘像素块是指该占用图中的第1行、最后1行、第1列和最后1列的像素块。第一占用图中的其他位置的像素块是该占用图的非边缘像素块。为了便于描述,下文中的具体示例中所涉及到的空域相邻像素块,均是以占用图的非边缘像素块为例进行说明的。应理解,下文中的所有方案均可适用于边缘像素块,在此统一说明,下文不再赘述。
已占用空域相邻像素块,是指所包含的至少一个像素被填充为已占用的空域相邻像素块。
未占用空域相邻像素块,是指所包含的至少一个像素被填充为未占用的空域相邻像素块。
3)、像素块的类型
像素块的类型,是基于像素块是已占用像素块还是未占用像素块,以及其无效空域相邻像素块(或有效空域相邻像素块)的分布情况确定的。具体的:
如果一个像素块是已占用像素块,另一个像素块是未占用像素块,则这两个像素块是不同类型的像素块。如果两个像素块均是已占用像素块,但是这两个像素块的无效空域相邻像素块(或有效空域相邻像素块)的分布情况不同,则这两个像素块是不同类型的像素块。
如果两个像素块均是未占用像素块,则这两个像素块是相同类型的像素块。如果两个像素块均是已占用像素块,且这两个像素块的无效空域相邻像素块(或有效空域相邻像素块)的分布情况相同,则这两个像素块是同一类型的像素块。
其中,像素块的无效空域相邻像素块(或有效空域相邻像素块)的分布情况,可以是指像素块的局部或全部无效空域相邻像素块(或有效空域相邻像素块)的分布情况。
在本申请的一些实施例中,可以不需要确定待处理像素块的类型,而是基于占用码字,获得待处理像素块的目标处理模式。
在本申请的一些实施例中,3)中的“像素块”可以替换为“基准像素块”,从而得到基准像素块的类型的相关说明。
4)、上采样技术
为了减少经重构的点云中的outlier(即离群点或异常点)点,从而提高点云的编解码性能,译码器可以采用如下方法获得经上采样的占用图所包含的经填充像素块:
首先,对待译码点云的占用图A进行放大,得到占用图B。其中,占用图A的分辨率小于占用图B的分辨率。
然后,通过以下实施例方式之一得到经填充像素块。
实施方式一:对于占用图A中的任意一个像素块来说,如果该像素块是非边界像素块且是已占用像素块,则将待处理像素块中的像素均填充为已占用,得到经填充像素块。如果该像素块是非边界像素块且是未占用像素块,则将待处理像素块中的像素均填充为未占用,得到经填充像素块。如果该像素块是边界像素块,则将占用图B中的与该像素块对应的待处理像素块中第一目标位置的像素填充为已占用,和/或将待处理像素块中第二目标位置的像素填充为未占用,得到经填充像素块。
第一目标位置和第二目标位置表示待处理像素块中的部分像素所在的位置。当“和/或”为“和”时,第一目标位置和第二目标位置之间没有交集,且第一目标位置和第二目标位置的并集是待处理像素块中的部分或全部像素所在的位置。在一些示例中,不同类型的像素块对应不同的处理模式。
实施方式二:对占用图B中的像素进行填充,得到占用图C,具体的,对于占用图B中的任一像素块来说,若该像素块是已占用像素块,则将占用图C中的与该像素块对应的像素块中的所有像素均填充为已占用;若该像素块是未占用像素块,则将占用图C中的与该像素块对应的像素块中的所有像素均填充为未占用。然后,将占用图C的边界像素块中的目标位置的像素更新为未占用,得到经填充像素块。
实施方式三:对占用图B中的像素进行填充,得到占用图C,其实现过程可参考实施方式二;然后,生成与占用图C相同分辨率的空白占用图D,基于占用图C对占用图D中的像素进行填充。其中,如果占用图C中的一个像素块是非边界像素块且是已占用像素块,则将占用图D中的与该像素块对应的像素块中的像素均填充为已占用。如果该像素块是非边界像素块且是未占用像素块,则将占用图D中的与该像素块对应的像素块中的像素均填充为未占用。如果该像素块是边界像素块,则占用图D中的与该像素块对应的像素块中的第一目标位置的像素填充为已占用,和/或将第二目标位置的像素填充为未占用。关于第一目标位置和第二目标位置的描述可以参考上述实施方式一。
作为一个示例,基于上述任意一种实施方式,如图6所示,为像素块的类型的索引、像素块的类型的示意图与处理模式的示意图之间的对应关系。其中:
“像素块的类型的示意图”这一列中的每个小方格表示一个像素块,白色小方格表示已占用像素块,黑色小方格表示未占用像素块,斜线阴影的小方格可以表示已占用像素块也可以表示未占用像素块。每种类型的像素块的示意图的中心的像素块可以是下文中所描述的基准像素块或待处理像素块,其周边的8个像素块是指该中心的像素块的空域相邻像素块。
“处理模式的示意图”这一列中的每个小方格表示一个像素,白色小方格表示已占用像素,黑色小方格表示未占用像素。每种类型的处理模式的示意图表示一个4*4的待处理像素块中的已占用像素和/或未占用像素的分布情况。
可以理解的是,图6仅为像素块的类型的一些示例,其不对本申请实施例可适用的像素块的类型构成限定。并且,图6所示的每种类型对应的处理模式仅为示例,其 不对本申请实施例可适用的处理模式构成限定。在此统一说明,下文不再赘述。
5)、占用码字、占用位
占用码字,是由一个或多个占用位构成的表示符,如二进制表示符。一个占用位包括一个或多个比特位。本申请中为了方便描述,以占用码字来命名,应当理解的是,其它命名方式也可适用于本发明方案中,本申请对此不做限定。下文中均是以一个占用位是一个比特位为例进行说明的。在此统一说明,下文不再赘述。
一个占用码字,用于表征一个像素块及其所有空域相邻像素块中的至少一个像素块是否是已占用像素块。如果一个占用码字用于表征一个像素块及其所有空域相邻像素块中的至少两个像素块是否是已占用像素块,则具体用于表征该至少两个像素块分别是否是已占用像素块,并且,该占用码字是按照预先约定的该至少两个像素块的顺序对该至少两个像素块的占用位进行排序后得到的。该预先约定的顺序例如可以是该至少两个像素块在其所在的占用图中的位置从左到右,从上到下的顺序。为了方便描述下文中均是以该预先约定的顺序是该至少两个像素块在其所在的占用图中的位置从左到右,从上到下的顺序为例进行说明的,在此统一说明,下文不再赘述。
本申请实施例对占用码字的具体表示方式不进行限定,原则上,只要是能够表征一个或多个像素块是否是已占用像素块(或未占用像素块)的字符串均可。例如,通过字符“a”表示已占用,通过字符“b”表示未占用。为了方便处理,占用码字可以是二进制表示符;为了方便描述,本申请实施例中的具体示例均以此为例进行说明。
可选的,一个占用码字的二进制表示符的长度对应于一个像素块和/或该像素块的空域相邻像素块中所有像素块的个数。在一个示例中,该二进制表示符中的第X位的取值用于表示对应位置的像素块是否是已占用像素块。例如,第X位为1,表示对应位置的像素块是已占用像素块;或者,第X位为0,表示对应位置的像素块是未占用像素块。X是大于或等于1的整数。当然本申请实施例不限于此。
例如,如果一个占用码字用于表征一个像素块及其所有空域相邻像素块分别是否是已占用像素块,则该占用码字可以是9位的二进制表示符,如000000000~111111111中的任一值。参见图6,如果一个像素块的类型的索引是2,即该像素块是已占用像素块,且左上方、正上方和正左方的空域相邻像素块是未占用像素块,其他空域相邻像素块是已占用像素块;则该占用码字可以是:001011111。
又如,如果一个占用码字用于表征一个像素块及其正上方、正下方、正左方和正右方的空域相邻像素块分别是否是已占用像素块,则该占用码字可以是5位二进制表示符,如00000~11111中的任一值。参见图6,如果一个像素块的类型的索引是5,即该像素块是已占用像素块,且正上方和正右方的空域相邻像素块是未占用像素块,正左方和正下方的空域相邻像素块是已占用像素块;其他位置的空域相邻像素块是否是已占用像素块不作考虑,则该占用码字可以是:01101。
在本申请的一些实施例中,一个占用码字可以包括至少两个子占用码字,如第一子占用码字和第二子占用码字。关于第一子占用码字和第二子占用码字的相关描述可以参考下文。
应当理解的是,上述“是否是已占用像素块”均可以替换为“是否是未占用像素块”。
6)、处理模式(亦称为填充模式)
处理模式用于表示经填充像素块中已占用像素(或未占用像素)的位置分布。不同处理模式所对应的已占用像素(或未占用像素)的位置分布不同。
本申请实施例中对处理模式的具体表示方式不进行限定。例如可以是图6中所示的处理模式的示意图(也可以称为pattern形式)。
在本申请的一些实施例中,为了方便处理,可以使用通过“表示符”来表示处理模式。例如,处理模式的表示符的长度是经填充像素块中的像素的个数。
可选的,处理模式的表示符可以是二进制表示符。其中,该二进制表示符中的第Y位用于表示经填充像素块中对应位置的像素是否是已占用像素,例如,第Y位为1,表示对应位置的像素是已占用像素;或者,第Y位为0,表示对应位置的像素是未占用像素。Y是大于或等于1的整数。当然本申请实施例不限于此。以经填充像素块是4*4的像素块为例,处理模式的表示符可以是16位的二进制表示符。
处理模式的表示符可以是按照预先约定的经填充像素块中的各像素的顺序对该各像素对应的比特位进行排序后得到的。其中,该预先约定的顺序例如可以是经填充像素块中的各像素在经填充像素块中的位置从上到下、从左到右的顺序。
例如,参考图6,如果待处理像素块的类型的索引是0,则该待处理像素块的目标处理模式的二进制表示符可以是:0000000000000000;如果一个像素块的类型的索引是2,则待处理像素块的目标处理模式的二进制表示符可以是:0001001101111111。
7)、其他术语
本申请实施例中的术语“至少一个(种)”包括一个(种)或多个(种)。“多个(种)”是指两个(种)或两个(种)以上。例如,A、B和C中的至少一种,包括:单独存在A、单独存在B、同时存在A和B、同时存在A和C、同时存在B和C,以及同时存在A、B和C。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在传统技术中,通常采用判断操作(if..else..)确定待处理像素块的类型,从而确定待处理像素块的目标处理模式。例如,采用多次判断操作确定一个像素块的各方位的空域相邻像素块是否是已占用像素块。由于判断操作是一种分支操作,因此,非常不利于设计高效的并行算法。例如,由于实际部署时,上采样过程会在图形处理器(graphics processing unit,GPU)上完成,而GPU上运行的程序执行判断操作时需要启动2个进程,对于判断操作的2个分支均执行一遍,这需要占用较多资源,导致效率不高。基于此,本申请实施例提供了一种点云编解码方法和相应的编解码器。
以下,结合附图,对本申请实施例提供的点云编解码方法进行说明。
需要说明的是,如果不加说明,下文中描述的点云译码方法可以包括点云编码方法或点云解码方法。当点云译码方法是点云编码方法时,图7中的待译码点云具体是 待编码点云;当点云译码方法是点云解码方法时,图7中的待译码点云具体是待解码点云。
另外需要说明的是,结合图1所示的点云译码系统,下文中的任一种点云编码方法可以是点云译码系统中的源装置10执行的,更具体的,是由源装置10中的编码器100执行的。下文中的任一种点云解码方法可以是点云译码系统中的目的地装置20执行的,更具体的,是由目的地装置20中的解码器200执行的。
如图7所示,为本申请实施例提供的一种点云译码方法的流程示意图。该方法可以包括:
S101:根据第一占用码字查表,得到待处理像素块的目标处理模式。第一占用码字用于表征当前基准像素块是否是已占用像素块,和/或当前基准像素块的多个空域相邻像素块分别是否是已占用像素块;当前基准像素块是待译码点云的第一占用图中的像素块,待处理像素块是待译码点云的第二占用图中的像素块,当前基准像素块对应于待处理像素块。
第一占用图和第二占用图是待译码点云的不同占用图。第一占用图分辨率与第二占用图的分辨率可以相等,也可以不相等。例如,基于上述实施方式一,第一占用图可以是占用图A,第二占用图可以是占用图B。再如,基于上述实施方式二,第一占用图可以是占用图A,第二占用图可以是占用图C。又如,基于上述实施方式三,第一占用图可以是占用图C,第二占用图可以是占用图D。
第一占用图包括多个基准像素块,该多个基准像素块占满第一占用图,且基准像素块之间无交叠。第二占用图包括多个像素块,该多个像素块占满第二占用图,且像素块之间无交叠。S101中所描述的待处理像素块可以是第二占用图中当前待处理的像素块。例如,应用于上述实施方式一时,待处理像素块是当前基准像素块经放大得到的像素块。
基准像素块可以是B1*B1的像素块。待处理像素块可以是B2*B2的像素块。其中,B1*B1的像素块是指B1行B1列的像素构成的方阵。B2*B2的像素块是指B2行B2列的像素构成的方阵。B1≤B2。通常,B1和B2均是2的整数次幂。例如,B1=1、2、4等。B2=2、4、8等。下文中均以B2=4为例进行说明。可以理解的是,当B1=1时,基准像素块可以被称为基准像素。基准像素块的空域相邻像素块具体可以被称为基准像素的空域相邻像素。
当前基准像素块对应于待处理像素块,具体可以体现为:当前基准像素块在第一占用图中的位置与待处理像素块在第二占用图中的位置相同。例如,如果当前基准像素块是第一占用图中的第a行第b个基准像素块,则待处理像素块是第二占用图中的第a行第b个像素块。a和b均是大于或等于1的整数。
如图8A所示,为一种当前基准像素块与待处理像素块之间的对应关系的示意图。图8A中的(a)图可以是上述实施方式一中的占用图A,即低分辨率的占用图;图8A中的(b)图可以是上述实施方式一中的占用图B,即高分辨率的占用图。其中,占用图A中的1*1的像素经放大后得到一个4*4的像素块。基于此,如果当前基准像素块是第一占用图中的第1行第1列的1*1的像素块,则待处理像素块是第二占用图中的第1行第1列的4*4的像素块。
如图8B所示,为另一种当前基准像素块与待处理像素块之间的对应关系的示意图。图8B中的(a)图可以是上述实施方式三中的占用图C;图8B中的(b)图可以是上述实施方式三中占用图D,占用图C的分辨率和占用图D的分辨率相等。基于此,如果当前基准像素块是第一占用图中的第1行第1列的4*4的像素块,则待处理像素块是第二占用图中的第1行第1列的4*4的像素块。
需要说明的是,本申请实施例中是以基准像素块和待处理像素块均是方形为例进行说明的,可扩展的,这些像素块均是矩形。另外,在本申请实施例的具体示例中,均使用“1”表示已占用,使用“0”表示未占用。在此统一说明,下文不再赘述。
可选的,第一占用码字用于表征当前基准像素块是否是已占用像素块。例如,如果第一占用码字用于表征当前基准像素块是未占用像素块,则待处理像素块的处理模式可以是表示待处理像素块中的所有像素均是未占用像素的模式。
可选的,第一占用码字用于表征当前基准像素块的多个空域相邻像素块(包括部分或全部空域相邻像素块)分别是否是已占用像素块。例如,如果当前基准像素块的所有空域相邻像素块均是未占用像素块,则待处理像素块的处理模式可以是表示待处理像素块中的所有像素均是未占用像素的模式。又如,如果当前基准像素块的所有空域相邻像素块均是已占用像素块,则待处理像素块的处理模式可以是表示待处理像素块中的所有像素均是已占用像素的模式。
可选的,第一占用码字用于表征当前基准像素块是否是已占用像素块,以及当前基准像素块的多个空域相邻像素块(包括部分或全部空域相邻像素块)分别是否是已占用像素块。该可选的实现方式中的具体示例可以参考下文,此处不再赘述。
编码器和解码器可以预先在本地存储所查的一个或多个表。或者,编码器可以将所查的一个或多个表编入码流,或者将所查的一个或多个表的标识信息编入码流;解码器可以通过解析码流得到该一个或多个表,或者得到该一个或多个表的标识信息。在不同实现方式中,译码器所查的表不同,所查的表的具体示例可以参考下文。具体实现时,译码器所查的表可以是基于一帧点云粒度的,或者是基于点云组粒度的,或者是基于点云帧序列粒度的。例如,译码器所查的表可以是基于待译码点云的,或者是基于待译码点云所在的点云组的,或者是基于待译码点云所在的点云帧序列的。
S102:根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块。
目标处理模式用于表示该经填充像素块中已占用像素(或未占用像素)的位置分布。
可选的,译码器可以根据目标处理模式对待处理像素块(比如待处理像素块中的像素值均为0或均为1或为空)进行填充处理,得到经填充像素块。例如应用于上述实施方式一或实施方式三时,S102可以通过该可选的方式实现。
可选的,译码器可以根据目标处理模式对已填充的待处理像素块进行再次填充。例如应用于上述实施方式二时,S102可以通过该可选的方式实现。
在一种实现方式中,S102可以包括:将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块。
其中,目标处理模式的表示符例如可以是二进制表示符。当然不限于此。例如,以经填充像素块是4*4的像素块为例,如果目标处理模式的二进制表示符是 0000000001101111,那么,可以将“0000000001101111”赋值或复制给待处理像素块中的相应像素,如图9所示。
例如可以是以数组形式存储目标处理模式的表示符时,则本文中的“与目标处理模式对应的存储数据”即是该数组。例如,假设目标处理模式的表示符是0000000001101111,则可以将该表示符保存在一个由2个1字节长的无符号布整数(unsigned byte)组成的数组中,该数组中一个数是十进制数111(对应于01101111),另外一个数是十进制数0(对应于00000000)。该情况下,与目标处理模式对应的存储数据可以是十进制数111和十进制数0。
具体实现时,译码器可以逐行/逐列/逐块进行赋值或复制。
在逐行进行赋值或复制时,可以将用于表示经填充像素块的第m行像素中每个像素是否是已占用像素的表示符,赋值或复制给待处理像素块中的第m行像素。第m行可以是经填充像素块的任意一行。
在逐列进行赋值或复制时,可以将用于表示经填充像素块的第n列像素中每个像素是否是已占用像素的表示符,赋值或复制给待处理像素块中的第n列像素。第n列可以是经填充像素块的任意一列。
在逐块进行赋值或复制时,可以将用于表示经填充像素块的一个子像素块的表示符赋值或复制给待处理像素块中的该子像素块。该子像素块包括至少两行和至少两列元素。
当然,译码器也可以以像素为单位进行赋值或复制。
S103:根据经填充的第二占用图,重构所述待译码点云;该经填充的第二占用图包括该经填充像素块。
例如,根据经编码的深度图进行视频解码,获得该点云的解码深度图,利用解码深度图、该经填充的第二占用图和各patch的辅助信息,获得重构的点云几何信息。具体实现过程可以参考上文,或参考现有技术。
本申请实施例提供的方案中,通过占用码字查表,得到待处理像素块的目标处理模式。与传统技术中通过判断操作确定待处理像素块的类型,从而确定待处理像素块的目标处理模式的技术方案相比,不需要执行分支操作,因此所占的计算资源较少,这有助于提高上采样的并行处理效率,从而有助于提高编解码效率。
以下,通过具体示例对上述S101进行说明。
需要说明的是,下述示例中均是以经填充像素块(或待处理像素块)是4*4的像素块为例进行说明的。该情况下,处理模式的二进制表示符可以是0000000000000000~1111111111111111中的任一值。下文中任意一个表中的处理模式在具体实现时均可以是处理模式的表示符(如二进制表示符),或者可以是处理模式的示意图(即pattern,如图6中第3列所示的示意图)。
另外,下述各表中的“序号”这一列是为了方便读者理解一个表所包含的行数,实际实现时,各表可以不包含“序号”这一列。或者,由于任意一个表中的“序号”这一列通常与该表中的某一列(如第2列)存在一定的对应关系(如数值对应相等),因此,具体实现时,在一些实施例中,该表中可以包含“序号”这一列,而不包含与序号存在对应关系的这一列。例如,表1中的每个序号与其所对应的占用码字所表示 的二进制数值相等,基于此,表1中可以不包含占用码字这一列,这样的话,根据占用码字确定序号,再基于序号确定该占用码字对应的处理模式。其他表的变型与此类似,此处不再一一说明。
实施例一
在本实施例中,编码器可以设置包括多种占用码字与多种处理模式之间的对应关系的表。解码器可以设置与编码器相同的表;或可以通过解析码流得到与编码器所设置的表相同的表。
一个占用码字对应一种处理模式。不同占用码字对应的处理模式可以相同也可以不同。
在一个示例中,一个占用码字用于表征一个基准像素块及其所有空域相邻像素块分别是否是已占用像素块,该情况下,一个占用码字可以是9位二进制表示符,即000000000~111111111中的任一值。若该9位二进制表示符是:按照该基准像素块及其所有空域相邻像素块从左到右、从上到下的顺序,对该基准像素块及其所有空域相邻像素块的占用位进行排序后得到的,则多种占用码字与多种处理模式之间的对应关系可以如表1所示。
表1
序号 占用码字 处理模式(亦称为填充模式)
0 000000000 0000000000000000
1 000000001 0000000000000000
…… …… ……
95 001011111 0001001101111111
…… …… ……
511 111111111 1111111111111111
在一个示例中,译码器构建或使用表1的过程示意图可以如图17所示。其中,图17中是以第一占用图的分辨率小于第二占用图的分辨率为例进行说明的,具体可以体现为:第一占用图中的基准像素块是基准像素(即1*1的基准像素块),第二占用图中与该基准像素块对应的像素块是4*4的像素块,也就是说,处理模式是以4*4的像素块的处理模式为例进行说明的。图17中的(a)图表示第一占用图中的一个基准像素块(居中)及其空域相邻像素块分别是否是已占用像素块的示意图,图17中的(a)图可以用第一占用码字“001011111”来表征,图17中的(b)图表示与第一占用码字“001011111”所对应的处理模式“0001001101111111”的示意图。图17中的(c)图表示译码器所构建的表1。其中,基于图17中的(a)图和(b)图可以用于构建图17中的(c)图的序号为95的一行。或者,基于图17中的(a)图可以利用占用码字“001011111”作为索引,查表得到对应的填充模式pattern,如图17中的(b)图所示。
示例的,基于表1,如果第一占用码字是“001011111”(序号是95),说明:当前基准像素块(图17中的(a)图的居中)的正左方、正上方和左上方的空域相邻像素块均是未占用像素块(图17中的(a)图中的黑色表示空,即未占用),其他空域相邻像素块和当前基准像素块均是已占用像素块(图17中的(a)图中的白色表示占用)。那么,译码器通过查表1,可以得到待处理像素块的目标处理模式的二进制表 示符是0001001101111111,如图6所示的索引2对应的处理模式。该过程的示意图可以如图18所示。
如图18所示,为基于图17提供的一种查找目标处理模式的过程示意图。具体的,如果当前基准像素块及其空域相邻像素块是否是已占用像素块的示意图如图18中的(a)图所示,则第一占用码字可以是001011111,如图18中的(b)图所示。基于第一占用码字001011111查表即图17中的(c)图所示的表,可以得到第一占用码字001011111对应的处理模式的二进制表示符是0001001101111111(即目标处理模式的二进制表示符)。根据目标处理模式的二进制表示符对如图18中的(c)图所示的空白待处理像素块(即未填充的待处理像素块)进行填充处理,得到图18中的(d)图所示的经填充像素块。图18中的(a)图中的黑色表示空,即未占用,以0来表征;图18中的(a)图中的白色表示占用,以1来表征;应当理解的是,本申请对此不做限定,例如也可以1来表征未占用,以0来表征占用。
在另一个示例中,译码器构建或使用表1的过程示意图可以如图19所示。其中,图19中是以第一占用图的分辨率等于第二占用图的分辨率为例进行说明的,具体可以体现为:第一占用图中的基准像素块是4*4的像素块,第二占用图中与该基准像素块对应的像素块也是4*4的像素块,也就是说,处理模式是以4*4的像素块的处理模式为例进行说明的。其中,图19中的(a)图表示第一占用图中的一个基准像素块(居中的4*4块)及其空域相邻像素块分别是否是已占用像素块的示意图,图19中的(b)图表示与第一占用码字001011111所对应的处理模式0001001101111111的示意图。图19中的(c)图表示译码器所构建的表1。其中,基于图19中的(a)图和(b)图可以用于构建图19中的(c)图的序号为95的一行。或者,基于图19中的(a)图可以利用占用码字“001011111”作为索引,查表得到对应的填充模式pattern,如图19中的(b)图所示。
如图20所示,为基于图19提供的一种查找目标处理模式的过程示意图。具体的,如果当前基准像素块及其空域相邻像素块是否是已占用像素块的示意图如图20中的(a)图所示,则第一占用码字可以是001011111,如图20中的(b)图所示。基于第一占用码字001011111查表即图19中的(c)图所示的表,可以得到第一占用码字001011111对应的处理模式的二进制表示符是0001001101111111(即目标处理模式的二进制表示符)。根据目标处理模式的二进制表示符对如图20中的(c)图所示的空白待处理像素块(即未填充的待处理像素块)进行填充处理,得到图20中的(d)图所示的经填充像素块。图20中的(a)图中的黑色表示空,即未占用,以0来表征;图20中的(a)图中的白色表示占用,以1来表征;应当理解的是,本申请对此不做限定,例如也可以1来表征未占用,以0来表征占用。
实施例二
在本实施例中,编码器可以设置包括多种占用码字与多种处理模式的索引之间的对应关系的表,和包括多种处理模式的索引与多种处理模式之间的对应关系的表。解码器可以设置与编码器相同的表;或者可以通过解析码流得到与编码器所设置的表相同的表。
一种占用码字对应一种处理模式的索引。不同占用码字对应的处理模式的索引可 以相同也可以不同。处理模式的索引与处理模式一一对应。不同处理模式的索引对应不同处理模式。
在一个示例中,一个占用码字用于表征一个基准像素块及其所有空域相邻像素块分别是否是已占用像素块,该情况下,一个基准占用码字可以是9位二进制表示符,即000000000~111111111中的任一值。假设该9位二进制表示符是:按照该基准像素块及其所有空域相邻像素块从左到右、从上到下的顺序,对该基准像素块及其所有空域相邻像素块的占用位进行排序后得到的,那么:多种占用码字与多种处理模式的索引之间的对应关系可以如表2所示,多种处理模式的索引与多种处理模式之间的对应关系可以如表3所示。表2和表3中是以共16种处理模式(索引为0~15)为例进行说明的。
表2
序号 占用码字 处理模式的索引
0 000000000 0
1 000000001 0
…… …… ……
95 001011111 5
…… …… ……
511 111111111 15
表3
序号 处理模式的索引 处理模式
0 0 0000000000000000
…… …… ……
5 5 0001001101111111
…… …… ……
15 15 1111111111111111
上述表2和表3之间的关系的一种表示方式可以如图21所示。其中,图21中的(a)图所示的表是表2,图21中的(b)图所示的表是表3。由图21可以看出,多个占用码字可以对应同一种处理模式的索引,从而对应同一种处理模式。
示例的,如果第一占用码字是“001011111”(序号是95),那么,译码器通过查表2,可以得到该占用码字对应的处理模式的索引是5;接着,通过查表3,可以得到待处理像素块的目标处理模式的二进制表示符是0001001101111111。
与实施例一提供的技术方案相比,本实施例提供的技术方案,可以节省所查的表所占用的存储空间。
上述表1~表3均是以“一个占用码字用于表征一个基准像素块及其所有空域相邻像素块分别是否是已占用像素块”为例进行说明的。实际实现时,如果一个占用码字用于表征“一个基准像素块及其所有空域相邻像素块”中的部分像素块分别是否是已占用像素块,则译码器所存的表的具体内容,可以基于上述表1~表3以及上文中的相应文字描述推理得到,此处不再赘述。
实施例三
在本实施例中,编码器可以设置至少两个“包括多种处理模式与多种子占用码字之间的对应关系”的表。解码器可以设置与编码器相同的表;或者可以通过解析码流得到与编码器所设置的表相同的表。
第一子占用码字用于表征当前基准像素块是否是已占用像素块。该情况下,第一子占用码字可以是1位二进制表示符。多种处理模式与多种子占用码字之间的对应关系的表可以如表4所示。
表4
序号 子占用码字 处理模式
0 0 0000000000000000
1 1 1111111111111111
可以理解的是,具体实现时,表4中的处理模式这一列可以替换为处理模式的索引,例如,使用“0”作为处理模式“0000000000000000”的索引,使用“1”作为处理模式“1111111111111111”的索引。基于此,译码器中还可以存储处理模式的索引与处理模式之间的对应关系,这样可以进一步节省所查的表所占的存储空间。
第二子占用码字用于表征当前基准像素块的多个空域相邻像素块分别是否是已占用像素块。例如,第二子占用码字用于表征当前基准像素块的全部(即所有)空域相邻像素块分别是否是已占用像素块,该情况下,第二子占用码字可以是8位二进制表示符。又如,第二子占用码字用于表征该基准像素块的部分(即局部)空域相邻像素块分别是否是已占用像素块。
在一个示例中,第二子占用码字用于表征当前基准像素块的正上方、正左方、正右方和正下方的空域相邻像素块分别是否是已占用像素块。该情况下,第二子占用码字可以是4位二进制表示符,即0000~1111中的任意一个值。如果该4位二进制表示符是按照该基准像素块的正上方、正左方、正右方和正下方的空域相邻像素块从左到右、从上到下的顺序,对该基准像素块的正上方、正左方、正右方和正下方的空域相邻像素块的占用位进行排序后得到的,那么,多种处理模式与多种子占用码字之间的对应关系的表可以如表5所示。
表5
序号 子占用码字 处理模式
0 0000 0000000000000000
1 0001 0000000001101111
2 0010 0001001100110001
3 0011 0001001101111111
4 0100 1000110011001000
5 0101 1000110011101111
6 0110 1111111111111111
7 0111 1111111111111111
8 1000 111101100000000
9 1001 1111111111111111
10 1010 1111011100110001
11 1011 1111111111111111
12 1100 1111111011001000
13 1101 1111111111111111
14 1110 1111111111111111
15 1111 1111111111111111
可以理解的是,具体实现时,表5中的处理模式这一列可以替换为处理模式的索引,基于此,译码器中还可以存储处理模式的索引与处理模式之间的对应关系,这样,可以进一步节省所查的表所占的存储空间。
在本实施例中,译码器可以通过执行以下步骤得到待处理像素块的目标处理模式:
步骤1:根据第一子占用码字,查多种处理模式与多种子占用码字之间的对应关系的表(如查表4),得到第一子占用码字对应的第一处理模式。
步骤2:根据第二子占用码字,查多种处理模式与多种子占用码字之间的对应关系的表(如查表5),得到第二子占用码字对应的第二处理模式。
其中,步骤1和步骤2的执行顺序可以不分先后。
步骤3:根据第一处理模式和第二处理模式得到待处理像素块的目标处理模式。例如,在使用“0”表示未占用,使用“1”表示已占用的情况下,对第一处理模式的二进制表示符和第二处理模式的二进制表示符进行按位与,得到目标处理模式的二进制表示符。
例如,第一子占用码字的二进制表示符是“0”,第二子占用码字的二进制表示符是“0001”时,译码器根据“0”查表4,得到第一处理模式的二进制表示符“0000000000000000”;根据“0001”查表5,得到第二处理模式的二进制表示符“0000000000001111”。然后,将“0000000000000000”和“0000000000001111”进行按位与,得到目标处理模式的二进制表示符“0000000000000000”。
又如,第一子占用码字的二进制表示符是“1”,第二子占用码字的二进制表示符是“0001”时,译码器根据“1”查表4,得到第一处理模式的二进制表示符“1111111111111111”;根据“0001”查表5,得到第二处理模式的二进制表示符“0000000000001111”。然后,将“1111111111111111”和“0000000000001111”进行按位与,得到目标处理模式的二进制表示符“0000000000001111”。
与实施例一提供的技术方案相比,本实施例提供的技术方案,可以节省所查的表所占用的存储空间。
实施例四
可以理解的是,不同类型的像素块所对应的多种处理模式之间可以通过变换(如旋转)得到,例如,图6中类型2、类型3和类型4的像素块对应的处理模式可以分别通过对类型1的像素块逆时针旋转90°、180°和270°得到,基于此,提出本实施例的技术方案。
在本实施例中,编码器可以设置包括多种参考处理模式、多种旋转角度和多种占用码字之间的对应关系的表。解码器可以设置与编码器相同的表;或者可以通过解析码流得到与编码器所设置的表相同的表。
其中,不同占用码字所对应的参考处理模式可以相同,也可以不同。不同占用码 字所对应的旋转角度可以相同,也可以不同。一种参考处理模式可以对应一种或多种旋转角度。
为了节省所查的表所占的存储空间,结合上述实施例三,可替换的,编码器可以设置包括多种处理模式与多种子占用码字之间的对应关系的表,以及包括多种参考处理模式、多种旋转角度和多种子占用码字之间的对应关系的表。
为了进一步节省所查的表所占的存储空间,译码器可以将“包括多种参考处理模式、多种旋转角度和多种子占用码字之间的对应关系的表”替换为:“包括多种参考处理模式的索引、多种旋转角度的索引和多种子占用码字之间的对应关系的表(如表6)”、“包括多种参考处理模式的索引与多种参考处理模式之间的对应关系的表(如表7)”,和“包括多种旋转角度的索引与多种旋转角度之间的对应关系的表(如表8)”。
表6中是以第二子占用码字用于表征当前基准像素块的正上方、正左方、正右方和正下方的空域相邻像素块分别是否是已占用像素块为例进行说明的。
表6
序号 子占用码字 参考处理模式的索引 旋转角度的索引
0 0000 2 0
1 0001 1 0
2 0010 1 1
3 0011 0 1
4 0100 1 3
5 0101 0 0
6 0110 2 0
7 0111 2 0
8 1000 1 2
9 1001 0 3
10 1010 0 2
11 1011 2 0
12 1100 0 3
13 1101 2 0
14 1110 2 0
15 1111 2 0
表7
序号 参考处理模式的索引 参考处理模式
0 0 1000110011101111
1 1 0000000001101111
2 2 1111111111111111
其中,参考处理模式0(即“1000110011101111”)可以是图6中索引5对应的处理模式。参考处理模式1(即“0000000001101111”)的示意图可以是图6中索引9对应的处理模式。如图22所示。
表8
序号 旋转角度的索引(亦称为旋转角度值) 旋转角度
0 0
1 1 90°
2 2 180°
3 3 270°
需要说明的是,表8中的旋转角度均是以逆时针旋转角度为例进行说明的。
在本实施例中,译码器可以通过执行以下步骤得到待处理像素块的目标处理模式:
步骤1:根据第一子占用码字,查多种处理模式与多种子占用码字之间的对应关系的表(如查表3),得到第一子占用码字对应的第一处理模式。
步骤2:根据第二子占用码字,查多种参考处理模式、多种旋转角度和多种子占用码字之间的对应关系的表(如查表6、表7和表8),得到与第二子占用码字对应的参考处理模式和旋转角度。然后,按照与第二占用码字对应的旋转角度,对与第二占用码字对应的参考处理模式进行旋转,得到待处理像素块的第五处理模式。
步骤3:根据第一处理模式和第五处理模式得到待处理像素块的目标处理模式。例如,在使用“0”表示未占用,使用“1”表示已占用的情况下,对第一处理模式的二进制表示符和第五处理模式的二进制表示符进行按位与,得到目标处理模式的二进制表示符。
与实施例一提供的技术方案相比,本实施例提供的技术方案,可以节省所查的表所占用的存储空间。
上述表5和表6均是以“第二子占用码字用于表征当前基准像素块的空域相邻像素块是正上方、正左方、正右方和正下方的空域相邻像素块分别是否是已占用像素块”为例进行说明的。实际实现时,如果第二子占用码字用于表征当前基准像素块的其他位置的空域相邻像素块是否是已占用像素块,则译码器所存的表的具体内容,可以基于表5或表6推理得到,此处不再赘述。
基于上文提供的任意一个实施例,可选的,由于当前基准像素块的已占用空域相邻像素块的个数大于第一阈值时,当前基准像素块所对应的待处理像素块可以被认为是在点云块(patch)内部,该待处理像素块中的全部像素是已占用像素的概率较大,因此,可以将该待处理像素块中的全部像素填充为已占用。当前基准像素块的已占用空域相邻像素块的个数小于第二阈值时,可以认为当前基准像素块所对应的待处理像素块属于很小的点云块内部,很难判断其真实形状,该情况下,可以将该待处理像素块中的全部像素填充为已占用。其中,第一阈值大于第二阈值。假设第一阈值是6,第二阈值是2,那么,多种个数与多种处理模式之间的对应关系可以如表9所示:
表9
序号 个数(即已占用空域相邻像素块的个数) 处理模式
0 0 1111111111111111
1 1 1111111111111111
2 2 0000000000000000
3 3 0000000000000000
4 4 0000000000000000
5 5 0000000000000000
6 6 0000000000000000
7 7 1111111111111111
8 8 1111111111111111
可以理解的是,具体实现时,表9中的处理模式这一列可以替换为处理模式的索引,例如,使用“0”作为处理模式“0000000000000000”的索引,使用“1”作为处理模式“1111111111111111”的索引。基于此,译码器中还可以存储处理模式的索引与处理模式之间的对应关系,这样可以进一步节省所查的表所占的存储空间。
可以理解的是,具体实现时,表9可以与上文中所描述的任意一个实施例结合使用。
例如,该可选的实现方式与实施例四结合时,译码器可以根据当前基准像素块的已占用空域像素块的个数查表9,得到当前基准像素块对应的一个处理模式,并将该处理模式与实施例四中“第一处理模式和第五处理模式按位与的结果”进行按位或,得到当前基准像素块所对应的待处理像素块的目标处理模式。
又如,该可选的实现方式与实施例三结合时,译码器可以根据当前基准像素块的已占用空域像素块的个数查表9,得到当前基准像素块对应的一个处理模式,并将该处理模式与实施例三中“第一处理模式和第二处理模式按位与的结果”进行按位或,得到当前基准像素块所对应的待处理像素块的目标处理模式。
需要说明的是,在一种可选的实现方式中,如果将所查的一个或多个表编入码流,则基于上述实施例四,一种码流格式可以如下:
Figure PCTCN2020079550-appb-000001
基于其他实施例的码流格式此处不再一一说明。
需要说明的是,在不冲突的情况下,上文中所描述的任意两个或两个以上的实施例中的部分特征可以结合,从而构成新的实施例。另外,上文中的任意一个实施例中的部分特征可以独立作为一个实施例。
如图10所示,为本申请实施例提供的一种点云译码方法的流程示意图。该方法可 以包括:
S201:根据第二占用码字查表,得到待处理像素块的目标处理模式;第二占用码字用于表征待处理像素块是否为已占用像素块,和/或待处理像素块的多个空域相邻像素块分别是否为已占用像素块;待处理像素块是待译码点云的占用图中的像素块。
S202:根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块。
S203:根据经填充占用图,重构待译码点云;该经填充占用图包括该经填充像素块。
在一个示例中,基于上述实施方式二,待译码点云的占用图可以是占用图C。
本实施例与上述图7所示的实施例的区别在于:两个技术方案中占用码字的含义不同,上述第一方面提供的技术方案中需要通过第一占用图中的当前基准像素块的相关信息(如第一占用码字),确定第二占用图中的待处理像素块的目标处理模式,其中第一占用图(例如低分辨率的占用图)中的当前基准像素块对应于第二占用图(例如高分辨率的占用图)中的待处理像素块,也就是说,在查表过程中,需涉及两个占用图。而本技术方案中通过待处理像素块的相关信息(如第二占用码字),确定待处理像素块的目标处理模式,也就是说,在查表过程中,仅需涉及一个占用图。本实施例中相关内容的解释,相关步骤的实现方式,以及有益效果等描述均可以参考上文中相应的部分,或者根据上文所描述的相应部分进行简单修改得到,此处不再赘述。
如图11所示,为本申请实施例提供的一种点云编码方法的流程示意图。本实施例的执行主体可以是编码器。该方法可以包括:
S301:确定指示信息,该指示信息用于指示是否按照目标编码方法对待编码点云的占用图进行处理;目标编码方法包括本申请实施例提供的任一种点云编码方法,例如可以是图7或图10所示的点云译码方法,且这里的译码具体是指编码。
具体实现的过程中,编码方法可以有至少两种,该至少两种的其中一种可以是本申请实施例提供的任一种点云编码方法,其他种可以是现有技术或未来提供的点云编码方法。
可选的,该指示信息具体可以是目标点云编码/解码方法的索引。具体实现的过程中,编码器和解码器可以预先约定编码器/解码器所支持的至少两种点云编码/解码方法的索引,然后,在编码器确定目标编码方法之后,将目标编码方法的索引或该目标编码方法对应的解码方法的索引作为指示信息编入码流。本申请实施例对编码器如何确定目标编码方法是编码器所支持的至少两种编码方法中的哪一种不进行限定。
S302:将该指示信息编入码流。
本实施例提供了一种选择目标编码方法的技术方案,该技术方案可以应用于编码器支持至少两种点云编码方法的场景中。
如图12所示,为本申请实施例提供的一种点云解码方法的流程示意图。本实施例的执行主体可以是解码器。该方法可以包括:
S401:解析码流,以得到指示信息,该指示信息用于指示是否按照目标解码方法对待解码点云的占用图进行处理;目标解码方法包括本申请实施例提供的任一种点云解码方法,例如可以是图7或图10所示的点云译码方法,且这里的译码具体是指解码。具体是与图11中所描述的编码方法相对应的解码方法。其中,该指示信息是帧级别的 信息。
S402:当该指示信息用于指示按照目标解码方法对待解码点云的占用图进行处理时,按照目标解码方法对待解码点云的占用图进行处理。其中,具体的处理过程可以参考上文。
本实施例提供的点云解码方法与图11提供的点云编码方法相对应。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对编码器/解码器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图13所示,为本申请实施例提供的一种译码器130的示意性框图。译码器130具体可以是编码器或解码器。译码器130可以包括上采样模块1301和点云重构模块1302。
例如,译码器130可以对应于图2中的编码器100,该情况下,上采样模块1301可以对应于上采样模块111,点云重构模块1302可以对应于点云重构模块112。
又如,译码器130可以对应于图5中的解码器200,该情况下,上采样模块1301可以对应于上采样模块208,点云重构模块1302可以对应于点云重构模205。
图2所示的编码框架和图5所示的解码框架仅作为示意,应当理解的是,本申请的编码器或解码器的框架包括但不局限于此。
在一些实施例中,上采样模块1301,用于根据第一占用码字查表,得到待处理像素块的目标处理模式;其中,所述第一占用码字用于表征当前基准像素块是否为已占用像素块,和/或所述当前基准像素块的多个空域相邻像素块分别是否为已占用像素块;所述当前基准像素块是待译码点云的第一占用图中的像素块,所述待处理像素块是所述待译码点云的第二占用图中的像素块,所述当前基准像素块对应于所述待处理像素块;根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块。点云重构模块1302,用于根据经填充的第二占用图,重构所述待译码点云;所述经填充的第二占用图包括所述经填充像素块。例如,结合图7,上采样模块1301可以用于执行S101和S102,点云重构模块1302可以用于执行S103。
可选的,在根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块的方面,上采样模块1301具体用于:将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块。
可选的,在将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或 复制给待处理像素块中的相应像素,得到经填充像素块的方面,上采样模块1301具体用于:将目标处理模式的表示符或与目标处理模式对应的存储数据,逐行赋值或逐行复制给待处理像素块中的相应像素,得到经填充像素块;或者,将目标处理模式的表示符或与目标处理模式对应的存储数据,逐列赋值或逐列复制给待处理像素块中的相应像素,得到经填充像素块;或者,将目标处理模式的表示符或与目标处理模式对应的存储数据,逐块赋值或逐块复制给待处理像素块中的相应像素,得到经填充像素块。
可选的,在根据第一占用码字查表,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:根据第一占用码字查第一表,得到与第一占用码字对应的参考处理模式和变换方式;第一表包括多种参考处理模式、多种变换方式和多种占用码字之间的对应关系;按照与第一占用码字对应的变换方式,对与第一占用码字对应的参考处理模式进行变换,得到待处理像素块的目标处理模式。
可选的,不同的变换方式包括不同的旋转角度;在按照与第一占用码字对应的变换方式,对与第一占用码字对应的参考处理模式进行变换,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:按照与第一占用码字对应的旋转角度,对与第一占用码字对应的参考处理模式进行旋转,得到待处理像素块的目标处理模式。
可选的,在根据第一占用码字查表,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:根据第一占用码字查第二表,得到待处理像素块的目标处理模式;第二表包括多种处理模式与多种占用码字之间的对应关系。
可选的,在根据第一占用码字查表,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:根据第一占用码字查第三表,得到待处理像素块的目标处理模式的索引;第三表包括多种处理模式的索引与多种占用码字之间的对应关系;根据待处理像素块的目标处理模式的索引查第四表,得到待处理像素块的目标处理模式;其中,第四表包括多种处理模式的索引与多种处理模式之间的对应关系。
可选的,在根据第一占用码字查表,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:根据第一子占用码字查第五表,得到第一处理模式;第一子占用码字用于表征当前基准像素块是否是已占用像素块;第五表包括多种处理模式与多种子占用码字之间的对应关系;根据第二子占用码字查第六表,得到第二处理模式;其中,第二子占用码字用于表征当前基准像素块的多个空域相邻像素块分别是否是已占用像素块;第六表包括多种处理模式与多种子占用码字之间的对应关系;根据第一处理模式和第二处理模式,确定待处理像素块的目标处理模式。
可选的,在根据第一占用码字查表,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:根据当前基准像素块的已占用空域相邻像素块的个数查第七表,得到第三处理模式;第七表包括多种处理模式与多种个数之间的对应关系;根据第一占用码字查第八表,得到与第一占用码字对应的参考处理模式和旋转角度;第八表包括多种参考处理模式、多种旋转角度和多种占用码字之间的对应关系;按照与第一占用码字对应的旋转角度,对与第一占用码字对应的参考处理模式进行旋转,得到待处理像素块的第四处理模式;根据第三处理模式和第四处理模式,确定待处理像素块的目标处理模式。
可选的,第一占用码字用于表征当前基准像素块和当前基准像素块的多个空域相 邻像素块分别是否为已占用像素块。
在另一些实施例中,上采样模块1301,用于根据第二占用码字查表,得到待处理像素块的目标处理模式;所述第二占用码字用于表征所述待处理像素块是否为已占用像素块,和/或所述待处理像素块的多个空域相邻像素块分别是否为已占用像素块,所述待处理像素块是待译码点云的占用图中的像素块;根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块。点云重构模块1302,用于根据经填充占用图,重构所述待译码点云;所述经填充占用图包括所述经填充像素块。例如,结合图10,上采样模块1301可以用于执行S201和S202,点云重构模块1302用于执行S203。
可选的,在根据目标处理模式对待处理像素块进行填充处理,得到经填充像素块的方面,上采样模块1301具体用于:将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块。
可选的,在将目标处理模式的表示符或与目标处理模式对应的存储数据,赋值或复制给待处理像素块中的相应像素,得到经填充像素块的方面,上采样模块1301具体用于:将目标处理模式的表示符或与目标处理模式对应的存储数据,逐行赋值或逐行复制给待处理像素块中的相应像素,得到经填充像素块;或者,将目标处理模式的表示符或与目标处理模式对应的存储数据,逐列赋值或逐列复制给待处理像素块中的相应像素,得到经填充像素块;或者,将目标处理模式的表示符或与目标处理模式对应的存储数据,逐块赋值或逐块复制给待处理像素块中的相应像素,得到经填充像素块。
可选的,在根据第二占用码字查表,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:根据第二占用码字查第一表,得到与待处理像素块对应的参考处理模式和变换方式;第一表包括多种参考处理模式、多种变换方式和多种占用码字之间的对应关系;按照与待处理像素块对应的变换方式,对与待处理像素块对应的参考处理模式进行变换,得到待处理像素块的目标处理模式。
可选的,不同的变换方式包括不同的旋转角度;在按照与待处理像素块对应的变换方式,对与待处理像素块对应的参考处理模式进行变换,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:按照与待处理像素块对应的旋转角度,对与待处理像素块对应的参考处理模式进行旋转,得到待处理像素块的目标处理模式。
可选的,在根据第二占用码字查表,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:根据第二占用码字查第二表,得到待处理像素块的目标处理模式;第二表包括多种处理模式与多种占用码字之间的对应关系。
可选的,在根据第二占用码字查表,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:根据第二占用码字查第三表,得到待处理像素块的目标处理模式的索引;第三表包括多种处理模式的索引与多种占用码字之间的对应关系;根据待处理像素块的目标处理模式的索引查第四表,得到待处理像素块的目标处理模式;其中,第四表包括多种处理模式的索引与多种处理模式之间的对应关系。
可选的,在根据第二占用码字查表,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:根据第一子占用码字查第五表,得到第一处理模式;第一子占用码字用于表征待处理像素块是否是已占用像素块;第五表包括多种处理模式与多种子占用码字之间的对应关系;根据第二子占用码字查第六表,得到第二处理模式; 其中,第二子占用码字用于表征待处理像素块的多个空域相邻像素块分别是否是已占用像素块;第六表包括多种处理模式与多种子占用码字之间的对应关系;根据第一处理模式和第二处理模式,确定待处理像素块的目标处理模式。
可选的,在根据第二占用码字查表,得到待处理像素块的目标处理模式的方面,上采样模块1301具体用于:根据待处理像素块的已占用空域相邻像素块的个数查第七表,得到第三处理模式;第七表包括多种处理模式与多种个数之间的对应关系;根据第二占用码字查第八表,得到与待处理像素块对应的参考处理模式和旋转角度;第八表包括多种参考处理模式、多种旋转角度和多种占用码字之间的对应关系;按照与待处理像素块对应的旋转角度,对与待处理像素块对应的参考处理模式进行旋转,得到待处理像素块的第四处理模式;根据第三处理模式和第四处理模式,确定待处理像素块的目标处理模式。
可选的,第二占用码字用于表征待处理像素块和待处理像素块的多个空域相邻像素块分别是否为已占用像素块。
可选的,待译码点云是待编码点云。参见图14,译码器130还包括:辅助信息编码模块1303,用于所查的一个或多个表编入码流,或者将标识信息编入码流,该标识信息用于表示所查的一个或多个表。
可选的,待译码点云是待解码点云。参见图15,译码器130还包括:辅助信息解码模块1304,用于解析码流,以得到所查的一个或多个表。相应的,在根据第一占用码字查表的方面,上采样模块1301具体可以用于:根据第一占用码字查解析码流得到的一个或多个表。或者,辅助信息解码模块1304,用于解析码流,以得到标识信息,该标识信息用于表示所查的一个或多个表。相应的,在根据第一占用码字查表的方面,上采样模块1301具体可以用于:根据第一占用码字查解析码流得到的标识信息所表示的一个或多个表。
可以理解的,本申请实施例提供的译码器130中的各模块为实现上文提供的相应的方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本申请点云译码方法中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见上文中相应方法的介绍,为简洁起见,本文将不再赘述。
图16为用于本申请实施例的编码设备或解码设备(简称为译码设备160)的一种实现方式的示意性框图。其中,译码设备160可以包括处理器1610、存储器1630和总线系统1650。其中,处理器1610和存储器1630通过总线系统1650相连,该存储器1630用于存储指令,该处理器1610用于执行该存储器1630存储的指令,以执行本申请描述的各种点云译码方法。为避免重复,这里不再详细描述。
在本申请实施例中,该处理器1610可以是中央处理单元(central processing unit,CPU),该处理器1610还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1630可以包括ROM设备或者RAM设备。任何其他适宜类型的存储设备也可以用作存储器1630。存储器1630可以包括由处理器1610使用总线系统1650访问的代码和数据1631。存储器1630可以进一步包括操作系统1633和应用程序1635, 该应用程序1635包括允许处理器1610执行本申请描述的点云编码方法或点云解码方法(尤其是本申请描述的基于占用码字查表得到待处理像素块的目标填充模式,从而进行上采样的方法)的至少一个程序。例如,应用程序1635可以包括应用1至N,其进一步包括执行在本申请描述的视频编码或解码方法的视频编码或解码应用(简称视频译码应用)。
该总线系统1650除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1650。
可选的,译码设备160还可以包括一个或多个输出设备,诸如显示器1670。在一个示例中,显示器1670可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器1670可以经由总线系统1650连接到处理器1610。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于非暂时性的有形计算机可读存储媒体,或通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、DVD和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。在一种示例下,编码器100及解码器200中的各种说明性逻辑框、单元、模块可以理解为对应的电路器件或逻辑元件。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (47)

  1. 一种点云译码方法,其特征在于,包括:
    根据第一占用码字查表,得到待处理像素块的目标处理模式;其中,所述第一占用码字用于表征当前基准像素块是否为已占用像素块,和/或所述当前基准像素块的多个空域相邻像素块分别是否为已占用像素块;所述当前基准像素块是待译码点云的第一占用图中的像素块,所述待处理像素块是所述待译码点云的第二占用图中的像素块,所述当前基准像素块对应于所述待处理像素块;
    根据所述目标处理模式对所述待处理像素块进行填充处理,得到经填充像素块;
    根据经填充的第二占用图,重构所述待译码点云;所述经填充的第二占用图包括所述经填充像素块。
  2. 根据权利要求1所述的方法,其特征在于,所述根据所述目标处理模式对所述待处理像素块进行填充处理,得到经填充像素块,包括:
    将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,赋值或复制给所述待处理像素块中的相应像素,得到所述经填充像素块。
  3. 根据权利要求2所述的方法,其特征在于,所述将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,赋值或复制给所述待处理像素块中的相应像素,得到所述经填充像素块,包括:
    将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐行赋值或逐行复制给所述待处理像素块中的相应像素,得到所述经填充像素块;
    或者,将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐列赋值或逐列复制给所述待处理像素块中的相应像素,得到所述经填充像素块;
    或者,将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐块赋值或逐块复制给所述待处理像素块中的相应像素,得到所述经填充像素块。
  4. 根据权利要求1至3任一项所述的方法,其特征在于,所述根据第一占用码字查表,得到待处理像素块的目标处理模式,包括:
    根据所述第一占用码字查第一表,得到与所述第一占用码字对应的参考处理模式和变换方式;所述第一表包括多种参考处理模式、多种变换方式和多种占用码字之间的对应关系;
    按照与所述第一占用码字对应的变换方式,对与所述第一占用码字对应的参考处理模式进行变换,得到所述待处理像素块的目标处理模式。
  5. 根据权利要求4所述的方法,其特征在于,不同的变换方式包括不同的旋转角度;所述按照与所述第一占用码字对应的变换方式,对与所述第一占用码字对应的参考处理模式进行变换,得到所述待处理像素块的目标处理模式,包括:
    按照与所述第一占用码字对应的旋转角度,对与所述第一占用码字对应的参考处理模式进行旋转,得到所述待处理像素块的目标处理模式。
  6. 根据权利要求1至3任一项所述的方法,其特征在于,所述根据第一占用码字查表,得到待处理像素块的目标处理模式,包括:
    根据所述第一占用码字查第二表,得到所述待处理像素块的目标处理模式;所述第二表包括多种处理模式与多种占用码字之间的对应关系。
  7. 根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述第一占用码字查表,得到待处理像素块的目标处理模式,包括:
    根据所述第一占用码字查第三表,得到所述待处理像素块的目标处理模式的索引;所述第三表包括多种处理模式的索引与多种占用码字之间的对应关系;
    根据所述待处理像素块的目标处理模式的索引查第四表,得到所述待处理像素块的目标处理模式;其中,所述第四表包括多种处理模式的索引与多种处理模式之间的对应关系。
  8. 根据权利要求1至3任一项所述的方法,其特征在于,所述根据第一占用码字查表,得到待处理像素块的目标处理模式,包括:
    根据第一子占用码字查第五表,得到第一处理模式;所述第一子占用码字用于表征所述当前基准像素块是否是已占用像素块;所述第五表包括多种处理模式与多种子占用码字之间的对应关系;
    根据第二子占用码字查第六表,得到第二处理模式;其中,所述第二子占用码字用于表征所述当前基准像素块的多个空域相邻像素块分别是否是已占用像素块;所述第六表包括多种处理模式与多种子占用码字之间的对应关系;
    根据所述第一处理模式和所述第二处理模式,确定所述待处理像素块的目标处理模式。
  9. 根据权利要求1至3任一项所述的方法,其特征在于,所述根据第一占用码字查表,得到待处理像素块的目标处理模式,包括:
    根据所述当前基准像素块的已占用空域相邻像素块的个数查第七表,得到第三处理模式;所述第七表包括多种处理模式与多种个数之间的对应关系;
    根据所述第一占用码字查第八表,得到与所述第一占用码字对应的参考处理模式和旋转角度;所述第八表包括多种参考处理模式、多种旋转角度和多种占用码字之间的对应关系;
    按照所述与所述第一占用码字对应的旋转角度,对所述与所述第一占用码字对应的参考处理模式进行旋转,得到所述待处理像素块的第四处理模式;
    根据所述第三处理模式和所述第四处理模式,确定所述待处理像素块的目标处理模式。
  10. 根据权利要求1至9任一项所述的方法,其特征在于,所述第一占用码字用于表征所述当前基准像素块和所述当前基准像素块的多个空域相邻像素块分别是否为已占用像素块。
  11. 一种点云译码方法,其特征在于,包括:
    根据第二占用码字查表,得到待处理像素块的目标处理模式;所述第二占用码字用于表征所述待处理像素块是否为已占用像素块,和/或所述待处理像素块的多个空域相邻像素块分别是否为已占用像素块,所述待处理像素块是待译码点云的占用图中的像素块;
    根据所述目标处理模式对所述待处理像素块进行填充处理,得到经填充像素块;
    根据经填充占用图,重构所述待译码点云;所述经填充占用图包括所述经填充像素块。
  12. 根据权利要求11所述的方法,其特征在于,所述根据所述目标处理模式对所述待处理像素块进行填充处理,得到经填充像素块,包括:
    将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,赋值或复制给所述待处理像素块中的相应像素,得到所述经填充像素块。
  13. 根据权利要求12所述的方法,其特征在于,所述将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,赋值或复制给所述待处理像素块中的相应像素,得到所述经填充像素块,包括:
    将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐行赋值或逐行复制给所述待处理像素块中的相应像素,得到所述经填充像素块;
    或者,将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐列赋值或逐列复制给所述待处理像素块中的相应像素,得到所述经填充像素块;
    或者,将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐块赋值或逐块复制给所述待处理像素块中的相应像素,得到所述经填充像素块。
  14. 根据权利要求11至13任一项所述的方法,其特征在于,所述根据第二占用码字查表,得到待处理像素块的目标处理模式,包括:
    根据所述第二占用码字查第一表,得到与所述第二占用码字对应的参考处理模式和变换方式;所述第一表包括多种参考处理模式、多种变换方式和多种占用码字之间的对应关系;
    按照与所述第二占用码字对应的变换方式,对与所述第二占用码字对应的参考处理模式进行变换,得到所述待处理像素块的目标处理模式。
  15. 根据权利要求14所述的方法,其特征在于,不同的变换方式包括不同的旋转角度;所述按照与所述第二占用码字对应的变换方式,对与所述第二占用码字对应的参考处理模式进行变换,得到所述待处理像素块的目标处理模式,包括:
    按照与所述第二占用码字对应的旋转角度,对与所述第二占用码字对应的参考处理模式进行旋转,得到所述待处理像素块的目标处理模式。
  16. 根据权利要求11至13任一项所述的方法,其特征在于,所述根据第二占用码字查表,得到待处理像素块的目标处理模式,包括:
    根据所述第二占用码字查第二表,得到所述待处理像素块的目标处理模式;所述第二表包括多种处理模式与多种占用码字之间的对应关系。
  17. 根据权利要求11至13任一项所述的方法,其特征在于,所述根据第二占用码字查表,得到待处理像素块的目标处理模式,包括:
    根据所述第二占用码字查第三表,得到所述待处理像素块的目标处理模式的索引;所述第三表包括多种处理模式的索引与多种占用码字之间的对应关系;
    根据所述待处理像素块的目标处理模式的索引查第四表,得到所述待处理像素块的目标处理模式;其中,所述第四表包括多种处理模式的索引与多种处理模式之间的对应关系。
  18. 根据权利要求11至13任一项所述的方法,其特征在于,所述根据第二占用码字查表,得到待处理像素块的目标处理模式,包括:
    根据第一子占用码字查第五表,得到第一处理模式;所述第一子占用码字用于表 征所述待处理像素块是否是已占用像素块;所述第五表包括多种处理模式与多种子占用码字之间的对应关系;
    根据第二子占用码字查第六表,得到第二处理模式;其中,所述第二子占用码字用于表征所述待处理像素块的多个空域相邻像素块分别是否是已占用像素块;所述第六表包括多种处理模式与多种子占用码字之间的对应关系;
    根据所述第一处理模式和所述第二处理模式,确定所述待处理像素块的目标处理模式。
  19. 根据权利要求11至13任一项所述的方法,其特征在于,所述根据第二占用码字查表,得到待处理像素块的目标处理模式,包括:
    根据所述待处理像素块的已占用空域相邻像素块的个数查第七表,得到第三处理模式;所述第七表包括多种处理模式与多种个数之间的对应关系;
    根据所述第二占用码字查第八表,得到与所述第二占用码字对应的参考处理模式和旋转角度;所述第八表包括多种参考处理模式、多种旋转角度和多种占用码字之间的对应关系;
    按照与所述第二占用码字对应的旋转角度,对与所述第二占用码字对应的参考处理模式进行旋转,得到所述待处理像素块的第四处理模式;
    根据所述第三处理模式和所述第四处理模式,确定所述待处理像素块的目标处理模式。
  20. 根据权利要求11至19任一项所述的方法,其特征在于,所述第二占用码字用于表征所述待处理像素块和所述待处理像素块的多个空域相邻像素块分别是否为已占用像素块。
  21. 一种点云编码方法,其特征在于,包括:
    确定指示信息,所述指示信息用于指示是否按照目标点云编码方法对待编码点云的占用图进行编码;所述目标点云编码方法包括如权利要求1~20任一项所述的点云译码方法;
    将所述指示信息编入码流。
  22. 一种点云解码方法,其特征在于,包括:
    解析码流,以得到指示信息,所述指示信息用于指示是否按照目标点云解码方法对待解码点云的占用图进行处理;所述目标点云解码方法包括如权利要求1~20任一项所述的点云译码方法;
    当所述指示信息指示按照所述目标点云解码方法进行处理时,按照所述目标点云解码方法对所述待解码点云的占用图进行处理。
  23. 一种译码器,其特征在于,包括:
    上采样模块,用于根据第一占用码字查表,得到待处理像素块的目标处理模式;其中,所述第一占用码字用于表征当前基准像素块是否为已占用像素块,和/或所述当前基准像素块的多个空域相邻像素块分别是否为已占用像素块;所述当前基准像素块是待译码点云的第一占用图中的像素块,所述待处理像素块是所述待译码点云的第二占用图中的像素块,所述当前基准像素块对应于所述待处理像素块;根据所述目标处理模式对所述待处理像素块进行填充处理,得到经填充像素块;
    点云重构模块,用于根据经填充的第二占用图,重构所述待译码点云;所述经填充的第二占用图包括所述经填充像素块。
  24. 根据权利要求23所述的译码器,其特征在于,在所述根据所述目标处理模式对所述待处理像素块进行填充处理,得到经填充像素块的方面,所述上采样模块具体用于:
    将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,赋值或复制给所述待处理像素块中的相应像素,得到所述经填充像素块。
  25. 根据权利要求24所述的译码器,其特征在于,在所述将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,赋值或复制给所述待处理像素块中的相应像素,得到所述经填充像素块的方面,所述上采样模块具体用于:
    将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐行赋值或逐行复制给所述待处理像素块中的相应像素,得到所述经填充像素块;
    或者,将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐列赋值或逐列复制给所述待处理像素块中的相应像素,得到所述经填充像素块;
    或者,将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐块赋值或逐块复制给所述待处理像素块中的相应像素,得到所述经填充像素块。
  26. 根据权利要求23至25任一项所述的译码器,其特征在于,在所述根据第一占用码字查表,得到待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    根据所述第一占用码字查第一表,得到与所述第一占用码字对应的参考处理模式和变换方式;所述第一表包括多种参考处理模式、多种变换方式和多种占用码字之间的对应关系;
    按照与所述第一占用码字对应的变换方式,对与所述第一占用码字对应的参考处理模式进行变换,得到所述待处理像素块的目标处理模式。
  27. 根据权利要求26所述的译码器,其特征在于,不同的变换方式包括不同的旋转角度;在按照与所述第一占用码字对应的变换方式,对与所述第一占用码字对应的参考处理模式进行变换,得到所述待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    按照与所述第一占用码字对应的旋转角度,对与所述第一占用码字对应的参考处理模式进行旋转,得到所述待处理像素块的目标处理模式。
  28. 根据权利要求23至25任一项所述的译码器,其特征在于,在所述根据第一占用码字查表,得到待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    根据所述第一占用码字查第二表,得到所述待处理像素块的目标处理模式;所述第二表包括多种处理模式与多种占用码字之间的对应关系。
  29. 根据权利要求23至25任一项所述的译码器,其特征在于,在所述根据所述第一占用码字查表,得到待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    根据所述第一占用码字查第三表,得到所述待处理像素块的目标处理模式的索引;所述第三表包括多种处理模式的索引与多种占用码字之间的对应关系;
    根据所述待处理像素块的目标处理模式的索引查第四表,得到所述待处理像素块 的目标处理模式;其中,所述第四表包括多种处理模式的索引与多种处理模式之间的对应关系。
  30. 根据权利要求23至25任一项所述的译码器,其特征在于,在所述根据第一占用码字查表,得到待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    根据第一子占用码字查第五表,得到第一处理模式;所述第一子占用码字用于表征所述当前基准像素块是否是已占用像素块;所述第五表包括多种处理模式与多种子占用码字之间的对应关系;
    根据第二子占用码字查第六表,得到第二处理模式;其中,所述第二子占用码字用于表征所述当前基准像素块的多个空域相邻像素块分别是否是已占用像素块;所述第六表包括多种处理模式与多种子占用码字之间的对应关系;
    根据所述第一处理模式和所述第二处理模式,确定所述待处理像素块的目标处理模式。
  31. 根据权利要求23至25任一项所述的译码器,其特征在于,在所述根据第一占用码字查表,得到待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    根据所述当前基准像素块的已占用空域相邻像素块的个数查第七表,得到第三处理模式;所述第七表包括多种处理模式与多种个数之间的对应关系;
    根据所述第一占用码字查第八表,得到与所述第一占用码字对应的参考处理模式和旋转角度;所述第八表包括多种参考处理模式、多种旋转角度和多种占用码字之间的对应关系;
    按照所述与所述第一占用码字对应的旋转角度,对所述与所述第一占用码字对应的参考处理模式进行旋转,得到所述待处理像素块的第四处理模式;
    根据所述第三处理模式和所述第四处理模式,确定所述待处理像素块的目标处理模式。
  32. 根据权利要求23至31任一项所述的译码器,其特征在于,所述第一占用码字用于表征所述当前基准像素块和所述当前基准像素块的多个空域相邻像素块分别是否为已占用像素块。
  33. 一种译码器,其特征在于,包括:
    上采样模块,用于根据第二占用码字查表,得到待处理像素块的目标处理模式;所述第二占用码字用于表征所述待处理像素块是否为已占用像素块,和/或所述待处理像素块的多个空域相邻像素块分别是否为已占用像素块,所述待处理像素块是待译码点云的占用图中的像素块;根据所述目标处理模式对所述待处理像素块进行填充处理,得到经填充像素块;
    点云重构模块,用于根据经填充占用图,重构所述待译码点云;所述经填充占用图包括所述经填充像素块。
  34. 根据权利要求33所述的译码器,其特征在于,在所述根据所述目标处理模式对所述待处理像素块进行填充处理,得到经填充像素块的方面,所述上采样模块具体用于:
    将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,赋值或复制给所述待处理像素块中的相应像素,得到所述经填充像素块。
  35. 根据权利要求34所述的译码器,其特征在于,在所述将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,赋值或复制给所述待处理像素块中的相应像素,得到所述经填充像素块的方面,所述上采样模块具体用于:
    将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐行赋值或逐行复制给所述待处理像素块中的相应像素,得到所述经填充像素块;
    或者,将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐列赋值或逐列复制给所述待处理像素块中的相应像素,得到所述经填充像素块;
    或者,将所述目标处理模式的表示符或与所述目标处理模式对应的存储数据,逐块赋值或逐块复制给所述待处理像素块中的相应像素,得到所述经填充像素块。
  36. 根据权利要求33至35任一项所述的译码器,其特征在于,在所述根据第二占用码字查表,得到待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    根据所述第二占用码字查第一表,得到与所述第二占用码字对应的参考处理模式和变换方式;所述第一表包括多种参考处理模式、多种变换方式和多种占用码字之间的对应关系;
    按照与所述第二占用码字对应的变换方式,对与所述第二占用码字对应的参考处理模式进行变换,得到所述待处理像素块的目标处理模式。
  37. 根据权利要求36所述的译码器,其特征在于,不同的变换方式包括不同的旋转角度;在所述按照与所述第二占用码字对应的变换方式,对与所述第二占用码字对应的参考处理模式进行变换,得到所述待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    按照与所述第二占用码字对应的旋转角度,对与所述第二占用码字对应的参考处理模式进行旋转,得到所述待处理像素块的目标处理模式。
  38. 根据权利要求33至35任一项所述的译码器,其特征在于,在所述根据第二占用码字查表,得到待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    根据所述第二占用码字查第二表,得到所述待处理像素块的目标处理模式;所述第二表包括多种处理模式与多种占用码字之间的对应关系。
  39. 根据权利要求33至35任一项所述的译码器,其特征在于,在所述根据第二占用码字查表,得到待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    根据所述第二占用码字查第三表,得到所述待处理像素块的目标处理模式的索引;所述第三表包括多种处理模式的索引与多种占用码字之间的对应关系;
    根据所述待处理像素块的目标处理模式的索引查第四表,得到所述待处理像素块的目标处理模式;其中,所述第四表包括多种处理模式的索引与多种处理模式之间的对应关系。
  40. 根据权利要求33至35任一项所述的译码器,其特征在于,在所述根据第二占用码字查表,得到待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    根据第一子占用码字查第五表,得到第一处理模式;所述第一子占用码字用于表征所述待处理像素块是否是已占用像素块;所述第五表包括多种处理模式与多种子占用码字之间的对应关系;
    根据第二子占用码字查第六表,得到第二处理模式;其中,所述第二子占用码字 用于表征所述待处理像素块的多个空域相邻像素块分别是否是已占用像素块;所述第六表包括多种处理模式与多种子占用码字之间的对应关系;
    根据所述第一处理模式和所述第二处理模式,确定所述待处理像素块的目标处理模式。
  41. 根据权利要求33至35任一项所述的译码器,其特征在于,在所述根据第二占用码字查表,得到待处理像素块的目标处理模式的方面,所述上采样模块具体用于:
    根据所述待处理像素块的已占用空域相邻像素块的个数查第七表,得到第三处理模式;所述第七表包括多种处理模式与多种个数之间的对应关系;
    根据所述第二占用码字查第八表,得到与所述第二占用码字对应的参考处理模式和旋转角度;所述第八表包括多种参考处理模式、多种旋转角度和多种占用码字之间的对应关系;
    按照与所述第二占用码字对应的旋转角度,对与所述第二占用码字对应的参考处理模式进行旋转,得到所述待处理像素块的第四处理模式;
    根据所述第三处理模式和所述第四处理模式,确定所述待处理像素块的目标处理模式。
  42. 根据权利要求33至41任一项所述的译码器,其特征在于,所述第二占用码字用于表征所述待处理像素块和所述待处理像素块的多个空域相邻像素块分别是否为已占用像素块。
  43. 一种编码器,其特征在于,包括:
    辅助信息编码模块,用于确定指示信息,所述指示信息用于指示是否按照目标点云编码方法对待编码点云的占用图进行编码;所述目标点云编码方法包括如权利要求1~20任一项所述的点云译码方法;将所述指示信息编入码流;
    占用图处理模块,用于在所述指示信息指示按照目标点云编码方法对待编码点云的占用图进行处理的情况下,按照所述目标点云编码方法对所述待编码点云的占用图进行处理。
  44. 一种解码器,其特征在于,包括:
    辅助信息解码模块,用于解析码流,以得到指示信息,所述指示信息用于指示是否按照目标点云解码方法对待解码点云的占用图进行处理;所述目标点云解码方法包括如权利要求1~20任一项所述的点云译码方法;
    占用图处理模块,用于当所述指示信息指示按照所述目标点云解码方法进行处理时,按照所述目标点云解码方法对所述待解码点云的占用图进行处理。
  45. 一种计算机可读存储介质,其特征在于,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如权利要求1至20任一项所述的点云译码方法。
  46. 一种计算机可读存储介质,其特征在于,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如权利要求21所述的点云编码方法。
  47. 一种计算机可读存储介质,其特征在于,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如权利要求22所述的点云解码方法。
PCT/CN2020/079550 2019-03-19 2020-03-16 点云编解码方法及编解码器 WO2020187191A1 (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201910210186 2019-03-19
CN201910210186.6 2019-03-19
CN201910214417.0 2019-03-20
CN201910214417.0A CN111726615B (zh) 2019-03-19 2019-03-20 点云编解码方法及编解码器

Publications (1)

Publication Number Publication Date
WO2020187191A1 true WO2020187191A1 (zh) 2020-09-24

Family

ID=72519616

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/079550 WO2020187191A1 (zh) 2019-03-19 2020-03-16 点云编解码方法及编解码器

Country Status (1)

Country Link
WO (1) WO2020187191A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110205338A1 (en) * 2010-02-24 2011-08-25 Samsung Electronics Co., Ltd. Apparatus for estimating position of mobile robot and method thereof
CN108235018A (zh) * 2017-12-13 2018-06-29 北京大学 一种基于拉格朗日乘子模型的点云帧内编码优化方法及装置
CN108322742A (zh) * 2018-02-11 2018-07-24 北京大学深圳研究生院 一种基于帧内预测的点云属性压缩方法
US20180268570A1 (en) * 2017-03-16 2018-09-20 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
CN109196559A (zh) * 2016-05-28 2019-01-11 微软技术许可有限责任公司 动态体素化点云的运动补偿压缩
CN109257604A (zh) * 2018-11-20 2019-01-22 山东大学 一种基于tmc3点云编码器的颜色属性编码方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110205338A1 (en) * 2010-02-24 2011-08-25 Samsung Electronics Co., Ltd. Apparatus for estimating position of mobile robot and method thereof
CN109196559A (zh) * 2016-05-28 2019-01-11 微软技术许可有限责任公司 动态体素化点云的运动补偿压缩
US20180268570A1 (en) * 2017-03-16 2018-09-20 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
CN108235018A (zh) * 2017-12-13 2018-06-29 北京大学 一种基于拉格朗日乘子模型的点云帧内编码优化方法及装置
CN108322742A (zh) * 2018-02-11 2018-07-24 北京大学深圳研究生院 一种基于帧内预测的点云属性压缩方法
CN109257604A (zh) * 2018-11-20 2019-01-22 山东大学 一种基于tmc3点云编码器的颜色属性编码方法

Similar Documents

Publication Publication Date Title
US11704837B2 (en) Point cloud encoding method, point cloud decoding method, encoder, and decoder
CN115918088A (zh) 使用具有切片的八叉树的点云压缩
US11388442B2 (en) Point cloud encoding method, point cloud decoding method, encoder, and decoder
JP2022517060A (ja) 点群符号化構造
US11961265B2 (en) Point cloud encoding and decoding method and apparatus
WO2020063294A1 (zh) 点云编解码方法及编解码器
WO2020011265A1 (zh) 点云编解码方法和编解码器
CN111726615B (zh) 点云编解码方法及编解码器
CN110944187B (zh) 点云编码方法和编码器
WO2020151496A1 (zh) 点云的编解码方法及装置
TWI534760B (zh) 空間樹結構對輸入空間點編碼之方法及編碼器,以及空間樹結構位元流之解碼方法及解碼器
WO2020147379A1 (zh) 点云滤波方法、装置及存储介质
US20220007037A1 (en) Point cloud encoding method and apparatus, point cloud decoding method and apparatus, and storage medium
WO2022121650A1 (zh) 点云属性的预测方法、编码器、解码器及存储介质
WO2020063718A1 (zh) 点云编解码方法和编解码器
WO2020187191A1 (zh) 点云编解码方法及编解码器
CN111327906B (zh) 点云编解码方法和编解码器
WO2020143725A1 (zh) 点云译码方法及译码器
WO2020015517A1 (en) Point cloud encoding method, point cloud decoding method, encoder and decoder
WO2020187283A1 (zh) 点云编码方法、点云解码方法、装置及存储介质
WO2020057338A1 (zh) 点云编码方法和编码器
WO2016192053A1 (zh) 拷贝信息的编码方法、装置以及图像处理设备

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20773234

Country of ref document: EP

Kind code of ref document: A1