Handling missing points of a point cloud

By combining a two-layer point cloud encoding structure with a video codec, the problem of dynamic point cloud data compression is solved, achieving high-quality point cloud reconstruction at a limited bit rate, which is suitable for scenarios such as immersive virtual reality and autonomous driving.

CN113615199BActive Publication Date: 2026-01-13INTERDIGITAL VC HOLDINGS INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080022942.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-03-20
Filing Date
2020-01-27
Publication Date
2026-01-13
Estimated Expiration
2040-01-27

AI Technical Summary

Technical Problem

Existing technologies struggle to effectively compress dynamic point cloud data to deliver a high-quality, immersive experience on end-user devices while maintaining reasonable bit rate consumption.

Method used

A two-layer point cloud coding structure is adopted, which provides a lossy representation through a base layer and a higher-quality lossless representation through an enhancement layer. The geometric and texture information of the point cloud is compressed by combining a video codec, and the depth value is transmitted using fixed-length codewords and bitstream signals.

Benefits of technology

It achieves efficient compression of dynamic point cloud data at a limited bit rate, providing high-quality reconstruction results, and is suitable for applications such as immersive virtual reality and autonomous driving.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113615199B_ABST
    Figure CN113615199B_ABST
Patent Text Reader

Abstract

At least one embodiment relates to a method of allocating pixel values of an occupancy map, the pixel values of the occupancy map indicating whether a depth value of at least one 3D sample of a point cloud frame projected along a same projection line is stored as a pixel value of at least one layer or is equal to a fixed length code word representing the depth value of the at least one 3D sample projected along the projection line.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] At least one of the embodiments in this embodiment generally involves the processing of point clouds. Background Technology

[0002] This section is intended to introduce the reader to various aspects of the art, which may relate to at least one aspect of the embodiments described below and / or claimed herein. It is believed that this discussion will help provide the reader with background information to better understand the various aspects of at least one embodiment.

[0003] Point clouds can be used for various purposes, such as cultural heritage / buildings, where objects like statues or buildings are scanned in 3D to share the spatial configuration of the object without having to send or access it. Furthermore, it's a way to ensure the preservation of knowledge about an object in cases where it might be destroyed; for example, a temple after an earthquake. These point clouds are typically static, colored, and massive.

[0004] Another use case is in topography and cartography, where using 3D representation allows maps to be not limited to a flat surface and can include reliefs. Google Maps is now a good example of a 3D map, but it uses a grid instead of point clouds. However, point clouds can be a suitable data format for 3D maps, and such point clouds are typically static, colored, and large.

[0005] The automotive industry and autonomous vehicles are also areas where point clouds can be used. Autonomous vehicles should be able to "detect" their environment to make sound driving decisions based on the reality of their immediate neighbors. Typical sensors such as LiDAR (Light Detection and Ranging) generate dynamic point clouds used by decision engines. These point clouds are not intended for human viewing, and they are typically small, not necessarily colored, and dynamic with a high capture frequency. These point clouds can also possess other properties, such as reflectivity provided by LiDAR, as this property provides good information about the material of the sensed object and can aid in decision-making.

[0006] Virtual reality and immersive worlds have recently become hot topics and are foreshadowed by many as the future of 2D flat video. The basic idea is to immerse the viewer in an environment surrounding them, contrasting with standard TVs where viewers can only see a virtual world in front of them. Immersion exists in several levels depending on the viewer's degree of freedom within the environment. Point clouds are a good candidate format for distributing virtual reality (VR) worlds.

[0007] In many applications, it is important to be able to distribute dynamic point clouds to end users (or store them on servers) while consuming only a reasonable amount of bitrate (or storage space for the application) and maintaining an acceptable (or preferably very good) quality of experience. Efficient compression of these dynamic point clouds is key to making the distribution chain of many immersive worlds practical.

[0008] In view of the foregoing, at least one embodiment has been designed. Summary of the Invention

[0009] The following is a simplified overview of at least one of the embodiments presented to provide a basic understanding of some aspects of this disclosure. This overview is not a comprehensive summary of the embodiments. It is not intended to identify key or essential elements of the embodiments. The following overview presents only some aspects of at least one of the embodiments in a simplified form as a prelude to a more detailed description provided elsewhere in the document.

[0010] According to a general aspect of at least one embodiment, a method is provided comprising: allocating pixel values ​​of an occupied image to indicate that the depth values ​​of at least one 3D sample of a point cloud frame projected along the same projection line are stored as pixel values ​​of at least one depth image, or equal to a fixed-length codeword representing the depth values ​​of at least one 3D sample projected along the projection line.

[0011] According to an embodiment, the method further includes: encoding at least one 3D sample projected along the projection line into bits of a codeword, and skipping the encoding of the depth value of the 3D sample projected along the projection line into bits of the codeword when the depth value has already been encoded into a depth image value.

[0012] According to an embodiment, the method further includes: sending first information indicating whether a fixed-length codeword is used by signaling.

[0013] According to an embodiment, the method further includes: sending second information representing the length of the codeword using a signal.

[0014] According to an embodiment, the first information and / or the second information are transmitted as signals for a sequence of point cloud frames.

[0015] According to an embodiment, the first information and / or the second information are transmitted by signal frame or slice.

[0016] According to another general aspect of at least one embodiment, a signal is provided comprising image data representing pixel values ​​of an occupied image to indicate that the depth value of at least one 3D sample of a point cloud frame projected along the same projection line is stored as the pixel value of at least one depth image, or equal to a fixed-length codeword representing the depth value of at least one 3D sample projected along the projection line.

[0017] According to an embodiment, the signal further includes: first information indicating whether a fixed-length codeword is used.

[0018] According to an embodiment, the signal includes: second information indicating the length of the codeword.

[0019] According to a general aspect of at least one embodiment, a method is provided comprising: obtaining from a bitstream first information indicating whether a fixed-length codeword is used to derive a depth value of at least one 3D sample of a point cloud; and if the first information indicates the use of a fixed-length codeword, then deriving the depth value from a fixed-length codeword representing the depth value of at least one 3D sample projected along a projection line; otherwise, deriving the depth value from codewords having a different length.

[0020] According to an embodiment, the method further includes: obtaining second information representing the length of a codeword from a bit stream.

[0021] One or more of the at least one embodiment also provide an apparatus, a computer program product, and a non-transitory computer-readable medium.

[0022] The specific properties of at least one of the embodiments, as well as other objects, advantages, features, and uses of said at least one of the embodiments, will become apparent from the following description of examples in conjunction with the accompanying drawings. Attached Figure Description

[0023] The accompanying drawings illustrate examples of several embodiments. The drawings show:

[0024] Figure 1 A schematic block diagram illustrating an example of a two-layer point cloud coding structure according to at least one of the embodiments is shown.

[0025] Figure 2 A schematic block diagram illustrating an example of a two-layer point cloud decoding structure according to at least one of the embodiments is shown.

[0026] Figure 3 A schematic block diagram of an example of an image-based point cloud encoder according to at least one of the embodiments is shown;

[0027] Figure 3a An example of a canvas consisting of two patches and their 2D bounding boxes is shown;

[0028] Figure 3b An example of two intermediate 3D samples located between two 3D samples along the projection line is shown;

[0029] Figure 4A schematic block diagram of an example of an image-based point cloud decoder according to at least one of the embodiments is shown;

[0030] Figure 5 An example of a syntax for representing a bitstream of a base layer BL according to at least one of the embodiments is illustrated schematically;

[0031] Figure 6 A schematic block diagram illustrating an example of a system in which various aspects and embodiments are implemented is shown;

[0032] Figure 7 An example of this 3D-to-2D projection using V-PCC is shown;

[0033] Figure 8 A schematic block diagram illustrating an example of a method for encoding and decoding depth values ​​of 3D samples projected along the same projection line, according to at least one embodiment;

[0034] Figure 9 A schematic block diagram illustrating an example of a method for decoding the depth values ​​of 3D samples projected along the same projection line, according to at least one embodiment;

[0035] Figure 10 An example of determining pixel values ​​of an occupancy map according to at least one embodiment is shown;

[0036] Figure 11 An example of determining the pixel values ​​of the occupied map OM(u,v) according to the aforementioned variant is shown;

[0037] Figure 12 An example of determining the pixel values ​​of the occupied graph OM(u,v) according to at least one embodiment is shown;

[0038] Figure 13 Examples of syntax elements for sending information INFO1 and INFO2 by signals, according to at least one embodiment, are shown; and

[0039] Figure 14 An example of syntax elements for sending information INFO1 and INFO2 by signaling, according to at least one embodiment, is shown. Detailed Implementation

[0040] At least one embodiment is described more fully below with reference to the accompanying drawings, in which examples of at least one embodiment are shown. However, embodiments may be embodied in many alternative forms and should not be construed as limited to the examples set forth herein. Therefore, it should be understood that the embodiments are not intended to be limited to the specific forms disclosed. Rather, this disclosure is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this application.

[0041] When the accompanying drawings are presented as flowcharts, it should be understood that they also provide block diagrams of the corresponding apparatus. Similarly, when the accompanying drawings are presented as block diagrams, it should be understood that they also provide flowcharts of the corresponding methods / processes.

[0042] Similar or identical elements in the accompanying drawings are indicated by the same reference numerals.

[0043] Some of the accompanying figures illustrate syntax tables widely used in V-PCC to define the structure of bitstreams conforming to V-PCC. In these syntax tables, the term "..." indicates an unchanged portion of the syntax relative to the original definition given in V-PCC and is removed from the figures for ease of reading. Bold terms in the figures indicate that the value of the term was obtained by parsing the bitstream. The right column of the syntax table indicates the number of bits used to encode the data of the syntax elements. For example, u(4) indicates 4 bits used to encode the data, u(8) indicates 8 bits, and ae(v) indicates a context-adaptive arithmetic entropy encoding / decoding syntax element.

