Decoded Tile Hash SEI Message for V3C / V-PCC
By introducing hash values associated with tile and patches in 3D graphics encoding, the problem of consistency between tile and patch decoding in dynamic 3D scenes is solved, and a more efficient and accurate encoding process is achieved.
Patent Information
- Application Number
- CN202180006182.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-01-28
- Filing Date
- 2021-06-20
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2041-06-20
AI Technical Summary
Existing three-dimensional graphics encoding and decoding technologies are less efficient in dynamic 3D scenes, especially in video encoding based on 3D to 2D projection, making it difficult to ensure the correct decoding and reconstruction consistency of tiles and patches.
The new hash supplementary enhanced information (SEI) message is used to generate and send hash values associated with tile and patches to ensure that the decoder can verify that the decoded content is consistent with the original value encoded by the encoder. The hash information is generated using algorithms such as MD5, CRC and checksum, and transmitted in the SEI message.
It improves the efficiency and accuracy of 3D graphics encoding, ensures the correct decoding and reconstruction consistency of tiles and patches, and improves the encoding quality of dynamic 3D scenes.
Smart Images

Figure CN114731411B_ABST
Abstract
Description
[0001] Cross - reference to related applications
[0002] This application claims priority under 35 U.S.C.§119(e) to U.S. Provisional Patent Application Serial No. 63 / 046,749, filed on July 1, 2020, and titled "DECODED TILEHASH SEI MESSAGE FOR V3C / V - PCC", U.S. Provisional Patent Application Serial No. 63 / 045,272, filed on June 29, 2020, and titled "DECODED TILE HASH SEI MESSAGE FOR V3C / V - PCC", and U.S. Provisional Patent Application Serial No. 63 / 044,430, filed on June 26, 2020, and titled "DECODED TILE HASH SEI MESSAGE FOR V3C / V - PCC", which are hereby incorporated by reference in their entirety for all purposes. Technical Field
[0003] The present invention relates to three - dimensional graphics. More specifically, the present invention relates to the coding and decoding of three - dimensional graphics. Background Art
[0004] Recently, a novel method for compressing point clouds based on projections from 3D to 2D is being standardized. This method, also known as V - PCC (Video - based Point Cloud Compression), maps 3D point cloud data into several 2D patches, then arranges these patches further into an atlas image, and subsequently encodes the atlas image with a video encoder. The atlas image corresponds to the geometry of the points, the corresponding texture, and an occupancy map indicating which positions are to be considered for point cloud reconstruction.
[0005] In 2017, MPEG has issued a Call for Proposals (CfP) regarding the compression of point clouds. After evaluating several proposals, currently MPEG is considering two different techniques for point cloud compression: 3D native coding and decoding techniques (based on octrees and similar coding methods), or 3D to 2D projection followed by traditional video coding and decoding. In the case of dynamic 3D scenes, MPEG is using test model software (TMC2) based on patch surface modeling, projecting patches from 3D to 2D images, and encoding and decoding the 2D images with a video encoder such as HEVC. This method has proven to be more efficient than native 3D coding and decoding and can achieve competitive bit - rates with acceptable quality. Summary of the Invention
[0006] This document describes a new hash supplementary enhancement information (SEI) message for V3C / V-PCC atlas frames. This message is used to signal hash values calculated for syntax elements associated with each patch. The hash SEI message can be used for V3C / V-PCC tile-level and optionally for atlas-level consistency testing. The hash can be used to confirm that the values decoded by the decoder are the same as the original values encoded by the encoder.
[0007] In one aspect, a method includes encoding point cloud content to generate encoded point cloud content, generating and sending hash information, decoding the encoded point cloud content, and verifying the decoded content using the hash information. Encoding the point cloud content includes using a V-PCC encoding implementation that compresses the point cloud based on a 3D-to-2D projection, where encoding the point cloud content includes mapping 3D point cloud data into a number of 2D patches and arranging the patches into an atlas image, and then encoding the atlas image with a video encoder, where the atlas image corresponds to the geometry of the points, the corresponding texture, and an occupancy map indicating which positions are to be considered for point cloud reconstruction. Generating hash information using syntax elements and / or variable values of the point cloud content. Sending hash information for the atlas. Sending hash information for block-to-patch of the atlas. Sending hash information for a tile. Sending hash information for block-to-patch of a tile. Sending the hash information in a supplementary enhancement information (SEI) message. The SEI message includes tile-based "BlockToPatchMap[][]" hash value information. Using an implementation selected from the group consisting of MD5, CRC, and checksum to generate the hash information.
[0008] In another aspect, a device includes a non-transitory memory for storing an application for: receiving encoded point cloud content, receiving hash information, decoding the encoded point cloud content, and verifying the decoded content using the hash information, and a processor coupled to the memory and configured to process the application. Generating hash information using syntax elements and / or variable values of the point cloud content. Sending hash information for the atlas. Sending hash information for block-to-patch of the atlas. Sending hash information for a tile. Sending hash information for block-to-patch of a tile. The hash information is sent in a supplementary enhancement information (SEI) message. The SEI message includes tile-based "BlockToPatchMap[][]" hash value information. Using an implementation selected from the group consisting of MD5, CRC, and checksum to generate the hash information.
[0009] In another aspect, a system includes one or more cameras for acquiring three-dimensional content, an encoder for encoding the three-dimensional content to generate encoded point cloud content and generating and sending hash information, and a decoder for decoding the encoded point cloud content and verifying the decoded content using the hash information. Encoding the three-dimensional content includes a V-PCC encoding implementation that compresses the three-dimensional content using a projection from 3D to 2D, where encoding the three-dimensional content includes mapping the 3D point cloud data into a number of 2D patches and arranging the patches into an atlas image, and then encoding the atlas image with a video encoder, where the atlas image corresponds to the geometry of the points, the corresponding texture, and an occupancy map indicating which positions to consider for point cloud reconstruction. Generating hash information using the syntax elements and / or variable values of the three-dimensional content. Sending the hash information for the atlas. Sending the hash information for the block-to-patch of the atlas. Sending the hash information for the tile. Sending the hash information for the block-to-patch of the tile. Sending the hash information in a Supplemental Enhancement Information (SEI) message. The SEI message includes the "BlockToPatchMap[][]" hash value information based on the tile. Using an implementation selected from the group consisting of MD5, CRC, and checksum to generate the hash information. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1 FIG. illustrates a flow chart of a method for encoding and decoding content according to some embodiments.
[0011] Figure 2 FIG. illustrates a flow chart of generating a hash according to some embodiments.
[0012] Figure 3 FIG. illustrates a diagram of a system configured to implement a hash according to some embodiments.
[0013] Figure 4 FIG. illustrates a block diagram of an exemplary computing device configured to implement a decoded tile hash SEI message according to some embodiments. DETAILED DESCRIPTION
[0014] A new hash Supplemental Enhancement Information (SEI) message for V3C / V-PCC atlas frames is described herein. It is used to signal the hash values calculated for all syntax elements associated with each patch in tile and patch scan order. It is also asserted that the hash SEI message can be used for V3C / V-PCC tile level and optionally for atlas level consistency testing.
[0015] Hashes can be used to confirm that the values decoded by the decoder are the same as the original values encoded by the encoder.
[0016] Decoded atlas information hash SEI message
[0017] It has been pointed out that a decoder that can correctly determine the "BlockToPatchMap[][]" information may not be able to correctly decode other information important for point cloud reconstruction. Described herein is an atlas information hash SEI message with an option that includes tile-based "BlockToPatchMap[][]" hash value information. This combination ensures the correct decoding of block-to-volume information and the reconstruction of volume boxes corresponding to 2D-to-3D patch transforms.
[0018] Decoded atlas information hash SEI message syntax
[0019] Table 1 provides the syntax structure of the decoded atlas information hash SEI message. It is a suffix SEI message and should be carried in a NAL unit of type NAL_SUFFIX_SEI and its payloadType value is set to 21. The main applications of the decoded atlas information hash SEI message are for debugging purposes and for conformance testing of atlas decoders. Options are provided for both tile-based and atlas-based hash value calculations. This is done by traversing all elements associated with each patch within a tile and all tiles within an atlas. For example, for non-EOM and RAW patches, the variables Patch2dPosX[p], Patch2dPosY[p], Patch2dSizeX[p], Patch2dSizeY[p], Patch3dPosX[p], Patch3dPosY[p], Patch3dPosMinZ[p], PatchOrientationIndex[p], PatchLoDScaleX[p], and PatchLoDScaleY[p] should be processed within the tile in a pre-specified order, followed by the patch encoding / decoding order. A similar approach can also be taken for EOM / RAW patches, also depending on whether these patches are related to the regular stream or the auxiliary stream. Several high-level variables / syntax elements including a "frame header" used for atlas-based hash message checksum calculation are included.
[0020]
[0021]
[0022]
[0023] Table 1: Decoded atlas information hash SEI syntax
[0024] Decoded atlas information SEI message semantics
[0025] The semantics of the fields of the decoded atlas information hash SEI message are as follows:
[0026] First, assume that all syntax elements are stored as unsigned 16-bit numbers. Starting from the high-level syntax variables, the derivation of the atlas-level hash value is as follows.
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033] Similarly, for the atlas-based BlockToPatch[][], the following exists:
[0034]
[0035]
[0036] The derivation of the tile-based hash value is as follows:
[0037]
[0038]
[0039]
[0040] For the tile-based BlockToPatch[][], the atlasB2pData[] array is generated as follows:
[0041] daih_hash_type indicates the method used to calculate the checksum according to Table 2 below. Values of daih_hash_type not listed in the table are reserved for future use by ITU-T|ISO / IEC and shall not be present in the bitstream of this version that complies with this specification. The decoder shall ignore the decoded picture hash SEI messages containing the reserved values of hash_type.
[0042]
[0043] Table 2: Atlas Hash Types
[0044] The daih_decoded_atlas_hash_present_flag: being equal to 1 specifies the presence of the daih_atlas_md5[i], daih_atlas_crc, or daih_atlas_checksum syntax elements.
[0045] The daih_decoded_atlas_hash_present_flag being equal to 0 specifies that the daih_atlas_md5[i], daih_atlas_crc, or daih_atlas_checksum syntax elements will not be present.
[0046] The daih_decoded_atlas_b2p_hash_present_flag: being equal to 1 specifies the presence of the daih_atlas_b2p_md5[i], daih_atlas_b2p_crc, or daih_atlas_b2p_checksum syntax elements.
[0047] The daih_decoded_atlas_b2p_hash_present_flag being equal to 0 specifies that the daih_atlas_b2p_md5[i], daih_atlas_b2p_crc, or daih_atlas_b2p_checksum will not be present.
[0048] The daih_decoded_atlas_tiles_hash_present_flag: being equal to 1 specifies the presence of the daih_atlas_tiles_md5[i], daih_atlas_tiles_crc, or daih_atlas_tiles_checksum syntax elements.
[0049] The daih_decoded_atlas_tiles_hash_present_flag being equal to 0 specifies that the daih_atlas_tiles_md5[i], daih_atlas_tiles_crc, or daih_atlas_tiles_checksum syntax elements will not be present.
[0050] The daih_atlas_tiles_b2p_hash_present_flag: being equal to 1 specifies the presence of the daih_atlas_tiles_b2p_md5[i], daih_atlas_tiles_b2p_crc, or daih_atlas_tiles_b2p_checksum syntax elements.
[0051] The daih_atlas_tiles_b2p_hash_present_flag being equal to 0 specifies that daih_atlas_tiles_b2p_md5[i], daih_atlas_tiles_b2p_crc, or daih_atlas_tiles_b2p_checksum will not be present.
[0052] daih_atlas_md5[i] is the 16-byte MD5 hash of the decoded atlas associated with vuh_atlas_id. The value of daih_atlas_md5[i] shall be equal to the value of digestVal obtained as follows using the MD5 function defined in IETF RFC 1321:
[0053] MD5Init(context)
[0054] MD5Update(context, atlasData, aLen)
[0055] MD5Final(digestVal, context)
[0056] daih_atlas_crc is the Cyclic Redundancy Check (CRC) of the decoded atlas associated with vuh_atlas_id. The value of daih_atlas_crc shall be equal to the value of crcVal obtained as follows using the CRC specification defined in Rec.1 ITU-T H.271:
[0057]
[0058] daih_atlas_checksum is the checksum of the decoded atlas associated with vuh_atlas_id. The value of daih_atlas_checksum shall be equal to the value of checksumVal obtained:
[0059]
[0060] daih_atlas_b2p_md5[i] is the 16-byte MD5 hash of BlockToPatch[][] of the atlas associated with vuh_atlas_id. The value of daih_atlas_b2p_md5[i] shall be equal to the value of digestVal obtained as follows using the MD5 function defined in IETF RFC 1321:
[0061] MD5Init(context)
[0062] MD5Update(context, atlasB2pData, b2paLen)
[0063] MD5Final(digestVal, context)
[0064] daih_atlas_b2p_crc is the Cyclic Redundancy Check (CRC) of the decoded atlas associated with vuh_atlas_id. The value of daih_atlas_b2p_crc shall be equal to the value of crcVal obtained as follows using the CRC specification defined in Rec. ITU-T H.271:
[0065]
[0066] daih_atlas_b2p_checksum is the checksum of the decoded atlas associated with vuh_atlas_id. The value of daih_atlas_b2p_checksum shall be equal to the value of checksumVal obtained as follows:
[0067]
[0068]
[0069] daih_num_tiles_minus1 + 1 specifies the number of tiles for which the hash value will be signaled. The value of daih_num_tiles_minus1 shall be in the range from 0 to afti_num_tiles_in_atlas_frame_minus1, inclusive of the endpoints.
[0070] daih_tile_id_len_minus1 plus 1 specifies the number of bits used to represent the syntax element daih_tile_id[t]. The value of daih_tile_id_len_minus1 shall be in the range from 0 to Ceil(Log2(afti_num_tiles_in_atlas_frame_minus1 + 1)), inclusive of the endpoints. The value of 1<<(daih_tile_id_len_minus1 + 1) shall be greater than or equal to daih_num_tile_minus1 + 1.
[0071] daih_tile_id[t] specifies the tile ID of the t-th tile. The length of the daih_tile_id[t] syntax element is daih_tile_id_len_minus1 + 1 bits. When absent, the value of daih_tile_id[t] is inferred to be equal to t.
[0072] daih_atlas_tiles_md5[t][i] is the 16-byte MD5 hash of the t-th tile. The value of daih_atlas_tiles_md5[t][i] shall be equal to the value of digestVal obtained as follows using the MD5 function defined in IETF RFC 1321:
[0073] MD5Init(context)
[0074] MD5Update(context, tileData[t], dataLen[t])
[0075] MD5Final(digestVal, context)
[0076] daih_atlas_tiles_crc[t] is the cyclic redundancy check (CRC) of the decoded atlas tile with tile ID t associated with vuh_atlas_id. The value of daih_atlas_tiles_crc shall be equal to the value of crcVal obtained as follows using the CRC specification defined in Rec. ITU-T H.271:
[0077]
[0078]
[0079] daih_atlas_tiles_checksum[t] is the checksum of the decoded atlas tile with tile ID t associated with vuh_atlas_id. The value of daih_atlas_tile_checksum shall be equal to the value of checksumVal obtained:
[0080]
[0081] daih_atlas_tiles_b2p_md5[t][i] is the 16-byte MD5 hash of the t-th tile BlockToPatchMap[][]. The value of daih_blk2patch_md5[t][i] shall be equal to the value of digestVal[t] obtained as follows using the MD5 function defined in IETF RFC 1321: MD5Init(context)
[0082] MD5Update(context, tileB2pData[t], dataB2pLen[t])
[0083] MD5Final(digestVal, context)
[0084] daih_atlas_tiles_b2p_crc[t] is the cyclic redundancy check (CRC) of the decoded atlas tile BlockToPatchMap[][] with tile ID t associated with vuh_atlas_id. The value of daih_atlas_tiles_b2p_crc shall be equal to the value of crcVal obtained as follows using the CRC specification defined in Rec. ITU-T H.271:
[0085]
[0086]
[0087] daih_atlas_tiles_b2p_checksum[t] is the checksum of the decoded atlas tile BlockToPatchMap[][] with tile ID t associated with vuh_atlas_id. The value of daih_atlas_tile_checksum shall be equal to the value of checksumVal obtained as follows:
[0088] This document describes the decoded atlas information hash SEI message and its syntax and semantics. To ensure the correct decoding of block-to-volume information and the correct reconstruction of volume data at consistency point A, the "BlockToPatch" hash value is also included. In addition to the md5 method for checksum calculation, two other hash types are listed for potential scalability, namely: CRC and checksum. A part similar to Annex B may be included in the V3C / V-PCC specification to provide examples for the nominal derivation of hash checksum values. Several variables related to the high-level syntax elements used in Annex B and used for reconstructing part H.9 may be included as the "frame header" for hash message checksum calculation.
[0089] Figure 1The figure shows a flowchart of a method for encoding and decoding content according to some embodiments. In step 100, the point cloud content is encoded. The content can be encoded in any way (such as using a V-PCC encoding implementation that compresses the point cloud based on a projection from 3D to 2D). This method maps the 3D point cloud data into a number of 2D patches, then further arranges these patches into an atlas image, and subsequently encodes the atlas image with a video encoder. The atlas image corresponds to the geometry of the points, the corresponding texture, and an occupancy map indicating which positions are to be considered for point cloud reconstruction. Two possible MPEG techniques for point cloud compression include: 3D native codec techniques (based on octrees and similar codec methods), or 3D to 2D projection followed by traditional video codec. In the case of a dynamic 3D scene, MPEG is using test model software (TMC2) based on patch surface modeling, projecting the patches from 3D to 2D images, and encoding and decoding the 2D images with a video encoder such as HEVC.
[0090] In step 102, a hash is generated and sent. As described herein, the hash is generated using the syntax elements of the content and / or variable values. In some embodiments, the hash for the atlas or the hash from the block to the patch for the atlas is sent. In some embodiments, the hash for the tile or the hash from the block to the patch for the tile is sent. The hash is sent in an SEI message.
[0091] In step 104, the encoded content (point cloud) is decoded. Any decoder (such as an MPEG implementation) can be used.
[0092] In step 106, the decoded content is verified using the hash information. The decoded content is verified using the hash information via any hash comparison technique.
[0093] In some embodiments, fewer or additional steps can be implemented. In some embodiments, the order of the steps is modified.
[0094] Figure 2The figure illustrates a flowchart of generating a hash according to some embodiments. Previously, the hash was based on luminance, color, and / or other pixel values. In step 200, a string of bytes is generated by combining the values of the syntax elements of the content (e.g., an atlas or a tile) or other information. For example, for an atlas, the frame width is placed in two bytes (or some other value). Then, the frame height is the next two bytes. Other syntax elements and variable values of the (atlas) are added to this string to generate a large string (e.g., 256 bytes). In step 202, a hash algorithm is applied to the string of bytes to generate a hash. The hash algorithm can be selected based on the defined variable. For example, a lookup table or a database can store multiple hash algorithms or similar algorithms (e.g., cyclic redundancy check), and based on the defined variable, the selected hash algorithm is applied. As discussed herein, the variable value 0 corresponds to the hash algorithm MD5, the variable value 1 corresponds to CRC, and the variable value 2 corresponds to checksum, while additional variable values can be reserved for additional hash algorithms. In some embodiments, fewer or additional steps are implemented. In some embodiments, the order of the steps is modified.
[0095] Figure 3 The figure illustrates a diagram of a system configured to implement a hash according to some embodiments. The encoder 300 is configured to implement an encoding process. As described herein, any encoding (such as V-PCC encoding) can be implemented using one or more MPEG implementations. In addition, the encoder generates hash information to be transmitted with the encoded content. The encoded information and the hash information can be directly transmitted to the decoder 304 or transmitted through the network 302. The network can be any type of network (such as a local area network (LAN), the Internet, a wireless network, a wired network, a cellular network, and / or any other network or combination of networks). The decoder 304 decodes the encoded content and uses the hash information to verify the decoded content.
[0096] Figure 4The block diagram of an exemplary computing device configured to implement the decoded tile hash SEI message according to some embodiments is illustrated. The computing device 400 can be used to acquire, store, calculate, process, transmit, and / or display information (such as images and videos including 3D content). The computing device 400 can implement any encoding / decoding aspect. Generally, the hardware structure suitable for implementing the computing device 400 includes a network interface 402, a memory 404, a processor 406, one or more I / O devices 408, a bus 410, and a storage device 412. The choice of the processor is not important as long as a suitable processor with sufficient speed is selected. The memory 404 can be any conventional computer memory known in the art. The storage device 412 can include a hard disk drive, a CDROM, a CDRW, a DVD, a DVDRW, a high-definition disc / drive, an ultra-high-definition drive, a flash memory card, or any other storage device. The computing device 400 can include one or more network interfaces 402. Examples of network interfaces include network cards connected to Ethernet or other types of LANs. The one or more I / O devices 408 can include one or more of the following: a keyboard, a mouse, a monitor, a screen, a printer, a modem, a touch screen, a button interface, and other devices. The decoded tile hash SEI message application 430 for implementing the decoded tile hash SEI message embodiment is likely to be stored in the storage device 412 and the memory 404 and is processed when the application is generally processed. Figure 4 More or fewer components shown in Figure 4 can be included in the computing device 400. In some embodiments, the decoded tile hash SEI message hardware 420 is included. Although Figure 4 the computing device 400 in Figure 4 includes the application 430 and the hardware 420 for the decoded tile hash SEI message embodiment, the decoded tile hash SEI message can be implemented on the computing device in hardware, firmware, software, or any combination thereof. For example, in some embodiments, the decoded tile hash SEI message application 430 is programmed in the memory and executed using the processor. In another example, in some embodiments, the decoded tile hash SEI message hardware 420 is a programmed hardware logic including gates specifically designed to implement the decoded tile hash SEI message.
[0097] In some embodiments, the decoded tile hash SEI message application 430 includes several applications and / or modules. In some embodiments, the module further includes one or more sub-modules. In some embodiments, fewer or additional modules can be included.
[0098] Examples of suitable computing devices include personal computers, laptop computers, computer workstations, servers, mainframe computers, handheld computers, personal digital assistants, cellular / mobile phones, smart appliances, gaming consoles, digital cameras, digital video cameras, camera phones, smartphones, portable music players, tablet computers, mobile devices, video players, video disc burners / players (e.g., DVD burners / players, high-definition disc burners / players, ultra-high-definition disc burners / players), televisions, home entertainment systems, augmented reality devices, virtual reality devices, smart jewelry (e.g., smartwatches), vehicles (e.g., self-driving vehicles), or any other suitable computing device.
[0099] To utilize the decoded tile hash SEI message, a device obtains or receives 3D content (e.g., point cloud content) and processes and / or transmits content with an SEI message containing hash information to ensure that the 3D content is correctly decoded. The decoded tile hash SEI message can be implemented with user assistance or automatically without user participation.
[0100] In operation, compared to previous embodiments, the decoded tile hash SEI message enables more efficient and accurate 3D content encoding.
[0101] Some embodiments of the decoded tile hash SEI message for V3C / V-PCC
[0102] 1. A method, comprising:
[0103] Encoding point cloud content to generate encoded point cloud content;
[0104] Generating and transmitting hash information;
[0105] Decoding the encoded point cloud content; and
[0106] Verifying the decoded content using the hash information.
[0107] 2. The method according to clause 1, wherein encoding the point cloud content includes using a V-PCC encoding implementation that compresses the point cloud based on a 3D-to-2D projection, wherein encoding the point cloud content includes mapping the 3D point cloud data into a number of 2D patches and arranging the patches into an atlas image, and then encoding the atlas image with a video encoder, wherein the atlas image corresponds to the geometry of the points, the corresponding texture, and an occupancy map indicating which positions are to be considered for point cloud reconstruction.
[0108] 3. The method according to clause 1, wherein the hash information is generated using syntax elements and / or variable values of the point cloud content.
[0109] 4. The method according to clause 1, wherein hash information for an atlas is sent.
[0110] 5. The method according to clause 1, wherein hash information for block-to-patch of an atlas is sent.
[0111] 6. The method according to clause 1, wherein hash information for a tile is sent.
[0112] 7. The method according to clause 1, wherein hash information for block-to-patch of a tile is sent.
[0113] 8. The method according to clause 1, wherein the hash information is sent in a Supplemental Enhancement Information (SEI) message.
[0114] 9. The method according to clause 8, wherein the SEI message includes hash value information of "BlockToPatchMap[][]" based on tiles.
[0115] 10. The method according to clause 1, wherein the hash information is generated using an implementation selected from the group consisting of MD5, CRC, and checksum.
[0116] 11. An apparatus, comprising:
[0117] A non-transitory memory for storing an application that is configured to:
[0118] Receive encoded point cloud content;
[0119] Receive hash information;
[0120] Decode the encoded point cloud content; and
[0121] Verify the decoded content using the hash information; and
[0122] A processor coupled to the memory and configured to process the application.
[0123] 12. The apparatus according to clause 11, wherein the hash information is generated using syntax elements and / or variable values of the point cloud content.
[0124] 13. The apparatus according to clause 11, wherein hash information for an atlas is sent.
[0125] 14. The apparatus according to clause 11, wherein hash information for block-to-patch of an atlas is sent.
[0126] 15. The apparatus according to clause 11, wherein hash information for a tile is sent.
[0127] 16. The apparatus according to clause 11, wherein hash information for block-to-patch of a tile is sent.
[0128] 17. The apparatus as described in clause 11, wherein the hash information is sent in a supplementary enhancement information (SEI) message.
[0129] 18. The apparatus as described in clause 17, wherein the SEI message includes tile-based "BlockToPatchMap[][]" hash value information.
[0130] 19. The apparatus as described in clause 11, wherein the hash information is generated using an implementation selected from the group consisting of MD5, CRC, and checksum.
[0131] 20. A system, comprising:
[0132] One or more cameras for acquiring three-dimensional content;
[0133] An encoder for:
[0134] Encoding the three-dimensional content to generate encoded point cloud content; and
[0135] Generating and sending hash information; and
[0136] A decoder for:
[0137] Decoding the encoded point cloud content; and
[0138] Verifying the decoded content using the hash information.
[0139] 21. The system as described in clause 20, wherein encoding the three-dimensional content includes using a V-PCC encoding implementation that compresses the three-dimensional content based on a 3D-to-2D projection, wherein encoding the three-dimensional content includes mapping 3D point cloud data into a number of 2D patches and arranging the patches into an atlas image, and then encoding the atlas image with a video encoder, wherein the atlas image corresponds to the geometry of the points, the corresponding texture, and an occupancy map indicating which positions are to be considered for point cloud reconstruction.
[0140] 22. The system as described in clause 20, wherein the hash information is generated using syntax elements and / or variable values of the three-dimensional content.
[0141] 23. The system as described in clause 20, wherein hash information for the atlas is sent.
[0142] 24. The system as described in clause 20, wherein hash information for block-to-patch of the atlas is sent.
[0143] 25. The system as described in clause 20, wherein hash information for tiles is sent.
[0144] 26. The system as described in clause 20, wherein block-to-patch hash information for a tile is sent.
[0145] 27. The system as described in clause 20, wherein the hash information is sent in a Supplemental Enhancement Information (SEI) message.
[0146] 28. The system as described in clause 27, wherein the SEI message includes tile-based "BlockToPatchMap[][]" hash value information.
[0147] 29. The system as described in clause 20, wherein the hash information is generated using an implementation selected from the group consisting of MD5, CRC, and checksum.
[0148] The present invention has been described in terms of specific embodiments with details in order to facilitate understanding of the principles of the construction and operation of the present invention. The reference to such specific embodiments and their details herein is not intended to limit the scope of the appended claims. It will be apparent to those skilled in the art that various other modifications can be made in the embodiments chosen for illustration without departing from the spirit and scope of the invention as defined by the claims.
Claims
1. A coding and decoding method, comprising: Encoding point cloud content to generate encoded point cloud content; Generating hash information for an atlas, wherein generating the hash information includes: combining values of syntax elements of the atlas including the frame width of the atlas, the frame height of the atlas, and a variable value, and applying a hash algorithm to the combined value of the syntax elements, wherein the hash algorithm is selected based on a defined variable using a lookup table storing multiple hash algorithms; Sending the hash information; Decoding the encoded point cloud content; and Verifying the decoded content using the hash information.
2. The coding and decoding method according to claim 1, wherein encoding the point cloud content includes using a V-PCC coding implementation that compresses the point cloud based on a 3D-to-2D projection, wherein encoding the point cloud content includes mapping 3D point cloud data into a number of 2D patches and arranging the patches into an atlas image, and then encoding the atlas image with a video encoder, wherein the atlas image corresponds to the geometry of the points, the corresponding texture, and an occupancy map indicating which positions are to be considered for point cloud reconstruction.
3. The coding and decoding method according to claim 1, wherein block-to-patch hash information for the atlas is sent.
4. The coding and decoding method according to claim 1, wherein hash information for a tile is sent.
5. The coding and decoding method according to claim 1, wherein block-to-patch hash information for a tile is sent.
6. The coding and decoding method according to claim 1, wherein the hash information is sent in a supplementary enhancement information SEI message.
7. The coding and decoding method according to claim 6, wherein the SEI message includes hash value information of "BlockToPatchMap[][]" based on tiles.
8. The coding and decoding method according to claim 1, wherein the hash information is generated using any one of MD5, CRC, and checksum implementations.
9. A coding and decoding apparatus, comprising: A non-transitory memory for storing an application, the application being configured to: Receive encoded point cloud content; Receive hash information for an atlas, wherein the hash information is generated by combining values of syntax elements of the atlas including the frame width of the atlas, the frame height of the atlas, and a variable value, and applying a hash algorithm to the combined value of the syntax elements, wherein the hash algorithm is selected based on a defined variable using a lookup table storing multiple hash algorithms; Decode the encoded point cloud content; And Verify the decoded content using the hash information; And A processor coupled to the memory, the processor being configured to process the application.
10. The coding and decoding apparatus according to claim 9, wherein block-to-patch hash information for the atlas is sent.
11. The coding and decoding apparatus according to claim 9, wherein hash information for a tile is sent.
12. The coding and decoding apparatus according to claim 9, wherein block-to-patch hash information for a tile is sent.
13. The coding and decoding apparatus according to claim 9, wherein the hash information is sent in a supplementary enhancement information SEI message.
14. The codec device according to claim 13, wherein the SEI message includes tile-based "BlockToPatchMap[][]" hash value information.
15. The codec device according to claim 9, wherein the hash information is generated using any one of MD5, CRC, and checksum implementations.
16. A codec system, comprising: One or more cameras for acquiring 3D content; An encoder for: Encoding the 3D content to generate encoded point cloud content; Generating hash information for an atlas, wherein generating the hash information includes: combining values of syntax elements of the atlas including the frame width of the atlas, the frame height of the atlas, and a variable value, and applying a hash algorithm to the combined value of the syntax elements, wherein the hash algorithm is selected based on a defined variable using a lookup table storing multiple hash algorithms; and Transmitting the hash information; and A decoder for: Decoding the encoded point cloud content; and Verifying the decoded content using the hash information.
17. The codec system according to claim 16, wherein encoding the 3D content includes using a V-PCC encoding implementation that compresses the 3D content based on a 3D-to-2D projection, wherein encoding the 3D content includes mapping 3D point cloud data into a number of 2D patches and arranging the patches into an atlas image, and then encoding the atlas image with a video encoder, wherein the atlas image corresponds to the geometry of the points, the corresponding texture, and an occupancy map indicating which positions are to be considered for point cloud reconstruction.
18. The codec system according to claim 16, wherein block-to-patch hash information for the atlas is transmitted.
19. The codec system according to claim 16, wherein tile hash information is transmitted.
20. The codec system according to claim 16, wherein tile-based block-to-patch hash information is transmitted.
21. The codec system according to claim 16, wherein the hash information is transmitted in a supplementary enhancement information SEI message.
22. The codec system according to claim 21, wherein the SEI message includes tile-based "BlockToPatchMap[][]" hash value information.
23. The codec system according to claim 16, wherein the hash information is generated using any one of MD5, CRC, and checksum implementations.
Citation Information
Patent Citations
Handling duplicate points in point cloud compression
US20190197739A1