[0044] The aspects described and anticipated below can be realized in many different forms. The following... Figure 1-14 Some embodiments are provided, but other embodiments are contemplated, and Figure 1-14 The discussion does not limit the breadth of implementation methods.

[0045] At least one of these aspects generally relates to point cloud encoding and decoding, and at least one other aspect generally relates to transmitting the generated or encoded bit stream.

[0046] More precisely, the various methods and other aspects described in this paper can be used to modify modules, for example, such as Figure 1-14 The modules shown are PGM (step 3100), encoder OMENC (step 3600), geometry generation module GGM (step 4300), and occupancy map decoder OMDEC (step 4400).

[0047] Furthermore, this aspect is not limited to MPEG standards such as MPEG-I Part 5 which involves point cloud compression, but can be applied to, for example, other standards and recommendations, whether pre-existing or future-developed, and any extensions of such standards and recommendations (including MPEG-I Part 5). Unless otherwise stated or technically excluded, the aspects described in this application may be used alone or in combination.

[0048] In the following text, image data refers to data of one or more arrays of 2D samples, such as in a particular image / video format. A particular image / video format may specify information relating to the pixel values ​​of an image (or video). For example, a particular image / video format may also specify information that can be used by a display and / or any other device to visualize and / or decode the image (or video). An image typically includes a first component in the shape of a first 2D sample array, which typically represents the luminance (or luma) of the image. An image may also include second and third components in the shape of other 2D sample arrays, which typically represent the chroma (or chroma) of the image. Some embodiments use a set of 2D arrays of color samples (such as the conventional three-color RGB representation) to represent the same information.

[0049] In one or more embodiments, pixel values ​​are represented by a vector of C values, where C is the number of components. Each value of the vector is typically represented by multiple bits that can define the dynamic range of the pixel value.

[0050] An image patch represents a set of pixels belonging to an image. The pixel value (or image patch data) of an image patch refers to the value of the pixels belonging to that image patch. Image patches can have any shape, although rectangles are common.

[0051] Point clouds can be represented by a dataset of 3D samples that have unique coordinates in a 3D volumetric space and may also have one or more attributes.

[0052] The 3D samples in this dataset can be defined by their spatial location (X, Y, and Z coordinates in 3D space) and may be defined by one or more associated attributes, such as color represented in RGB or YUV color space, such as transparency, reflectivity, two-component normal vectors, or any feature representing the characteristics of the sample. For example, a 3D sample can be defined by six components (X, Y, Z, R, G, B) or equivalently (X, Y, Z, y, U, V), where (X, Y, Z) defines the coordinates of a point in 3D space, and (R, G, B) or (y, U, V) defines the color of the 3D sample. The same type of attribute can exist multiple times. For example, multiple color attributes can provide color information from different perspectives.

[0053] Point clouds can be static or dynamic, depending on whether the cloud changes relative to time. Instances of static or dynamic point clouds are typically represented as point cloud frames. It should be noted that in the case of dynamic point clouds, the number of points is usually not constant, but rather changes over time. More generally, a point cloud can be considered dynamic if anything changes over time, such as the number of points, the location of one or more points, or any property of any point.

[0054] As an example, a 2D sample can be defined by six components (u, v, Z, R, G, B) or equivalently (u, v, Z, y, U, V). (u, v) defines the coordinates of the 2D sample in the 2D space of the projection plane. Z is the depth value of the 3D sample projected onto the projection plane. (R, G, B) or (y, U, V) defines the color of the 3D sample.

[0055] Figure 1 A schematic block diagram of an example of a two-layer point cloud coding structure 1000 according to at least one of the embodiments is shown.

[0056] A two-layer point cloud coding structure 1000 can provide a bitstream B representing an input point cloud frame IPCF. Possibly, the input point cloud frame IPCF represents a frame of a dynamic point cloud. This frame of the dynamic point cloud can then be encoded independently of another frame by the two-layer point cloud coding structure 1000.

[0057] Essentially, the two-layer point cloud coding structure 1000 provides the ability to construct a bitstream B into a base layer BL and an enhancement layer EL. The base layer BL provides a lossy representation of the input point cloud frame IPCF, and the enhancement layer EL can provide a higher quality (potentially lossless) representation by encoding isolated points not represented by the base layer BL.

[0058] The base layer BL can be composed of, for example Figure 3 The image-based encoder 3000 shown provides a geometry / texture image representing the geometry / attributes of 3D samples of the input point cloud frame IPCF. It allows for the discarding of isolated 3D samples. The base layer BL can be provided by, for example... Figure 4 The image-based decoder 4000 shown decodes the point cloud frame IRPCF, which can be reconstructed from the intermediate image.

[0059] Then, return to Figure 1 The two-layer point cloud encoding 1000 uses a comparator COMP to compare 3D samples from the input point cloud frame IPCF with 3D samples from the intermediate reconstructed point cloud frame IRPCF to detect / locate missing / isolated 3D samples. Next, the encoder ENC encodes the missing 3D samples and provides an enhancement layer EL. Finally, the base layer BL and the enhancement layer EL are multiplexed together by a multiplexer MUX to generate a bitstream B.

[0060] According to an embodiment, the encoder ENC may include a detector that can detect a 3D reference sample R of an intermediate reconstructed point cloud frame IRPCF and associate it with a missing 3D sample M.

[0061] For example, based on a given metric, a 3D reference sample R associated with a missing 3D sample M can be M’s nearest neighbor.

[0062] According to an embodiment, the encoder ENC can then encode the spatial location and attributes of the missing 3D sample M into a difference determined based on the spatial location and attributes of the 3D reference sample R.

[0063] In the variant, these differences can be encoded individually.

[0064] For example, for a 3D sample M with missing spatial coordinates x(M), y(M), and z(M), the x-coordinate position difference Dx(M), y-coordinate position difference Dy(M), z-coordinate position difference Dz(M), R-attribute component difference Dr(M), G-attribute component difference Dg(M), and B-attribute component difference Db(M) can be calculated as follows:

[0065] Dx(M) = x(M) - x(R),

[0066] Where x(M) is formed by Figure 3 The x-coordinates of 3D samples M and R in the provided geometric image.

[0067] Dy(M)=y(M)-y(R)

[0068] Where y(M) is composed of Figure 3 The y-coordinates of 3D samples M and R in the provided geometric image.

[0069] Dz(M)=z(M)-z(R)

[0070] Where z(M) is formed by Figure 3 The z-coordinates of 3D samples M and R in the provided geometric image.

[0071] Dr(M) = R(M) - R(R).

[0072] Where R(M) and R(R) are the r-color components of the color attributes of 3D samples M and R, respectively.

[0073] Dg(M)=G(M)-G(R).

[0074] Wherein, G(M) and G(R) are the g color components of the color attributes of 3D samples M and R, respectively.

[0075] Db(M)=B(M)-B(R).

[0076] Where B(M) and B(R) are the b color components of the color attributes of 3D samples M and R, respectively.

[0077] Figure 2A schematic block diagram of an example of a two-layer point cloud decoding structure 2000 according to at least one of the embodiments is shown.

[0078] The behavior of the two-layer point cloud decoding structure 2000 depends on its capabilities.

[0079] The limited-capacity two-layer point cloud decoding architecture 2000 can access the base layer BL from only the bitstream B using the demultiplexer DMUX, and then can be decoded by means of... Figure 4 The point cloud decoder 4000 shown decodes the base layer BL to provide an accurate (but lossy) version of the input point cloud frame IPCF, IRPCF.

[0080] The fully capable two-layer point cloud decoding architecture 2000 can access both the base layer BL and the enhancement layer EL from the bitstream B using the demultiplexer DMUX. Figure 4 As shown, the point cloud decoder 4000 can determine the intermediate reconstructed point cloud frame IRPCF from the base layer BL. The decoder DEC can determine the complementary point cloud frame CPCF from the enhancement layer EL. Then, the combiner COM can combine the intermediate reconstructed point cloud frame IRPCF and the complementary point cloud frame CPCF together to provide a higher quality (potentially lossless) representation (reconstruction) of the input point cloud frame IPCF (CRPCF).

[0081] Figure 3 A schematic block diagram of an example of an image-based point cloud encoder 3000 according to at least one of the embodiments is shown.

[0082] The image-based point cloud encoder 3000 utilizes existing video codecs to compress the geometric and texture (attribute) information of dynamic point clouds. This is essentially achieved by transforming the point cloud data into a set of different video sequences.

[0083] In a particular embodiment, two videos can be generated and compressed using existing video codecs: one video to capture geometric information from point cloud data, and another video to capture texture information. An example of an existing video codec is the HEVC master profile encoder / decoder (ITU-T H.265, ITU (02 / 2018) Telecommunications Standardization Sector, Series H: Audiovisual and Multimedia Systems, Infrastructure for Audiovisual Services – Encoding and Decoding of Mobile Video, Efficient Video Encoding and Decoding, Recommended by ITU-T H.265).

[0084] Additional metadata used to interpret the two videos is typically generated and compressed separately. Such additional metadata includes, for example, occupancy map (OM) and / or supplementary video information (PI).

[0085] The generated video bitstream and metadata can then be multiplexed together to generate a combined bitstream.

[0086] It should be noted that metadata typically represents a small amount of overall information. Most of the information is in the video bitstream.

[0087] An example of this point cloud encoding / decoding process is given by the Test Model Category 2 algorithm (also referred to as V-PCC) that implements the MPEG draft standard defined in ISO / IEC JTC1 / SC29 / WG11 MPEG2019 / w18180 (January 2019, Marrakesh).

[0088] In step 3100, module PGM can generate at least one slice by decomposing 3D samples of the dataset representing the input point cloud frame IPCF into 2D samples on the projection plane using a strategy that provides optimal compression.

[0089] A slice can be defined as a collection of 2D samples.

[0090] For example, in V-PCC, the normal of each 3D sample is first estimated as described by Hoppe et al. (Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald, Werner Stuetzle. Surface Reconstruction of Unorganized Points. Proceedings of ACM Signal Graphics 1992, pp. 71-78). Next, an initial clustering of the input point cloud frame IPCF is obtained by associating each 3D sample with one of six oriented planes of the 3D bounding box containing the 3D samples of the input point cloud frame IPCF. More precisely, each 3D sample is clustered and associated with the oriented plane that has the closest normal (i.e., maximizes the dot product of the point normal and the plane normal). The 3D samples are then projected onto their associated planes. The set of 3D samples that form connected regions in their planes is called a connected component. A connected component is a set of at least one 3D sample with similar normals and the same associated oriented plane. The initial clustering is then refined by iteratively updating the clusters associated with each 3D sample based on its normal and its nearest neighbor. The final step involves generating a patch from each connected region, which is accomplished by projecting the 3D sample of each connected region onto an orientation plane associated with that region. Patches are associated with auxiliary patch information PI, which represents auxiliary patch information defined for each patch to interpret the projected 2D samples corresponding to geometric and / or attribute information.

[0091] In V-PCC, for example, the auxiliary piece information PI includes: 1) information indicating one of the six orientation planes of the 3D bounding box containing the 3D sample of the connected region; 2) information relative to the plane normal; 3) information determining the 3D position of the connected region relative to the piece, expressed in terms of depth, tangent offset, and double tangent offset; and 4) information such as coordinates (u0, v0, u1, v1) in the projection plane that defines the 2D bounding box containing the piece.

[0092] In step 3200, the Piece Packing Module (PPM) can map (place) at least one generated piece onto a 2D grid (also called a canvas) without any overlap in a manner that typically minimizes unused space, and can guarantee that each TxT (e.g., 16×16) block of the 2D grid is associated with a unique piece. A given minimum block size TxT of the 2D grid can specify the minimum distance between different pieces placed on that 2D grid. The 2D grid resolution can depend on the input point cloud size and its width W and height H, and the block size T can be sent as metadata to the decoder.

[0093] The PI (Picture Information) can also include information related to the relationships between blocks and pieces in the 2D mesh.

[0094] In V-PCC, auxiliary information PI can include block-to-patch information that determines the association between block and patch indices of a 2D mesh.

[0095] Figure 3a An example of a canvas C is shown, comprising two pieces P1 and P2 and their associated 2D bounding boxes B1 and B2. Note that the two bounding boxes can overlap within canvas C, as shown below. Figure 3a As shown. The 2D mesh (canvas division) is represented only inside the bounding boxes, but canvas division also occurs outside those bounding boxes. The bounding boxes associated with a piece can be divided into TxT blocks, typically T=16.

[0096] A TxT block containing a 2D sample belonging to a piece can be considered an occupied block. Each occupied block of the canvas is represented by a specific pixel value (e.g., 1) in the Occupation Map OM, and each unoccupied block of the canvas is represented by another specific value (e.g., 0). The pixel values ​​in the Occupation Map OM can then indicate whether a TxT block of the canvas is occupied, i.e., contains a 2D sample belonging to a piece.

[0097] exist Figure 3a In the image, occupied blocks are represented by white blocks, and light gray blocks represent unoccupied blocks. The image generation process (steps 3300 and 3400) utilizes at least one generated patch to map onto the 2D mesh calculated during step 3200 to store the geometry and texture of the input point cloud frame IPCF as an image.

[0098] In step 3300, the geometry image generator GIG can generate at least one geometry image GI based on the input point cloud frame IPCF, occupancy map OM, and auxiliary patch information PI. The geometry image generator GIG can utilize the occupancy map information to detect (locate) occupied blocks, and thus detect (locate) non-empty pixels in the geometry image GI.

[0099] The geometric image GI can represent the geometry of the input point cloud frame IPCF and can be, for example, a W×H pixel monochrome image represented in YUV420-8 bit format.

[0100] To better handle situations where multiple 3D samples are projected (mapped) onto the same 2D sample (along the same projection direction (line)) onto a projection plane, multiple images called layers can be generated. Therefore, different depth values ​​D1, ..., Dn can be associated with 2D samples of a layer, and multiple geometric images can then be generated.

[0101] In V-PCC, 2D samples of a sheet are projected onto two layers. The first layer (also called the near layer) can store, for example, a depth value D0 associated with a 2D sample of smaller depth. The second layer (called the far layer) can store, for example, a depth value D1 associated with a 2D sample of larger depth. For example, the information stored by the second depth image can be within the interval [0, Δ] corresponding to depth values ​​in the range [D0, D0+Δ], where Δ is a user-defined parameter describing the surface thickness.

[0102] In this way, the second layer can contain significant contour-like high-frequency features. Therefore, it is evident that encoding and decoding the second depth image may be difficult using conventional video codecs, resulting in poor depth value reconstruction from the decoded second depth image, which leads to poor geometric quality of the reconstructed point cloud frame.

[0103] According to an embodiment, the geometric image generation module GIG can encode (derive) depth values ​​associated with 2D samples of the first and second layers by using auxiliary piece information PI.

[0104] In V-PCC, the position of a 3D sample in a slice with a corresponding connected region can be represented by depth δ(u, v), tangent offset s(u, v), and double tangent offset r(u, v) as follows:

[0105] δ(u, v) = δ0 + g(u, v)

[0106] s(u, v) = s0 - u0 + u

[0107] r(u, v) = r0 - v0 + v

[0108] Where g(u, v) is the luminance component of the geometric image, (u, v) is the pixel associated with the 3D sample on the projection plane, (δ0, s0, r0) is the 3D position of the corresponding patch of the connected region to which the 3D sample belongs, and (u0, v0, u1, v1) are the coordinates in the projection plane, which defines a 2D bounding box containing the projection of the patch associated with the connected region.

[0109] Therefore, the geometry image generation module GIG can encode (derive) the depth values ​​associated with 2D samples of a layer (the first layer, the second layer, or both) into a brightness component g(u, v) given by the following equation: g(u, v) = δ(u, v) - δ0. Note that this relationship can be used to reconstruct the 3D sample locations (δ0, s0, r0) from the reconstructed geometry image g(u, v) with accompanying auxiliary patch information PI.

[0110] According to an embodiment, the projection mode can be used to indicate whether the first geometric image GI0 can store the depth value of a 2D sample of the first or second layer, and whether the second geometric image GI1 can store the depth value associated with a 2D sample of the second or first layer.

[0111] For example, when the projection mode is equal to 0, the first geometric image GI0 can store the depth values ​​of the 2D samples of the first layer, and the second geometric image GI1 can store the depth values ​​associated with the 2D samples of the second layer. Conversely, when the projection mode is equal to 1, the first geometric image GI0 can store the depth values ​​of the 2D samples of the second layer, and the second geometric image GI1 can store the depth values ​​associated with the 2D samples of the first layer.

[0112] According to an embodiment, a frame projection mode can be used to indicate whether a fixed projection mode is used for all slices or whether a variable projection mode is used, in which each slice can use a different projection mode.

[0113] Projection modes and / or frame projection modes can be sent as metadata.

[0114] For example, a frame projection mode decision algorithm can be provided in Section 2.2.1.3.1 of V-PCC.

[0115] According to an embodiment, when a frame projection indication can use a variable projection mode, a slice projection mode can be used to indicate the appropriate mode for (de)projecting slices.

[0116] Slice projection patterns can be sent as metadata and may be information included in the auxiliary slice information (PI).

[0117] For example, the slice projection mode decision algorithm is provided in section 2.2.1.3.2 of V-PCC.

[0118] According to an embodiment of step 3300, the pixel values ​​in a first geometric image (e.g., G10) corresponding to the 2D sample (u, v) of the slice can represent the depth values ​​of at least one intermediate 3D sample defined along a projection line corresponding to the 2D sample (u, v). More specifically, the intermediate 3D samples reside along the projection line and share the same coordinates as the 2D samples (u, v), and the depth value D1 of the 2D samples is encoded and decoded in a second geometric image (e.g., G11). Furthermore, the intermediate 3D samples can have depth values ​​between depth values ​​D0 and D1. A designated bit can be associated with each of the intermediate 3D samples, set to 1 if an intermediate 3D sample exists, and set to 0 otherwise.

[0119] Figure 3b This shows two intermediate 3D samples P1 located between two 3D samples P0 and P1 along the projection line PL. i1 and P i2 Example. 3D samples P0 and P1 have depth values ​​equal to D0 and D1, respectively. Two intermediate 3D samples P i1 and P i2 Depth value D i1 and D i2 They are both greater than D0 and less than D1.

[0120] Then, all the designated bits along the projection line can be concatenated to form a codeword, which is subsequently represented as an Enhanced Occupancy Map (EOM) codeword. Figure 3b As shown, assuming an 8-bit EOM codeword, 2 bits are equal to 1 to indicate two 3D samples P. i1 and P i2 The position. Finally, all EOM codewords can be packaged in an image (e.g., an occupancy map OM). In this case, at least one piece of the canvas can contain at least one EOM codeword. Such a piece is represented as a reference piece, and the blocks of the reference piece are represented as EOM reference blocks. Therefore, the pixel value of the occupancy map OM can be equal to a first value (e.g., 0) to indicate an unoccupied block of the canvas, or equal to another value (e.g., greater than 0) to indicate an occupied block or an EOM reference block of the canvas.

[0121] According to the example, when D1-D0<=1, the pixel value of the occupied map OM can indicate the occupied block, and when D1-D0>1, the pixel value map OM can indicate the EOM reference block of the canvas.

[0122] The position of the pixel in the occupancy diagram OM that indicates the EOM reference block and the bit value of the EOM codeword obtained from the value of those pixels indicate the 3D coordinates of the intermediate 3D sample.

[0123] In step 3400, the texture image generator TIG can be based on the input point cloud frame IPCF, occupancy map OM, auxiliary piece information PI, and data from the video decoder VDEC. Figure 4 The geometry of at least one texture image TI is generated by deriving the geometry of the reconstructed point cloud frame from the output of at least one decoded geometric image DGI in step 4200).

[0124] The texture image TI can represent the texture of the input point cloud frame IPCF, and can be, for example, a W×H pixel image represented in YUV420-8 bit format.

[0125] The texture image generator TG can utilize occupancy map information to detect (locate) occupied blocks and thus detect (locate) non-empty pixels in the texture image.

[0126] The texture image generator TIG can be adapted to generate texture images TI and associate them with each geometry image / layer DGI.

[0127] According to an embodiment, the texture image generator TIG can encode (store) the texture (attribute) value T0 associated with the 2D sample of the first layer as the pixel value of the first texture image TI0, and encode (store) the texture value T1 associated with the 2D sample of the second layer as the pixel value of the second texture image TI1.

[0128] Alternatively, the texture image generation module TIG can encode (store) the texture value T1 associated with the 2D sample of the second layer as the pixel value of the first texture image TI0, and encode (store) the texture value D0 associated with the 2D sample of the first layer as the pixel value of the second geometric image GI1.

[0129] For example, the color of a 3D sample can be obtained as described in Sections 2.2.3, 2.2.4, 2.2.5, 2.2.8, or 2.5 of the V-PCC.

[0130] The texture values ​​of two 3D samples are stored in either the first or second texture image. However, the texture value of the intermediate 3D sample cannot be stored in either the first texture image TI0 or the second texture image TI1 because the position of the projected intermediate 3D sample corresponds to an occupied block that has already been used to store the texture value of another 3D sample (P0 or P1). Figure 3b As shown. Therefore, the texture values ​​of the intermediate 3D sample are stored in an EOM texture block, which is located elsewhere in the first or second texture image at a location defined by the program (Section 9.4.5 of V-PCC). In short, the process determines the location of an unoccupied block in the texture image and stores the texture values ​​associated with the intermediate 3D sample as the pixel values ​​of the unoccupied block (represented as the EOM texture block) of the texture image.

[0131] According to an embodiment, a filling process can be applied to geometric and / or texture images. The filling process can be used to fill the blank spaces between patches to generate a segmented, smooth image suitable for video compression.

[0132] Image filling examples are provided in sections 2.2.6 and 2.2.7 of V-PCC.

[0133] In step 3500, the video encoder VENC can encode the generated image / layer TI and GI.

[0134] In step 3600, the encoder OMENC can encode the occupancy map into an image, for example, as detailed in section 2.2.2 of V-PCC. Lossy or lossless encoding can be used.

[0135] According to an embodiment, the video encoder ENC and / or OMENC can be HEVC-based encoders.

[0136] In step 3700, the encoder PIENC can encode the auxiliary piece information PI and possible additional metadata (such as the block size T, width W, and height H of the geometry / texture image).

[0137] According to an embodiment, auxiliary chip information can be differentially encoded (as defined, for example, in Section 2.4.1 of V-PCC).

[0138] In step 3800, a multiplexer can be applied to the outputs generated in steps 3500, 3600, and 3700, and these outputs can thus be multiplexed together to generate a bitstream representing the base layer (BL). It should be noted that the metadata information represents a small portion of the entire bitstream. A video codec is used to compress most of the information.

[0139] Figure 4 A schematic block diagram of an example of an image-based point cloud decoder 4000 according to at least one of the embodiments is shown.

[0140] In step 4100, a demultiplexer DMUX can be applied to demultiplex the encoded information representing the bit stream of the base layer BL.

[0141] In step 4200, the video decoder VDEC can decode the encoded information to derive at least one decoded geometric image DGI and at least one decoded texture image DTI.

[0142] In step 4300, the decoder OMDEC can decode the encoded information to derive the decoded occupancy graph DOM.

[0143] According to an embodiment, the video decoder VDEC and / or OMDEC can be HEVC-based decoders.

[0144] In step 4400, the decoder PIDEC can decode the encoded information to derive the auxiliary chip information DPI.

[0145] It is possible to derive metadata from the bitstream BL.

[0146] In step 4500, the geometry generation module GGM can derive the geometry RG of the reconstructed point cloud frame IRPCF from at least one decoded geometry image DGI, decoded occupancy map DOM, decoded auxiliary piece information DPI, and possible additional metadata.

[0147] The geometry generation module (GGM) can utilize the decoded occupancy map information (DOM) to locate non-empty pixels in at least one decoded geometry image (DGI).

[0148] As described above, based on the pixel values ​​of the decoded occupancy information DOM and the values ​​of D1-D0, the non-empty pixel belongs to an occupied block or an EOM reference block.

[0149] According to the embodiment of step 4500, the geometry generation module GGM can derive two of the 3D coordinates of the intermediate 3D sample from the coordinates of the non-empty pixels.

[0150] According to the embodiment of step 4500, when the non-empty pixel belongs to the EOM reference block, the geometry generation module GGM can deduce one-third of the 3D coordinates of the intermediate 3D sample from the bit value of the EOM codeword.

[0151] For example, according to Figure 3b For example, the EOM codeword EOMC is used to determine the intermediate 3D sample P. i1 With P i2 3D coordinates. Middle 3D sample P i1 The third coordinate can be obtained, for example, through D. i1 =D0+3 is derived from D0, and the reconstructed 3D sample P is obtained. i2 The third coordinate can be obtained, for example, through D. i2 =D0+5 is derived from D0. The offset value (3 or 5) is the number of intervals between D0 and D1 along the projection line.

[0152] According to an embodiment, when the non-empty pixel belongs to an occupied block, the geometry generation module GGM can deduce the 3D coordinates of the reconstructed 3D sample from the coordinates of the non-empty pixel, the value of the non-empty pixel in at least one decoded geometric image DGI, decoded auxiliary piece information, and possibly from additional metadata.

[0153] The use of non-empty pixels is based on their relationship to the 2D pixels of the 3D sample. For example, using the projection described in V-PCC, the 3D coordinates of the reconstructed 3D sample can be represented by depth δ(u, v), tangent offset s(u, v), and double tangent offset r(u, v) as follows:

[0154] δ(u, v) = δ0 + g(u, v)

[0155] s(u, v) = s0 - u0 + u

[0156] r(u, v) = r0 - v0 + v

[0157] Where g(u, v) is the luminance component of the decoded geometric image DGI, (u, v) is the pixel associated with the reconstructed 3D sample, (δ0, s0, r0) is the 3D position of the connected region to which the reconstructed 3D sample belongs, and (u0, v0, u1, v1) are the coordinates in the projection plane that defines the 2D bounding box containing the projection of the patch associated with the connected region.

[0158] In step 4600, the texture generation module TGM can derive the texture of the reconstructed point cloud frame IRPCF from the geometry RG and at least one decoded texture image DTI.

[0159] According to the embodiment of step 4600, the texture generation module TGM can derive the texture of non-empty pixels belonging to the EOM reference block from the corresponding EOM texture block. The position of the EOM texture block in the texture image is program-defined (Section 9.4.5 of V-PCC).

[0160] According to the embodiment of step 4600, the texture generation module TGM can directly derive the texture of the non-empty pixels belonging to the occupied block as the pixel value of the first texture image or the second texture image.

[0161] Figure 5 An example syntax for representing a bitstream of a base layer BL according to at least one of the embodiments is illustrated schematically.

[0162] The bitstream includes a bitstream header (SH) and at least one set of frame streams (GOFS).

[0163] A set of frame streams GOFS includes a header HS, at least one syntax element OMS representing an occupancy graph OM, at least one syntax element GVS representing at least one geometric image (or video), at least one syntax element TVS representing at least one texture image (or video), and at least one syntax element PIS representing supplementary slice information and other additional metadata.

[0164] In the variant, a set of frame streams GOFS includes at least one frame stream.

[0165] Figure 6 A schematic block diagram illustrating an example of a system in which various aspects and embodiments are implemented is shown.

[0166] System 6000 may be embodied as one or more devices comprising the various components described below and configured to perform one or more aspects described in this document. Examples of equipment that may form all or part of System 6000 include personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, connected vehicles and their associated processing systems, head-mounted display devices (HMDs, see-through glasses), projectors (projectors), "caves" (systems comprising multiple displays), servers, video encoders, video decoders, post-processors that process the output from the video decoder, pre-processors that provide input to the video encoder, web servers, set-top boxes, and any other devices or other communication devices for processing point clouds, video, or images. Elements of System 6000 may be embodied individually or in combination in a single integrated circuit, multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of System 6000 may be distributed across multiple ICs and / or discrete components. In various embodiments, system 6000 may be communicatively decoupled to other similar systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 6000 may be configured to implement one or more aspects described in this document.

[0167] System 6000 may include at least one processor 6010 configured to execute instructions loaded thereon for implementing various aspects, such as those described in this document. Processor 6010 may include embedded memory, input / output interfaces, and various other circuitry known in the art. System 6000 may include at least one memory 6020 (e.g., a volatile memory device and / or a non-volatile memory device). System 6000 may include a storage device 6040, which may include non-volatile memory and / or volatile memory, including but not limited to electrically erasable programmable read-only memory (EEPROM), read-only memory (ROM), programmable read-only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, disk drives, and / or optical disk drives. As a non-limiting example, storage device 6040 may include internal storage devices, attached storage devices, and / or network-accessible storage devices.

[0168] System 6000 may include an encoder / decoder module 6030 configured to, for example, process data to provide encoded or decoded data, and the encoder / decoder module 6030 may include its own processor and memory. The encoder / decoder module 6030 may represent a module that can be included in a device to perform encoding and / or decoding functions. It is well known that a device may include one or both encoding and decoding modules. Alternatively, the encoder / decoder module 6030 may be implemented as a separate element of system 6000, or may be incorporated into processor 6010 as a combination of hardware and software known to those skilled in the art.

[0169] Program code to be loaded onto processor 6010 or encoder / decoder 6030 to execute the various aspects described in this document may be stored in storage device 6040 and subsequently loaded onto memory 6020 for execution by processor 6010. According to various embodiments, one or more of processor 6010, memory 6020, storage device 6040, and encoder / decoder module 6030 may store one or more of various items during the execution of the processes described in this document. Such stored items may include, but are not limited to, point cloud frames, encoded / decoded geometric / texture video / images or portions thereof, bitstreams, matrices, variables, and intermediate or final results from processing equations, formulas, operations, and operational logic.

[0170] In several embodiments, the memory within the processor 6010 and / or encoder / decoder module 6030 may be used to store instructions and provide working memory for processing that can be performed during encoding or decoding.

[0171] However, in other embodiments, external memory (e.g., the processing device may be processor 6010 or encoder / decoder module 6030) may be used for one or more of these functions. External memory may be memory 6020 and / or storage device 6040, such as dynamic volatile memory and / or non-volatile flash memory. In several embodiments, external non-volatile flash memory may be used to store the television's operating system. In at least one embodiment, fast external dynamic volatile memory such as RAM may be used as working memory for video encoding and decoding operations, such as for MPEG-2 Part 2 (also known as ITU-T Recommendation H.262 and ISO / IEC 13818-2, also known as MPEG-2 Video), HEVC (High-Efficiency Video Codec), or VVC (Various Video Codec).

[0172] As shown in box 6130, input to the components of system 6000 can be provided through various input devices. Such input devices include, but are not limited to, (i) an RF section capable of receiving, for example, RF signals transmitted over the air by a broadcaster, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.

[0173] In various embodiments, the input device of block 6130 may have associated corresponding input processing elements as known in the art. For example, the RF section may be associated with elements that: (i) select a desired frequency (also known as selecting a signal, or limiting a signal band to a band), (ii) down-convert the selected signal, (iii) further band-limit to a narrower band to select (e.g.,) a signal band that may be referred to as a channel in some embodiments), (iv) demodulate the down-converted and band-limited signal, (v) perform error correction, and (vi) demultiplex to select a desired data packet stream. The RF section of various embodiments may include one or more elements for performing these functions, such as frequency selectors, signal selectors, band limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF section may include tuners that perform various functions among these functions, including, for example, down-converting a received signal to a lower frequency (e.g., intermediate frequency or near-baseband frequency) or baseband.

[0174] In one set-top box embodiment, the RF section and its associated input processing elements can receive RF signals transmitted via a wired (e.g., cable) medium. The RF section can then perform frequency selection by filtering, down-converting, and re-filtering to the desired frequency band.

[0175] Various embodiments rearrange the order of the above (and other) elements, remove some of these elements, and / or add other elements that perform similar or different functions.

[0176] Adding components may include inserting components between existing components, such as, for example, inserting amplifiers and analog-to-digital converters. In various embodiments, the RF portion may include an antenna.

[0177] Additionally, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 6000 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing, such as Reed-Solomon error correction, may be implemented as needed, for example, within a separate input processing IC or within the processor 6010. Similarly, various aspects of USB or HDMI interface processing may be implemented as needed, either within a separate interface IC or within the processor 6010. Demodulated, error-corrected, and demultiplexed streams can be provided to various processing elements, including, for example, the processor 6010 and encoder / decoder 6030 operating in combination with memory and storage elements, to process the data streams as needed for presentation on the output device.

[0178] Various components of the system 6000 can be housed within an integrated housing. Within the integrated housing, the various components can be interconnected and data can be transferred between them using a suitable connection arrangement 6140 (e.g., internal buses known in the art, including I2C buses, wiring, and printed circuit boards).

[0179] System 6000 may include a communication interface 6050 capable of communicating with other devices via a communication channel 6060. The communication interface 6050 may include, but is not limited to, a transceiver configured to send and receive data via the communication channel 6060. The communication interface 6050 may include, but is not limited to, a modem or network interface card (NIC), and the communication channel 6060 may be implemented, for example, within a wired and / or wireless medium.

[0180] In various embodiments, data streaming to system 6000 can be used via a Wi-Fi network such as IEEE 802.11. The Wi-Fi signals in these embodiments can be received via a communication channel 6060 and a communication interface 6050 suitable for Wi-Fi communication. The communication channel 6060 in these embodiments can typically be connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other over-the-top communications.

[0181] Other embodiments may use a set-top box that delivers data via an HDMI connection through input box 6130 to provide streaming data to system 6000.

[0182] Other embodiments may use the RF connection of input box 6130 to provide streaming data to system 6000.

[0183] It should be understood that signaling can be implemented in various ways. For example, in various embodiments, one or more syntax elements, flags, etc., can be used to signal information to the corresponding decoder.

[0184] System 6000 can provide output signals to various output devices, including display 6100, speaker 6110, and other peripheral devices 6120. In various examples of embodiments, other peripheral devices 6120 may include one or more of a standalone DVR, disc player, stereo system, lighting system, and other devices that provide output functionality based on system 3000.

[0185] In various embodiments, signaling of other communication protocols, such as AV.Link (audio / video link), CEC (consumer electronics control), or other communication protocols that enable device-to-device control with or without user intervention, can be used to communicate control signals between system 6000 and display 6100, speaker 6110, or other peripheral devices 6120.

[0186] Output devices can be communicatively coupled to system 6000 via dedicated connections through the corresponding interfaces 6070, 6080 and 6090.

[0187] Alternatively, the output device can be connected to the system 6000 via communication interface 6050 using communication channel 6060. The display 6100 and speaker 6110 can be integrated into a single unit with other components of the system 6000 in electronic devices such as, for example, televisions.

[0188] In various embodiments, the display interface 6070 may include a display driver, such as, for example, a timing controller (T Con) chip.

[0189] For example, if the RF section of input 6130 is part of a separate set-top box, then display 6100 and speaker 6110 can alternatively be separated from one or more of the other components. In various embodiments where display 6100 and speaker 6110 can be external components, output signals can be provided via dedicated output connections, including, for example, HDMI ports, USB ports, or COMP outputs.

[0190] As described above, in V-PCC, 3D samples of a point cloud frame are projected onto two layers (3D-to-2D projection): the first layer (also called the near layer) can store, for example, the depth value D0 associated with a 3D sample having a smaller depth. The second layer (called the far layer) can store, for example, the depth value D1 associated with a 3D sample having a larger depth.

[0191] Figure 7 An example of this 3D-to-2D projection using V-PCC is shown.

[0192] To simplify the representation, a 2D sample cloud frame and a 1D projection plane are used for drawing. 3D samples (solid squares) are projected downwards, so all black 3D samples in the same column are projected to the same position on the projection plane. Two layers are used to store the depth values ​​of the projected 3D samples: the near layer D0 and the far layer D1.

[0193] Because two layers are used, only two 3D samples can be projected per column: the 3D samples projected to the near layer and the far layer are labeled "0" and "1" respectively. Each layer value represents the distance from the projection plane to the 3D sample. Furthermore, in V-PCC, the depth values ​​of the intermediate 3D samples (located between the two layers) are encoded and decoded using EOM codewords as described above. These intermediate 3D samples... Figure 7 The middle part is marked as "I".

[0194] The near layer D0 (first depth image) and the far layer D1 (second depth image) store the positions of 3D samples projected from the projection plane. The occupancy map (image) stores the value '0' (unoccupied block of the canvas), '1' (occupied block of the canvas), or 'c' (value of EOM codeword).

[0195] Figure 8 A schematic block diagram illustrating an example of a method for encoding and decoding depth values ​​of 3D samples projected along the same projection line, according to at least one embodiment.

[0196] In step 8100, the module determines whether to project at least one 3D sample along the projection line PL corresponding to the position in the occupancy map OM defined by coordinates (u,v).

[0197] If no 3D sample is projected along the projection line PL, then in step 8200, the value of the pixel located at coordinates (u, v) in the occupancy map is equal to a first value indicating an unoccupied block in the canvas. For example, the first value is equal to 0.

[0198] Step 8200 is followed by step 8300, which considers another location in the diagram. The process ends when all locations have been considered.

[0199] If at least one 3D sample is projected along the projection line PL, then in step 8400, the value of the pixel located at coordinates (u, v) in the occupancy map is equal to a second value indicating the occupied block in the canvas. For example, the second value is equal to 1.

[0200] In step 8500, the module checks whether at least one additional 3D sample is projected along the projection line PL.

[0201] Note that in V-PCC, the first additional 3D sample is the third 3D sample projected onto the projection line PL, because the depth values ​​of the two first projected 3D samples are stored in the near and far layers.

[0202] In V-PCC, in step 8500, the module checks whether the position of the 3D sample is greater than D0(u,v) and less than D1(u,v), and then checks whether D1(u,v) – D0(u,v) > 1.

[0203] If no additional 3D sample is projected along the projection line PL, then step 8500 is followed by step 8300.

[0204] If at least one additional 3D sample is projected along the projection line PL, then in step 8600, the module initializes the length N(u,v) of the (N-1) bit length PCM code PCM(u,v) used to encode the depth value of the at least one additional 3D sample.

[0205] In V-PCC, N(u,v)=D1(u,v)-D0(u,v).

[0206] In step 8700, the module generates an (N-1) bit-length PCM code PCM(u, v) to encode the depth value of at least one 3D sample projected along the projection line PL.

[0207] In V-PCC, the i-th bit of PCM(u,v) is equal to 1 to indicate whether the position D0(u,v)+i is occupied by the projected 3D sample, and equal to 0 to indicate an unoccupied position.

[0208] In step 8800, the module calculates the EOM codeword C(u, v) based on PCM(u, v), as follows:

[0209] C(u,v)=1+(2^ (N-1) -1-PCM code)

[0210] In step 8900, the module assigns the EOM codeword to the value of the pixel in the occupancy map OM located at coordinates (u,v): OM(u,v) = C(u,v).

[0211] Step 8900 is followed by step 8300.

[0212] Figure 9 A schematic block diagram illustrating an example of a method for decoding the depth values ​​of 3D samples projected along the same projection line, according to at least one embodiment.

[0213] In step 9100, the module considers the position of the occupancy graph (OM or DOM) at coordinates (u,v). The process ends when all positions of the occupancy graph have been considered.

[0214] In step 9200, the module determines whether the value OM(u,v) of the pixel located at coordinates (u,v) in the occupancy map indicates that no 3D sample is projected along the projection line PL at that location. OM(u,v) may also be equal to another value indicating an occupied block in the canvas. In other words, the other value indicates that the depth value of at least one projected 3D sample along the projection line PL is stored as a pixel value in a layer (near and / or far layer), and possibly, the EOM codeword C(u,v) representing the depth value of an additional 3D sample is stored in the occupancy map at location (u,v).

[0215] In V-PCC, in step 9200, OM(u,v) = 0 indicates that no 3D sample is projected at position (u,v), and in step 9100, another position is considered. OM(u,v) = 1 indicates an occupied block in the canvas, and D1(u,v)-D0(u,v) > 1 indicates that the depth value of at least one additional 3D sample can be stored.

[0216] If the value OM(u,v) of the pixel located at coordinates (u,v) in the occupancy map indicates that no 3D sample is projected along the projection line PL, then step 9200 is followed by step 9100, which considers another location in the occupancy map.

[0217] Otherwise, in step 9300, the module initializes the length N(u,v) of the (N-1)-bit length PCM code PCM(u,v) used to decode the depth value of the at least one additional 3D sample.

[0218] In V-PCC, N(u,v)=D1(u,v)-D0(u,v).

[0219] In step 9400, the module generates an (N-1) bit-length PCM code PCM(u,v) to decode the depth value of at least one 3D sample projected along the projection line PL from the pixel value of the occupancy map OM(u,v) at coordinates (u,v).

[0220] In V-PCC, the PCM code PCM(u, v) is obtained from the EOM codeword C(u, v) using the following formula:

[0221] PCM code (u,v) = 1 + (2^ (N-1) -1-C(u,v))

[0222] In step 9500, the module derives the depth value of at least one additional 3D sample from the PCM code PCM(u,v).

[0223] In V-PCC, the depth value of the i-th 3D sample projected from D0 along the projection line PL is equal to D0(u,v)+i.

[0224] like Figure 8 and 9 As shown, in V-PCC, EOM codewords cannot be computed if a single layer is used because the length of the PCM code depends on the near and far layers. Furthermore, as... Figure 7 As shown, using EOM codewords does not allow encoding or decoding 3D samples that are on the same projection line as, but not between, the projected 3D samples marked '0' and '1'. That is, the projected 3D samples are located at a distance from D0 greater than D1-D0. The maximum allowed value of D1-D0 is often referred to as the "surface thickness," thus limiting the maximum possible distance of the midpoint from D0—see examples in columns E, F, and H.

[0225] According to a general aspect of at least one embodiment, the pixel values ​​of the occupancy map (image) indicate that the depth values ​​of at least one 3D sample of a point cloud frame projected along the same projection line are stored as pixel values ​​of at least one layer (depth image), or are equal to a fixed-length codeword representing the depth values ​​of at least one 3D sample projected along the projection line.

[0226] Using fixed-length codewords to represent the depth values ​​of at least one 3D sample projected along the same projection line allows for the use of a single layer, since the PCM code length is now independent of fixed values ​​for near and far layers. Furthermore, as explained in more detail later, using fixed-length codewords allows for the encoding and decoding of the depth values ​​of 3D samples projected not between 3D samples, where the projected 3D samples are 3D samples with depth values ​​greater than those stored in the far layer.

[0227] According to at least one embodiment, in steps 8600 and 9300, the module can initialize the length N(u,v) of the (N-1) bit length PCM code PCM(u,v) to a fixed PCM code length PCML.

[0228] According to the embodiment of step 8500, when using two layers D0 and D1, the module can check whether the position of the additional 3D sample is greater than D0(u,v) and lower than D0(u,v)+PCML.

[0229] Figure 10 An example of determining the pixel values ​​of the occupied graph OM(u,v) according to at least one embodiment is shown.

[0230] In this example, two layers (depth images) are used: layer 0 and layer 1. The PCM code length PCML is equal to 9, meaning that each PCM code (EOM codeword) can encode 8 locations of a 3D sample. Hash squares indicate the 8 locations. Note that the square remains black when one of the 8 locations covers a block square. For example, in column A, the depth value stored in the near layer is equal to 2 (a black square with '0'), the depth value stored in the far layer is equal to 7 (a black square with '1'), and the depth value stored as an EOM codeword is equal to c. Starting from this black square, there are 8 hash squares along column A from position 3 to 10. For clarity, positions 4 and 5 remain block squares. Positions 3 to 10, including positions 4 and 5, correspond to the 3D sample whose depth value is projected as a PCM code.

[0231] Even for 3D samples that are not between 3D samples, the geometry of 3D samples projected between near layer D0 and D0+PCML can be captured, as shown in columns E, F and G.

[0232] Therefore, using fixed-length PCM codes improves the encoding and decoding efficiency of point cloud frame geometry.

[0233] According to the embodiment of step 8700, when the depth value has been encoded as a layer value (the value of the depth image), the module can skip the bits that encode the depth value of the 3D sample projected along the projection line PL into PCM code PCM(u,v).

[0234] For example, the module can calculate the current position D0(u,v)+i for each i-th bit of PCM(u,v) and check whether pixels in the near and far layers (depth images) store such depth values ​​as projected 3D samples. In this case, the i-th bit of PCM(u,v) is set to 0. Otherwise, it is set to 1.

[0235] When the fixed-length PCM code FLPCM is greater than the maximum distance (maximum surface thickness) between the near and far layers, this embodiment of step 8700 avoids encoding twice the depth value of 3D samples with the same projection by using bits of the far layer and EOM codewords, such as Figure 10 The columns A, B, C, E, F, and H are shown for the black square marked "1".

[0236] This embodiment of step 8700 is also advantageous because it can extend the coverage area, such as regarding Figure 11 Further explanation.

[0237] Figure 11 An example of determining the pixel values ​​of the occupied graph OM(u,v) according to the aforementioned variant is shown.

[0238] The PCM code length PCML is equal to 9. For example, in column A, bits b0…b7 refer to positions 3…10 of the PCM code relative to column A. In this example, the depth value at position 7 in column A has already been encoded in the far layer and has not been encoded as an EOM codeword. Therefore, bits b4,…,b7 of the PCM code can now refer to positions 8,…,11, extending the region from position 2 (near layer) to 11 positions.

[0239] A similar situation occurs for position 3 in column E, position 2 in column F, and position 2 in column H.

[0240] Note that the white squares filled with multiple points and marked "1" indicate the locations of 3D samples whose depth values ​​have been stored in the layer. For example, position 2 in column H indicates the depth value of a 3D sample stored in a distant layer.

[0241] According to an embodiment of step 9200, when using a single layer D0, the module can determine whether the value OM(u,v) of the pixel located at coordinates (u,v) in the occupancy map indicates that no 3D sample is projected along the projection line PL at that location (e.g., OM(u,v) = 0). OM(u,v) can also be equal to another value indicating an occupied block in the canvas. In other words, the other value indicates that the depth value of at least one projected 3D sample along the projection line PL is stored as a pixel value in layer D0, and possibly, the EOM codeword C(u,v) representing the depth value of an additional 3D sample is stored in the occupancy map at location (u,v).

[0242] Figure 12 An example of determining the pixel values ​​of the occupied graph OM(u,v) according to at least one embodiment is shown.

[0243] In this example, a single layer is used: layer 0. The PCM code length PCML is equal to 9. For example, in column A, the depth value stored in the single layer is equal to 2 (a black square with "0"). Starting from this black square, eight hash squares are generated along column A from positions 3 to 10. Positions 4, 5, and 7 remain black squares, corresponding to 3D samples of the projection of their depth values ​​encoded in PCM codes.

[0244] According to an embodiment of the method, such as Figure 8 and Figure 9 As shown, the information INFO1 can be sent using a signal to indicate whether a fixed-length PCM code is used.

[0245] According to this embodiment, the information INFO1 can be added to a bit stream that may be sent over a network, and the information can be extracted (obtained) from a bit stream that may be received from a communication component.

[0246] According to this embodiment, the module can obtain the information INFO1 from a bitstream indicating whether a fixed-length codeword is used; if the information INFO1 indicates that a fixed-length PCM code is not used, the length of the PCM code can be derived from two layers, such as in Figure 8 Step 8600 and Figure 9 As in V-PCC in step 9300. Then, the depth value is derived from the PCM code, which may have different lengths. If the INFO1 information indicates the use of a fixed-length PCM code, the length of the PCM code can be equal to the PCM code length PCML that may be known on the encoding and decoding sides. Next, the depth value is derived from the fixed-length codeword.

[0247] In the variant, it can be assumed that the PCM code length PCML is equal to the bit depth of the occupancy map. For example, if the occupancy map is encoded using 8 bits per color component, the PCM code length PCML is automatically set to 8, which means there are 7 bits in the PCM code.

[0248] This variant offers minimal flexibility in optimizing the length of EOM codewords, but it is also the simplest method.

[0249] According to an embodiment, information INFO2, representing the PCM code length PCML, can be transmitted using a signal.

[0250] According to this embodiment, the information INFO2 can be added to a bitstream that may be sent over a network, and then the information can be extracted from a bitstream that may be received from a communication component.

[0251] According to an embodiment, information INFO1 and / or INFO2 can be transmitted as signals at the sequence level. Therefore, a single value of information INFO1 and a single value of information INFO2 can be transmitted as signals for encoding a sequence of point cloud frames.

[0252] Figure 13 An example of syntax elements for sending information INFO1 and INFO2 by signaling, according to at least one embodiment, is shown.

[0253] In this example, INFO1 is the syntax element "sps_enhanced_occupancy_map_code_fixed_bit_count_flag", and INFO2 is the syntax element "sps_enhanced_occupancy_map_code_fixed_bit_count" that is signaled in the syntax element "sequence_parameter_set".

[0254] According to an embodiment, information INFO1 and / or INFO2 can be sent using signals from the set of occupancy parameters.

[0255] Figure 14 An example of syntax elements for sending information INFO1 and INFO2 by signaling, according to at least one embodiment, is shown.

[0256] In this example, INFO1 is the syntax element "ops_occupancy_code_fixed_bit_count_flag", and INFO2 is the syntax element "ops_occupancy_code_bit_count_minus1" that is signaled in the syntax element "ops_parameter_set".

[0257] According to a variation of the embodiment, information INFO1 and / or INFO2 can be sent as syntax elements of the geometric parameter set using signals.

[0258] According to an embodiment of the method, information INFO1 and / or INFO2 can be transmitted frame by frame using signals.

[0259] This embodiment requires a higher bit rate because information INFO1 and / or INFO2 is sent more frequently, but allows for better adjustment of the encoding / decoding method for each frame.

[0260] In a variation of the embodiment, information INFO1 and / or INFO2 can be sent as signals as syntax elements of geometry_frame_paramsunit (Section 7.3.18 of V-PCC).

[0261] In a variant of the embodiment, information INFO1 and / or INFO2 can be signaled as syntax elements of an occupancy_frame_params unit similar to a geometric frame parameter unit, having a corresponding occupancy_frame_parameter_set unit and a corresponding slice sequence unit type (e.g., PSD_OFPS, occupancy frame parameter set; see Table 7-4 of V-PCC).

[0262] According to an embodiment of the method, information INFO1 and / or INFO2 can be transmitted by signal per chip.

[0263] This embodiment requires a higher bit rate because information INFO1 and / or INFO2 is sent more frequently, but allows for better tuning of the encoding / decoding method for each slice.

[0264] According to a variation of the embodiment, information INFO1 and / or INFO2 can be sent as syntax elements of patch_data unit and delta_patch_data unit using signals.

[0265] According to a variation of the embodiment, information INFO1 and / or INFO2 can be sent as a signal as a syntax element of geometry_patch_paramsunit (section 7.3.22 of V-PCC).

[0266] According to a variation of the embodiment, information INFO1 and / or INFO2 can be sent as a syntax element of the occupancy_patch_params unit, having a corresponding occupancy_patch_parameter_setunit.

[0267] exist Figure 1-14 This document describes various methods, and each method includes one or more steps or actions for implementing the described method. Unless the correct operation of the method requires a specific order of steps or actions, the order and / or use of specific steps and / or actions may be modified or combined.

[0268] The block diagrams and operation flowcharts provide some examples. Each block represents a circuit element, module, or portion of code that includes one or more executable instructions for implementing a specified logical function. It should also be noted that in other implementations, the functions mentioned in a block may not occur in the indicated order. For example, two blocks shown consecutively may actually execute substantially simultaneously, or the blocks may sometimes execute in reverse order, depending on the functions involved.

[0269] The implementations and aspects described herein can be implemented in, for example, methods or procedures, apparatus, computer programs, data streams, bit streams, or signals. Even if discussed only in the context of a single implementation (e.g., only as a method), the features discussed can be implemented in other forms (e.g., apparatus or computer programs).

[0270] The method can be implemented, for example, in a processor, which typically refers to a processing device, including, for example, a computer, microprocessor, integrated circuit, or programmable logic device. The processor also includes communication devices.

[0271] Additionally, the method can be implemented by instructions executed by a processor, and such instructions (and / or data values ​​generated by the implementation) can be stored on a computer-readable storage medium. The computer-readable storage medium can take the form of a computer-readable program product embodied in one or more computer-readable media and having computer-readable program code embodied thereon that is executable by a computer. As used herein, a computer-readable storage medium can be considered a non-transitory storage medium having the inherent ability to store information therein and to provide the inherent ability to retrieve information therefrom. A computer-readable storage medium can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any suitable combination thereof. It should be understood that while more specific examples of computer-readable storage media to which this embodiment can be applied are provided below, they are merely illustrative and not an exhaustive list, as will be readily understood by those skilled in the art: portable computer disks, hard disks, read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable optical disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0272] Instructions can form applications that are tangibly embodied on processor-readable media.

[0273] Instructions can be found, for example, in hardware, firmware, software, or a combination thereof. Instructions can also be found, for example, in an operating system, a standalone application, or a combination of both. Therefore, a processor can be characterized as both a device configured to execute a process and a device comprising a processor-readable medium (such as a storage device) having instructions for executing the process. Furthermore, in addition to or instead of instructions, the processor-readable medium can store data values ​​generated by the implementation.

[0274] The device can be implemented, for example, with appropriate hardware, software, and firmware. Examples of such devices include personal computers, laptops, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, head-mounted display devices (HMDs, see-through glasses), projectors, "caves" (systems comprising multiple displays), servers, video encoders, video decoders, post-processors that process the output from the video decoder, pre-processors that provide input to the video encoder, web servers, set-top boxes, and any other devices or other communication equipment used to process point clouds, video, or images. It should be clear that the equipment can be mobile, even mounted in a mobile vehicle.

[0275] The computer software can be implemented by the processor 6010, by hardware, or by a combination of hardware and software. As a non-limiting example, the embodiment can also be implemented by one or more integrated circuits. The memory 6020 can be of any type suitable for the technical environment and can be implemented using any suitable data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory, as non-limiting examples. The processor 6010 can be of any type suitable for the technical environment and can include one or more of microprocessors, general-purpose computers, special-purpose computers, and multi-core architecture-based processors, as non-limiting examples.

[0276] It will be apparent to those skilled in the art that implementations can generate various signals formatted to carry information that can be stored or transmitted, for example. This information may include, for example, instructions for performing a method or data generated by one of the described implementations. For example, the signal may be formatted to carry a bitstream of the described embodiments. Such a signal may be formatted as, for example, electromagnetic waves (e.g., using the radio frequency portion of the spectrum) or baseband signals. Formatting may include, for example, encoding the data stream and modulating a carrier wave using the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is known, the signal can be transmitted via various wired or wireless links. The signal may be stored on a processor-readable medium.

[0277] The terminology used herein is for the purpose of describing particular embodiments only and is not restrictive. As used herein, the singular forms “a,” “an,” and “the” may also be intended to include the plural forms unless the context clearly indicates otherwise. It will be further understood that, when used in this specification, the terms “comprising / including” and / or “including / including” may specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. Furthermore, when an element is referred to as “responding” or “connected” to another element, it may respond directly to or be connected to the other element, or there may be intermediate elements present. Conversely, when an element is referred to as “directly responding” or “directly connected” to another element, there are no intermediate elements present.

[0278] It should be understood that, for example, in the cases of “A / B,” “A and / or B,” and “at least one of A and B,” the use of any of the codewords / terms “ / ,” “and / or,” and “at least one of…” can be intended to include selecting only the first listed option (A), or only the second listed option (B), or both options (A and B). As another example, in the cases of “A, B, and / or C” and “at least one of A, B, and C,” this wording is intended to include selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or all three options (A, B, and C). As will be apparent to those skilled in the art and related fields, this can be extended to as many items as possible listed.

[0279] For example, various numerical values ​​may be used in this application. Specific values ​​may be used for illustrative purposes, and the aspects described are not limited to these specific values.

[0280] It should be understood that although the terms first, second, etc., may be used herein to describe various elements, these elements are not limited by these terms. These terms are used only to distinguish one element from another. For example, without departing from the teachings of this application, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. No ordering is implied between the first element and the second element.

[0281] References to “an embodiment” or “an embodiment” or “an implementation” or “an implementation”, and their other variations, are frequently used to convey that a particular feature, structure, characteristic, etc. (described in connection with the embodiment / implementation) is included in at least one embodiment / implementation. Therefore, the phrases “in an embodiment” or “in an embodiment” or “in an implementation” or “in an implementation” appearing throughout this application, and any other variations, do not necessarily refer to the same embodiment.

[0282] Similarly, references to "according to an embodiment / example / implementation" or "in an embodiment / example / implementation" and their other variations are frequently used to convey that a particular feature, structure, or characteristic (described in conjunction with the embodiment / example / implementation) may be included in at least one embodiment / example / implementation. Therefore, the expressions "according to an embodiment / example / implementation" or "in an embodiment / example / implementation" appearing in various places in the specification do not necessarily refer to the same embodiment / example / implementation, nor are they necessarily separate or alternative embodiments / examples / implementations that are mutually exclusive with other embodiments / examples / implementations.

[0283] The reference numerals appearing in the claims are illustrative only and do not limit the scope of the claims. Although not explicitly described, these embodiments / examples and variations can be employed in any combination or sub-combination.

[0284] When the accompanying drawings are presented as flowcharts, it should be understood that they also provide block diagrams of the corresponding apparatus. Similarly, when the accompanying drawings are presented as block diagrams, it should be understood that they also provide flowcharts of the corresponding methods / processes.

[0285] Although some diagrams include arrows along the communication path to indicate the main direction of communication, it should be understood that communication can occur in the opposite direction to the arrows depicted.

[0286] Various implementations involve decoding. As used herein, "decoding" can include all or part of a process performed, for example, on received point cloud frames (which may include a received bitstream encoding one or more point cloud frames) to produce a final output suitable for display or suitable for further processing in the reconstructed point cloud domain. In various embodiments, such a process includes one or more processes typically performed by an image-based decoder. In various embodiments, such a process also or alternatively includes processes performed by decoders of the various implementations described herein, for example,

[0287] As another example, in one embodiment, "decoding" may refer only to entropy decoding; in another embodiment, "decoding" may refer only to differential decoding; and in yet another embodiment, "decoding" may refer to a combination of entropy decoding and differential decoding. It will be clear, and is considered well understood by those skilled in the art, whether the phrase "decoding process" is intended to specifically refer to a subset of operations or generally to a broader decoding process, based on the context of the specific description.

[0288] Various implementations involve encoding. Similar to the discussion above regarding "decoding," the "encoding" used in this application can include all or part of the processing performed on, for example, an input point cloud frame to produce an encoded bitstream. In various embodiments, such processes include one or more of the processes typically performed by an image-based decoder.

[0289] As another example, in one embodiment, "encoding" may refer only to entropy encoding; in another embodiment, "encoding" may refer only to differential encoding; and in yet another embodiment, "encoding" may refer to a combination of differential and entropy encoding. It will be clear, and is considered well understood by those skilled in the art, whether the phrase "encoding process" is intended to specifically refer to a subset of operations or generally to a broader encoding process, depending on the context of the specific description.

[0290] Note that the syntax elements used in this article, such as sps_enhanced_occupancy_map_code_fixed_bit_count_flag, sps_enhanced_occupancy_map_code_fixed_bit_count, ops_occupancy_code_fixed_bit_count_flag, ops_occupancy_code_bit_count_minus1, ops_parameter_set, occupancy_frame_params unit, patch_data unit, and occupancy_patch_params unit, are descriptive terms. Therefore, they do not preclude the use of other syntax element names.

[0291] Various embodiments involve rate distortion optimization. Specifically, during the encoding process, a balance or trade-off between rate and distortion is typically considered, often taking into account computational complexity constraints. Rate distortion optimization can generally be formulated as minimizing a rate distortion function, which is a weighted sum of rate and distortion. Different approaches exist to address the rate distortion optimization problem. For example, these approaches can be based on extensive testing of all encoding options, including all considered modes or encoding / decoding parameter values, to provide a complete evaluation of the encoding / decoding costs and the correlated distortion of the reconstructed signal after encoding / decoding and decoding. Faster methods can also be used to save encoding complexity, particularly by calculating approximate distortion based on prediction or prediction of the residual signal rather than the reconstructed predicted residual signal. A hybrid of these two approaches can also be used, such as by using approximate distortion only for some possible encoding options and full distortion for others. Other methods evaluate only a subset of possible encoding options. More generally, many methods employ any of a variety of techniques to perform optimization, but optimization is not necessarily a complete evaluation of both encoding / decoding costs and correlated distortion.

[0292] Additionally, this application may involve "determining" various types of information. Determining information may include, for example, one or more of the following: estimation information, calculation information, prediction information, or information retrieved from memory.

[0293] Furthermore, this application may relate to "accessing" various types of information. Accessing information may include, for example, receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information, or one or more of these.

[0294] Additionally, this application may relate to "receiving" various types of information. Like "access," receiving is intended to be a broad term. Receiving information may include, for example, accessing information or retrieving information (e.g., from memory) or one or more of it. Furthermore, "receiving" is generally referred to in one or more ways during operations such as, for example, storing information, processing information, sending information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.

[0295] Furthermore, as used herein, the term "signal" specifically refers to indicating something to the corresponding decoder. For example, in some embodiments, the encoder sends specific information INFO1 and / or INFO2 with a signal. In this way, in embodiments, the same parameters can be used on both the encoder and decoder sides. Thus, for example, the encoder can send specific parameters (explicit signaling) to the decoder so that the decoder can use the same specific parameters. Conversely, if the decoder already has specific parameters as well as other parameters, signaling can be used without sending (implicit signaling) to simply allow the decoder to know and select specific parameters. Bit savings are achieved in various embodiments by avoiding the transmission of any actual functions. It should be understood that signaling can be implemented in various ways. For example, in various embodiments, one or more syntax elements, flags, etc., are used to signal information to the corresponding decoder. Although the verb form of the term "signal" has been referred to above, the term "signal" can also be used as a noun herein.

[0296] Several implementations have been described. However, it should be understood that various modifications can be made. For example, elements of different implementations can be combined, supplemented, modified, or removed to produce other implementations. Furthermore, those skilled in the art will understand that other structures and processes can replace those disclosed, and the resulting implementations will perform at least substantially the same function in at least substantially the same manner to achieve at least substantially the same results as the disclosed implementations. Therefore, this application contemplates these and other implementations.

Claims

1. A method for decoding a point cloud, comprising: - decoding pixel values of an occupancy map, the pixel values of the occupancy map indicating that a depth value of at least one 3D sample of a point cloud frame projected on a projection plane along a projection line is a pixel value of a depth image, and the pixel value indicating whether a code word representing at least one depth value of at least one other 3D sample projected along the projection line is stored in the occupancy map by the pixel value, wherein the depth image is a single depth image storing depth values of 3D samples closest to the projection plane, - reconstructing the at least one 3D sample based on the pixel values of the occupancy map.

2. The method of claim 1, further comprising: receiving first information indicating whether a fixed length code word is used.

3. The method of claim 2, further comprising: receiving second information representing a length of the code word.

4. The method of claim 3, wherein, The first and / or second information is signaled per frame or per slice for a sequence of point cloud frames, a slice being a set of 2D samples representing a projection of 3D samples of the point cloud frame.

5. The method of claim 3, further comprising: reconstructing the at least one other 3D sample based on the length of the code word.

6. A method for encoding a point cloud, comprising: - encoding pixel values of an occupancy map, the pixel values of the occupancy map indicating that a depth value of at least one 3D sample of a point cloud frame projected on a projection plane along a projection line is encoded as a pixel value of a depth image, and the pixel value indicating whether a code word representing at least one depth value of at least one other 3D sample projected along the projection line is stored in the occupancy map by the pixel value, wherein the depth image is a single depth image storing depth values of 3D samples closest to the projection plane, - encoding the depth value of the at least one 3D sample.

7. The method of claim 6, further comprising: transmitting first information indicating whether a fixed length code word is used.

8. The method of claim 7, further comprising: transmitting second information representing a length of the code word.

9. An apparatus for decoding a point cloud comprising one or more processors configured to: - decoding a pixel value of an occupancy map, the pixel value of the occupancy map indicating that a depth value of at least one 3D sample of a point cloud frame projected on a projection plane along a projection line is a pixel value of a depth image, and the pixel value indicating whether a code word representing at least one depth value of at least one other 3D sample projected along the projection line is stored in the occupancy map by the pixel value, wherein, The depth image is a single depth image storing depth values of 3D samples closest to the projection plane, - reconstructing the at least one 3D sample based on the pixel values of the occupancy map.

10. The apparatus of claim 9, wherein, The one or more processors are further configured to receive first information indicating whether a fixed length code word is used.

11. The apparatus of claim 10, further comprising: receiving second information representing a length of the code word.

12. The apparatus of claim 11, wherein, The first and / or second information is signaled per frame or per slice for a sequence of point cloud frames, a slice being a set of 2D samples representing a projection of 3D samples of the point cloud frame.

13. An apparatus for encoding a point cloud comprising one or more processors configured to: - encoding a pixel value of an occupancy map, the pixel value of the occupancy map being indicative of a depth value of at least one 3D sample of a point cloud frame projected on a projection plane along a projection line being encoded as a pixel value of a depth image, and the pixel value being indicative of whether a code word representing at least one depth value of at least one other 3D sample projected along the projection line is stored in the occupancy map by the pixel value, wherein, The depth image is a single depth image storing depth values of 3D samples closest to the projection plane, - encoding the depth value of the at least one 3D sample.

14. The apparatus of claim 13, wherein, The one or more processors are further configured to transmit first information indicating whether a fixed length code word is used.

15. The apparatus of claim 13, wherein, The one or more processors are further configured to transmit second information representing a length of the code word.

16. A non-transitory computer readable medium comprising instructions for causing one or more processors to perform operations of: - decoding a pixel value of an occupancy map, the pixel value of the occupancy map indicating that a depth value of at least one 3D sample of a point cloud frame projected on a projection plane along a projection line is a pixel value of a depth image, and the pixel value indicating whether a code word representing at least one depth value of at least one other 3D sample projected along the projection line is stored in the occupancy map by the pixel value, wherein, said depth image being a single depth image storing a depth value of a 3D sample closest to said projection plane, - reconstructing said at least one 3D sample based on said pixel values of said occupancy map.

17. A non-transitory computer readable medium comprising instructions for causing one or more processors to perform operations of: - encoding a pixel value of an occupancy map, the pixel value of the occupancy map being indicative of a depth value of at least one 3D sample of a point cloud frame projected on a projection plane along a projection line being encoded as a pixel value of a depth image, and the pixel value being indicative of whether a code word representing at least one depth value of at least one other 3D sample projected along the projection line is stored in the occupancy map by the pixel value, wherein, said depth image being a single depth image storing a depth value of a 3D sample closest to said projection plane, - encoding said depth value of said at least one 3D sample.

Citation Information

Patent Citations

  • Point cloud and mesh compression using image / video codecs

    US20180268570A1

  • Method and device for encoding a point cloud

    WO2019011917A1