METHOD, APPARATUS, AND MEDIUM FOR POINT CLOUD CODING

Embodiments of the present disclosure provide a solution for point cloud coding. A method for point cloud coding is proposed. The method comprises: performing a conversion between a point cloud sequence and a bitstream of the point cloud sequence based on a set of syntax elements comprising at least one of the following: a first syntax element identifying a first point cloud frame, a frame-specific attribute property being applied to the first point cloud frame, and the set of bits are indicated in the bitstream, or a second syntax element identifying a second point cloud frame, a frame boundary marker being applied to the second point cloud frame, wherein the length in bits of the second syntax element is greater than or equal to the number of bits in the set of bits.

FIELD

Embodiments of the present disclosure relates generally to point cloud coding techniques, and more particularly, to frame identification in geometry based point cloud compression.

BACKGROUND

A point cloud is a collection of individual data points in a three-dimensional (3D) plane with each point having a set coordinate on the X, Y, and Z axes. Thus, a point cloud may be used to represent the physical content of the three-dimensional space. Point clouds have shown to be a promising way to represent 3D visual data for a wide range of immersive applications, from augmented reality to autonomous cars.

Point cloud coding standards have evolved primarily through the development of the well-known MPEG organization. MPEG, short for Moving Picture Experts Group, is one of the main standardization groups dealing with multimedia. In 2017, the MPEG 3D Graphics Coding group (3DG) published a call for proposals (CFP) document to start to develop point cloud coding standard. The final standard will consist in two classes of solutions. Video-based Point Cloud Compression (V-PCC or VPCC) is appropriate for point sets with a relatively uniform distribution of points. Geometry-based Point Cloud Compression (G-PCC or GPCC) is appropriate for more sparse distributions. However, coding efficiency of conventional point cloud coding techniques is generally expected to be further improved.

SUMMARY

Embodiments of the present disclosure provide a solution for point cloud coding.

In a first aspect, a method for point cloud coding is proposed. The method comprises: performing a conversion between a point cloud sequence and a bitstream of the point cloud sequence based on a set of syntax elements comprising at least one of the following: a first syntax element identifying a first point cloud frame in the point cloud sequence, a frame-specific attribute property being applied to the first point cloud frame, wherein the length in bits of the first syntax element is greater than or equal to the number of bits in a set of bits of a frame counter for a current point cloud frame in the point cloud sequence, and the set of bits are indicated in the bitstream, or a second syntax element identifying a second point cloud frame in the point cloud sequence, a frame boundary marker being applied to the second point cloud frame, wherein the length in bits of the second syntax element is greater than or equal to the number of bits in the set of bits.

Based on the method in accordance with the first aspect of the present disclosure, the length in bits of the first or second syntax element is clearly specified with regard to the frame_ctr_lsb_bits. Compared with the conventional solution lacking such a constraint, the proposed method can advantageously improve the point cloud processing efficiency.

In a second aspect, an apparatus for processing point cloud data is proposed. The apparatus for processing point cloud data comprises a processor and a non-transitory memory with instructions thereon. The instructions upon execution by the processor, cause the processor to perform a method in accordance with the first aspect of the present disclosure.

In a third aspect, a non-transitory computer-readable storage medium is proposed. The non-transitory computer-readable storage medium stores instructions that cause a processor to perform a method in accordance with the first aspect of the present disclosure.

In a fourth aspect, another non-transitory computer-readable recording medium is proposed. The non-transitory computer-readable recording medium stores a bitstream of a point cloud sequence which is generated by a method performed by a point cloud processing apparatus. The method comprises: performing a conversion between the point cloud sequence and the bitstream based on a set of syntax elements comprising at least one of the following: a first syntax element identifying a first point cloud frame in the point cloud sequence, a frame-specific attribute property being applied to the first point cloud frame, wherein the length in bits of the first syntax element is greater than or equal to the number of bits in a set of bits of a frame counter for a current point cloud frame in the point cloud sequence, and the set of bits are indicated in the bitstream, or a second syntax element identifying a second point cloud frame in the point cloud sequence, a frame boundary marker being applied to the second point cloud frame, wherein the length in bits of the second syntax element is greater than or equal to the number of bits in the set of bits.

In a fifth aspect, a method for storing a bitstream of a point cloud sequence is proposed. The method comprises: performing a conversion between the point cloud sequence and the bitstream based on a set of syntax elements comprising at least one of the following: a first syntax element identifying a first point cloud frame in the point cloud sequence, a frame-specific attribute property being applied to the first point cloud frame, wherein the length in bits of the first syntax element is greater than or equal to the number of bits in a set of bits of a frame counter for a current point cloud frame in the point cloud sequence, and the set of bits are indicated in the bitstream, or a second syntax element identifying a second point cloud frame in the point cloud sequence, a frame boundary marker being applied to the second point cloud frame, wherein the length in bits of the second syntax element is greater than or equal to the number of bits in the set of bits; and storing the bitstream in a non-transitory computer-readable recording medium.

Throughout the drawings, the same or similar reference numerals usually refer to the same or similar elements.

DETAILED DESCRIPTION

Example Environment

FIG.1is a block diagram that illustrates an example point cloud coding system100that may utilize the techniques of the present disclosure. As shown, the point cloud coding system100may include a source device110and a destination device120. The source device110can be also referred to as a point cloud encoding device, and the destination device120can be also referred to as a point cloud decoding device. In operation, the source device110can be configured to generate encoded point cloud data and the destination device120can be configured to decode the encoded point cloud data generated by the source device110. The techniques of this disclosure are generally directed to coding (encoding and/or decoding) point cloud data, i.e., to support point cloud compression. The coding may be effective in compressing and/or decompressing point cloud data.

Source device100and destination device120may comprise any of a wide range of devices, including desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephone handsets such as smartphones and mobile phones, televisions, cameras, display devices, digital media players, video gaming consoles, video streaming devices, vehicles (e.g., terrestrial or marine vehicles, spacecraft, aircraft, etc.), robots, LIDAR devices, satellites, extended reality devices, or the like. In some cases, source device100and destination device120may be equipped for wireless communication.

The source device100may include a data source112, a memory114, a GPCC encoder116, and an input/output (I/O) interface118. The destination device120may include an input/output (I/O) interface128, a GPCC decoder126, a memory124, and a data consumer122. In accordance with this disclosure, GPCC encoder116of source device100and GPCC decoder126of destination device120may be configured to apply the techniques of this disclosure related to point cloud coding. Thus, source device100represents an example of an encoding device, while destination device120represents an example of a decoding device. In other examples, source device100and destination device120may include other components or arrangements. For example, source device100may receive data (e.g., point cloud data) from an internal or external source. Likewise, destination device120may interface with an external data consumer, rather than include a data consumer in the same device.

In general, data source112represents a source of point cloud data (i.e., raw, unencoded point cloud data) and may provide a sequential series of “frames” of the point cloud data to GPCC encoder116, which encodes point cloud data for the frames. In some examples, data source112generates the point cloud data. Data source112of source device100may include a point cloud capture device, such as any of a variety of cameras or sensors, e.g., one or more video cameras, an archive containing previously captured point cloud data, a 3D scanner or a light detection and ranging (LIDAR) device, and/or a data feed interface to receive point cloud data from a data content provider. Thus, in some examples, data source112may generate the point cloud data based on signals from a LIDAR apparatus. Alternatively or additionally, point cloud data may be computer-generated from scanner, camera, sensor or other data. For example, data source112may generate the point cloud data, or produce a combination of live point cloud data, archived point cloud data, and computer-generated point cloud data. In each case, GPCC encoder116encodes the captured, pre-captured, or computer-generated point cloud data. GPCC encoder116may rearrange frames of the point cloud data from the received order (sometimes referred to as “display order”) into a coding order for coding. GPCC encoder116may generate one or more bitstreams including encoded point cloud data. Source device100may then output the encoded point cloud data via I/O interface118for reception and/or retrieval by, e.g., I/O interface128of destination device120. The encoded point cloud data may be transmitted directly to destination device120via the I/O interface118through the network130A. The encoded point cloud data may also be stored onto a storage medium/server130B for access by destination device120.

Memory114of source device100and memory124of destination device120may represent general purpose memories. In some examples, memory114and memory124may store raw point cloud data, e.g., raw point cloud data from data source112and raw, decoded point cloud data from GPCC decoder126. Additionally or alternatively, memory114and memory124may store software instructions executable by, e.g., GPCC encoder116and GPCC decoder126, respectively. Although memory114and memory124are shown separately from GPCC encoder116and GPCC decoder126in this example, it should be understood that GPCC encoder116and GPCC decoder126may also include internal memories for functionally similar or equivalent purposes. Furthermore, memory114and memory124may store encoded point cloud data, e.g., output from GPCC encoder116and input to GPCC decoder126. In some examples, portions of memory114and memory124may be allocated as one or more buffers, e.g., to store raw, decoded, and/or encoded point cloud data. For instance, memory114and memory124may store point cloud data.

I/O interface118and I/O interface128may represent wireless transmitters/receivers, modems, wired networking components (e.g., Ethernet cards), wireless communication components that operate according to any of a variety of IEEE 802.11 standards, or other physical components. In examples where I/O interface118and I/O interface128comprise wireless components, I/O interface118and I/O interface128may be configured to transfer data, such as encoded point cloud data, according to a cellular communication standard, such as 4G, 4G-LTE (Long-Term Evolution), LTE Advanced, 5G, or the like. In some examples where I/O interface118comprises a wireless transmitter, I/O interface118and I/O interface128may be configured to transfer data, such as encoded point cloud data, according to other wireless standards, such as an IEEE 802.11 specification. In some examples, source device100and/or destination device120may include respective system-on-a-chip (SoC) devices. For example, source device100may include an SoC device to perform the functionality attributed to GPCC encoder116and/or I/O interface118, and destination device120may include an SoC device to perform the functionality attributed to GPCC decoder126and/or I/O interface128.

The techniques of this disclosure may be applied to encoding and decoding in support of any of a variety of applications, such as communication between autonomous vehicles, communication between scanners, cameras, sensors and processing devices such as local or remote servers, geographic mapping, or other applications.

I/O interface128of destination device120receives an encoded bitstream from source device110. The encoded bitstream may include signaling information defined by GPCC encoder116, which is also used by GPCC decoder126, such as syntax elements having values that represent a point cloud. Data consumer122uses the decoded data. For example, data consumer122may use the decoded point cloud data to determine the locations of physical objects. In some examples, data consumer122may comprise a display to present imagery based on the point cloud data.

GPCC encoder116and GPCC decoder126may operate according to a coding standard, such as video point cloud compression (VPCC) standard or a geometry point cloud compression (GPCC) standard. This disclosure may generally refer to coding (e.g., encoding and decoding) of frames to include the process of encoding or decoding data. An encoded bitstream generally includes a series of values for syntax elements representative of coding decisions (e.g., coding modes).

A point cloud may contain a set of points in a 3D space, and may have attributes associated with the point. The attributes may be color information such as R, G, B or Y, Cb, Cr, or reflectance information, or other attributes. Point clouds may be captured by a variety of cameras or sensors such as LIDAR sensors and 3D scanners and may also be computer-generated. Point cloud data are used in a variety of applications including, but not limited to, construction (modeling), graphics (3D models for visualizing and animation), and the automotive industry (LIDAR sensors used to help in navigation).

FIG.2is a block diagram illustrating an example of a GPCC encoder200, which may be an example of the GPCC encoder116in the system100illustrated inFIG.1, in accordance with some embodiments of the present disclosure.FIG.3is a block diagram illustrating an example of a GPCC decoder300, which may be an example of the GPCC decoder126in the system100illustrated inFIG.1, in accordance with some embodiments of the present disclosure.

In both GPCC encoder200and GPCC decoder300, point cloud positions are coded first. Attribute coding depends on the decoded geometry. InFIG.2andFIG.3, the region adaptive hierarchical transform (RAHT) unit218, surface approximation analysis unit212, RAHT unit314and surface approximation synthesis unit310are options typically used for Category 1 data. The level-of-detail (LOD) generation unit220, lifting unit222, LOD generation unit316and inverse lifting unit318are options typically used for Category 3 data. All the other units are common between Categories 1 and 3.

For Category 3 data, the compressed geometry is typically represented as an octree from the root all the way down to a leaf level of individual voxels. For Category 1 data, the compressed geometry is typically represented by a pruned octree (i.e., an octree from the root down to a leaf level of blocks larger than voxels) plus a model that approximates the surface within each leaf of the pruned octree. In this way, both Category 1 and 3 data share the octree coding mechanism, while Category 1 data may in addition approximate the voxels within each leaf with a surface model. The surface model used is a triangulation comprising 1-10 triangles per block, resulting in a triangle soup. The Category 1 geometry codec is therefore known as the Trisoup geometry codec, while the Category 3 geometry codec is known as the Octree geometry codec.

In the example ofFIG.2, GPCC encoder200may include a coordinate transform unit202, a color transform unit204, a voxelization unit206, an attribute transfer unit208, an octree analysis unit210, a surface approximation analysis unit212, an arithmetic encoding unit214, a geometry reconstruction unit216, an RAHT unit218, a LOD generation unit220, a lifting unit222, a coefficient quantization unit224, and an arithmetic encoding unit226.

As shown in the example ofFIG.2, GPCC encoder200may receive a set of positions and a set of attributes. The positions may include coordinates of points in a point cloud. The attributes may include information about points in the point cloud, such as colors associated with points in the point cloud.

Coordinate transform unit202may apply a transform to the coordinates of the points to transform the coordinates from an initial domain to a transform domain. This disclosure may refer to the transformed coordinates as transform coordinates. Color transform unit204may apply a transform to convert color information of the attributes to a different domain. For example, color transform unit204may convert color information from an RGB color space to a YCbCr color space.

Furthermore, in the example ofFIG.2, voxelization unit206may voxelize the transform coordinates. Voxelization of the transform coordinates may include quantizing and removing some points of the point cloud. In other words, multiple points of the point cloud may be subsumed within a single “voxel,” which may thereafter be treated in some respects as one point. Furthermore, octree analysis unit210may generate an octree based on the voxelized transform coordinates. Additionally, in the example ofFIG.2, surface approximation analysis unit212may analyze the points to potentially determine a surface representation of sets of the points. Arithmetic encoding unit214may perform arithmetic encoding on syntax elements representing the information of the octree and/or surfaces determined by surface approximation analysis unit212. GPCC encoder200may output these syntax elements in a geometry bitstream.

Geometry reconstruction unit216may reconstruct transform coordinates of points in the point cloud based on the octree, data indicating the surfaces determined by surface approximation analysis unit212, and/or other information. The number of transform coordinates reconstructed by geometry reconstruction unit216may be different from the original number of points of the point cloud because of voxelization and surface approximation. This disclosure may refer to the resulting points as reconstructed points. Attribute transfer unit208may transfer attributes of the original points of the point cloud to reconstructed points of the point cloud data.

Furthermore, RAHT unit218may apply RAHT coding to the attributes of the reconstructed points. Alternatively or additionally, LOD generation unit220and lifting unit222may apply LOD processing and lifting, respectively, to the attributes of the reconstructed points. RAHT unit218and lifting unit222may generate coefficients based on the attributes. Coefficient quantization unit224may quantize the coefficients generated by RAHT unit218or lifting unit222. Arithmetic encoding unit226may apply arithmetic coding to syntax elements representing the quantized coefficients. GPCC encoder200may output these syntax elements in an attribute bitstream.

In the example ofFIG.3, GPCC decoder300may include a geometry arithmetic decoding unit302, an attribute arithmetic decoding unit304, an octree synthesis unit306, an inverse quantization unit308, a surface approximation synthesis unit310, a geometry reconstruction unit312, a RAHT unit314, a LOD generation unit316, an inverse lifting unit318, a coordinate inverse transform unit320, and a color inverse transform unit322.

GPCC decoder300may obtain a geometry bitstream and an attribute bitstream. Geometry arithmetic decoding unit302of decoder300may apply arithmetic decoding (e.g., CABAC or other type of arithmetic decoding) to syntax elements in the geometry bitstream. Similarly, attribute arithmetic decoding unit304may apply arithmetic decoding to syntax elements in attribute bitstream. Octree synthesis unit306may synthesize an octree based on syntax elements parsed from geometry bitstream. In instances where surface approximation is used in geometry bitstream, surface approximation synthesis unit310may determine a surface model based on syntax elements parsed from geometry bitstream and based on the octree.

Furthermore, geometry reconstruction unit312may perform a reconstruction to determine coordinates of points in a point cloud. Coordinate inverse transform unit320may apply an inverse transform to the reconstructed coordinates to convert the reconstructed coordinates (positions) of the points in the point cloud from a transform domain back into an initial domain.

Additionally, in the example ofFIG.3, inverse quantization unit308may inverse quantize attribute values. The attribute values may be based on syntax elements obtained from attribute bitstream (e.g., including syntax elements decoded by attribute arithmetic decoding unit304).

Depending on how the attribute values are encoded, RAHT unit314may perform RAHT coding to determine, based on the inverse quantized attribute values, color values for points of the point cloud. Alternatively, LOD generation unit316and inverse lifting unit318may determine color values for points of the point cloud using a level of detail-based technique.

Furthermore, in the example ofFIG.3, color inverse transform unit322may apply an inverse color transform to the color values. The inverse color transform may be an inverse of a color transform applied by color transform unit204of encoder200. For example, color transform unit204may transform color information from an RGB color space to a YCbCr color space. Accordingly, color inverse transform unit322may transform color information from the YCbCr color space to the RGB color space.

Some exemplary embodiments of the present disclosure will be described in detailed hereinafter. It should be understood that section headings are used in the present document to facilitate case of understanding and do not limit the embodiments disclosed in a section to only that section. Furthermore, while certain embodiments are described with reference to GPCC or other specific point cloud codecs, the disclosed techniques are applicable to other point cloud coding technologies also. Furthermore, while some embodiments describe point cloud coding steps in detail, it will be understood that corresponding steps decoding that undo the coding will be implemented by a decoder.

This disclosure is related to point cloud compression technologies. Specifically, it is related to identification of coded point cloud frames in the Geometry based Point Cloud Compression (G-PCC) standard. The ideas may be applied individually or in various combinations, to any point cloud compression standard or non-standard point cloud codec, e.g., the under-development G-PCC standard.

Advancements in 3D capturing and rendering technologies are enabling new applications and services in the fields of assisted and autonomous driving, maps, cultural heritage, industrial processes, immersive real-time communication, and Virtual/Augmented/Mixed reality (VR/AR/MR) content creation, transmission, and communication. Point clouds have arisen as one of the main representations for such applications.

A point cloud frame consists of a set of 3D points. Each point, in addition to having a 3D position, may also be associated with numerous other attributes such as colour, transparency, reflectance, timestamp, surface normal, and classification. Such representations require a large amount of data, which can be costly in terms of storage and transmission.

The Moving Picture Experts Group (MPEG) has been developing two point cloud compression standards. The first is the Video-based Point Cloud Compression (V-PCC) standard, which is appropriate for point sets with a relatively uniform distribution of points. The second is the Geometry-based Point Cloud Compression (G-PCC) standard, which is appropriate for more sparse distributions.

3.2. Some G-PCC Basic Concepts

3.2.1 Terms and Definitions

Point

fundamental element of a point cloud consisting of a position specified as a Cartesian coordinate and zero or more attributes

Point Cloud

unordered list of points

Point Cloud Sequence

sequence of zero or more point clouds

Point Cloud Frame

point cloud in a point cloud sequence

Geometry

point positions associated with a set of points

Attribute

scalar or vector property associated with each point in a point cloudEXAMPLE Colour, reflectance, frame index, etc.

sequence of bits that form the representation of a coded point cloud sequence

Coded Point Cloud Frame

coded representation of a point cloud frame

Bounding Box

axis aligned cuboid defining a spatial region that bounds a set of points

set of slices identified by a common slice_tag syntax element value whose geometry is contained within a bounding box specified in a tile inventory data unit

Slice

part of, or an entire, coded point cloud frame consisting of a GDU and zero or more corresponding ADUsNote 1 to entry: the bounding boxes of any two slices may intersect.

3.2.2 Coded Point Cloud Sequence

The coded representation of a point cloud sequence consists of one or more point cloud frames encoded as a sequence of DUs.

The coded point cloud sequence shall consist of:A SPS that enumerates the attributes present in the coded point cloud format and conveys both metadata and decoding parameters that pertain to the whole coded point cloud sequence.At least one GPS that conveys parameters used in the decoding of geometry data.If ADUs are present in the coded point cloud sequence, then at least one APS that conveys parameters used in the decoding of attribute data.DUs comprising each coded point cloud frame.

Profiles and levels specify limits on the number of bits required to represent geometry and attribute component information.

3.2.3 Coded Point Cloud Frame and Slice

A coded point cloud frame comprises a sequence of zero or more slices with the same value of FrameCtr. An empty frame is indicated using consecutive frame boundary data units.

A code point cloud frame consists of the following data units:Geometry, attribute, or defaulted attribute data units.Zero or more frame boundary data units that identify the boundary between two coded point cloud frames.

A slice is an unordered list of points. Slice point positions are coded relative to a slice origin in the coding coordinate system. The coded volumes of slices may intersect, including within a point cloud frame.

Each slice shall consist of a single GDU followed by zero or more ADUs. The GDU header serves as the slice header.

ADUs depend upon the corresponding GDU within the same slice. DUs belonging to different slices shall not be interleaved.

A decoded point cloud frame is the concatenation of all points in all constituent slices of the frame. Coincident points in a point cloud frame may arise from the concatenation of multiple slices.

Slices are either independent or dependent. An independent slice does not require any other slice to be decoded first. A dependent slice requires that the immediately preceding slice in bitstream order is decoded first. A slice shall at most be depended upon by a single dependent slice.

3.2.4 Slices and Tiles

A group of slices within a point cloud frame may be identified by a common value of slice_tag.

A tile inventory provides a means to associate a bounding box with a group of slices. Each tile consists of a single bounding box and an identifier (tileId). Tile bounding boxes may overlap.

When a tile inventory is present in the bitstream, slice_tag shall identify a tile by tileId. Otherwise, the use of slice_tag is application specific.

Tile information is not used by the decoding process described in this document. Decoder implementations may use a tile inventory to aid spatial random access.

A decoder that performs spatial random access to decode a region R may use the tile inventory to determine the tileIds of the set of tiles that intersect R. Only slices with matching tileIds need to be decoded.

3.2.5 the Notional Frame Counter FrameCtr

The variable FrameCtr represents the notional frame counter. If the current frame is the first frame in the bitstream, FrameCtr is set equal to frame_ctr_lsb. Otherwise, the variable FrameCtr is updated as follows:

3.3. G-PCC Sequence Parameter Set

3.3.1 Sequence Parameter Set Syntax

3.3.2 Sequence Parameter Set Semantics

The parameters specified in an SPS shall apply to any DU where that SPS is activated.simple_profile_compliant equal to 1 specifies that the bitstream conforms to the Simple profile. simple_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Simple profile.dense_profile_compliant equal to 1 specifies that the bitstream conforms to the Dense profile. dense_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Dense profile.predictive_profile_compliant equal to 1 specifies that the bitstream conforms to the Predictive profile. predictive_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Predictive profile.main_profile_compliant equal to 1 specifies that the bitstream conforms to the Main profile. main_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Main profile.reserved_profile_18bits shall be equal to 0 in bitstreams conforming to this version of this document. Other values for reserved_profile_18bits are reserved for future use by ISO/IEC. Decoders shall ignore the value of reserved_profile_18bits.slice_reordering_constraint equal to 1 specifies that the bitstream is sensitive to the reordering and removal of slices. slice_reordering_constraint equal to 0 specifies that the bitstream is not sensitive to the reordering and removal of slices.unique_point_positions_constraint equal to 1 specifies that in each coded point cloud frame all points have unique positions. unique_point_positions_constraint equal to 0 specifies that in any coded point cloud frame, two or more points may have the same position.NOTE 1 For example, even if the points in each slice have unique positions, points from different slices in a frame can be coincident. In that case, unique_point_positions_constraint would be set to 0.NOTE 2 Two points with identical positions in the same frame with different values of the frame index attribute do not satisfy unique_point_positions_constraint equal to 1.level_idc specifies the level to which the bitstream conforms as specified in Annex A. Bitstreams shall not contain values of level_idc other than those specified in Annex A. Other values of level_idc are reserved for future use by ISO/IEC.sps_seq_parameter_set_id identifies the SPS for reference by other DUs. sps_seq_parameter_set_id shall be 0 in bitstreams conforming to this version of this document. Other values of sps_seq_parameter_set_id are reserved for future use by ISO/IEC.frame_ctr_Isb_bits specifies the length in bits of the frame_ctr_Isb syntax element.slice_tag_bits specifies the length in bits of the slice_tag syntax element.. . .

3.5. G-PCC Frame Boundary Data Unit

3.5.1 Frame Boundary Marker Syntax

3.5.2 Frame Boundary Marker Semantics

The frame boundary marker explicitly marks the end of a frame.fbdu_frame_ctr_lsb_bits specifies the length in bits of the syntax element fbdu_frame_ctr_lsb.fbdu_frame_ctr_Isb identifies the frame to which the frame boundary marker applies. Identification shall use the least fbdu_frame_ctr_lsb_bits of the notional frame counter, FrameCtr.

3.6.1 Geometry Data Unit Header Syntax

3.6.2 Geometry Data Unit Header Semantics

The designs for the frame identifications and slice tags (i.e., the slice_tag values) related signalling in the latest draft G-PCC specification have the following problems:1) The syntax element frame_ctr_lsb_bits specifies the length in bits of the frame_ctr_lsb syntax element in the GDU headers (i.e., the slice headers), which is used for derivation of the notional frame counter FrameCtr. However, frame_ctr_lsb_bits is a u(5)-coded syntax element and the value may be equal to 0 (unless explicitly disallowed). When the value of frame_ctr_lsb_bits is equal to 0, then the length of the frame_ctr_lsb syntax element is 0 bits, meaning that the frame_ctr_lsb syntax element is not present in the slice GDU headers, and consequently there is no way to identify the coded point cloud frames.2) The syntax element slice_tag_bits specifies the length in bits of the slice_tag syntax element in the GDU headers (i.e., the slice headers). Similarly, slice_tag_bits is a u(5)-coded syntax element and the value may be equal to 0 (unless explicitly disallowed). When the value of slice_tag_bits is equal to 0, then the length of the slice_tag syntax element is 0 bits, meaning that the slice_tag_bits syntax element is not present in the slice GDU headers, and consequently there is no way to identify tiles when an applicable tile inventory is present.3) It is specified that the syntax element fsap_frame_ctr_lsb identifies the frame to which the frame-specific attribute parameters apply, and that identification shall use the least fsap_frame_ctr_lsb_bits of the notional frame counter FrameCtr. However, it is unclear how this normative constraint can be checked to verify whether the requirement is fulfilled or not.4) It is specified that the syntax element fbdu_frame_ctr_lsb identifies the frame to which the frame boundary marker applies, and that identification shall use the least fbdu_frame_ctr_lsb_bits of the notional frame counter FrameCtr. Similarly, it is unclear how this normative constraint can be checked to verify whether the requirement is fulfilled or not.

5. Detailed Solutions

To solve the above problem, methods as summarized below are disclosed. The solutions should be considered as examples to explain the general concepts and should not be interpreted in a narrow way. Furthermore, these solutions can be applied individually or combined in any manner.1) To solve the first problem, it is specified that the value of frame_ctr_lsb_bits shall be greater than 0.a. In one alternative, the syntax element frame_ctr_lsb_bits is renamed to be frame_ctr_lsb_bits_minus1, with the semantics being that frame_ctr_lsb_bits_minus1 plus 1 specifies the length in bits of the frame_ctr_lsb syntax element.b. In another alternative, condition the frame_ctr_lsb syntax element in the geometry_data_unit_header( ) syntax structure based on “if (frame_ctr_lsb_bits>0)”.i. In one example, additionally, it is specified that when frame_ctr_lsb_bits is equal to 0, there shall be only one coded point cloud frame in the bitstream.2) To solve the second problem, it is specified that the value of slice_tag_bits shall be greater than 0.a. In one alternative, the syntax element slice_tag_bits is renamed to be slice_tag_bits_minus1, with the semantics being that slice_tag_bits_minus1 plus 1 specifies the length in bits of the slice_tag syntax element.b. In another alternative, condition the slice_tag syntax element in the geometry_data_unit_header ( ) syntax structure based on “if (slice_tag_bits>0)”.i. In one example, additionally, it is specified that when slice_tag_bits is equal to 0, there shall be no tile inventory present in the coded point cloud sequence.3) To solve the third problem, it is specified that the value of fsap_frame_ctr_lsb_bits shall be equal to frame_ctr_lsb_bits in the active SPS.a. Alternatively, it is specified that the value of fsap_frame_ctr_lsb_bits shall be greater than or equal to frame_ctr_lsb_bits in the active SPS.b. Alternatively, the syntax element fsap_frame_ctr_lsb_bits is removed and the length in bits of the fsap_frame_ctr_lsb syntax element is specified to be frame_ctr_lsb_bits in the active SPS.4) To solve the fourth problem, it is specified that the value of fbdu_frame_ctr_lsb_bits shall be equal to frame_ctr_lsb_bits in the active SPS.a. Alternatively, it is specified that the value of fbdu_frame_ctr_lsb_bits shall be greater than or equal to frame_ctr_lsb_bits in the active SPS.b. Alternatively, the syntax element fbdu_frame_ctr_lsb_bits is removed and the length in bits of the fbdu_frame_ctr_lsb syntax element is specified to be frame_ctr_lsb_bits in the active SPS.

Below are some example embodiments for some of the solution items summarized above in Section 5. These embodiments can be applied to G-VVC. Changes are highlighted, relative to the latest draft G-PCC specification, wherein additions are shown by using bolded words (e.g., this format indicates added text), and deleted parts are shown by using words in italics between double curly brackets (e.g., {{this format indicates deleted text}}). It should be understood that only markings in this section are intended to represent changes relative to the latest draft G-PCC specification.

This embodiment corresponds to items 1, 2, 3, and 4 summarized above in Section 5.

6.1.1 Sequence Parameter Set Semantics

The parameters specified in an SPS shall apply to any DU where that SPS is activated.simple_profile_compliant equal to 1 specifies that the bitstream conforms to the Simple profile.simple_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Simple profile.dense_profile_compliant equal to 1 specifies that the bitstream conforms to the Dense profile.dense_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Dense profile.predictive_profile_compliant equal to 1 specifies that the bitstream conforms to the Predictive profile.predictive_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Predictive profile.main_profile_compliant equal to 1 specifies that the bitstream conforms to the Main profile.main_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Main profile.reserved_profile_18bits shall be equal to 0 in bitstreams conforming to this version of this document. Other values for reserved_profile_18bits are reserved for future use by ISO/IEC. Decoders shall ignore the value of reserved_profile_18bits.slice_reordering_constraint equal to 1 specifies that the bitstream is sensitive to the reordering and removal of slices. slice_reordering_constraint equal to 0 specifies that the bitstream is not sensitive to the reordering and removal of slices.unique_point_positions_constraint equal to 1 specifies that in each coded point cloud frame all points have unique positions. unique_point_positions_constraint equal to 0 specifies that in any coded point cloud frame, two or more points may have the same position.NOTE 3 For example, even if the points in each slice have unique positions, points from different slices in a frame can be coincident. In that case, unique_point_positions_constraint would be set to 0.NOTE 4 Two points with identical positions in the same frame with different values of the frame index attribute do not satisfy unique_point_positions_constraint equal to 1.level_idc specifies the level to which the bitstream conforms as specified in Annex A. Bitstreams shall not contain values of level_idc other than those specified in Annex A. Other values of level_idc are reserved for future use by ISO/IEC.sps_seq_parameter_set_id identifies the SPS for reference by other DUs. sps_seq_parameter_set_id shall be 0 in bitstreams conforming to this version of this document. Other values of sps_seq_parameter_set_id are reserved for future use by ISO/IEC.frame_ctr_lsb_bits specifies the length in bits of the frame_ctr_lsb syntax element. The value of frame_ctr_lsb_bits shall be greater than 0.slice_tag_bits specifies the length in bits of the slice_tag syntax element. The value of slice_tag_bits shall be greater than 0.. . .

6.1.3 Frame Boundary Marker Semantics

The frame boundary marker explicitly marks the end of a frame.fbdu_frame_ctr_lsb_bits specifies the length in bits of the syntax element fbdu_frame_ctr_lsb. The value of fbdu_frame_ctr_lsb_bits shall be equal to frame_ctr_lsb_bits in the active SPS.fbdu_frame_ctr_lsb identifies the frame to which the frame boundary marker applies. {{Identification shall use the least fbdu_frame_ctr_lsb_bits of the notional frame counter, FrameCtr.}}

This embodiment corresponds to items 1.a and 2.a summarized above in Section 5.

6.2.1 Sequence Parameter Set Syntax

6.2.2 Sequence Parameter Set Semantics

The parameters specified in an SPS shall apply to any DU where that SPS is activated.simple_profile_compliant equal to 1 specifies that the bitstream conforms to the Simple profile.simple_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Simple profile.dense_profile_compliant equal to 1 specifies that the bitstream conforms to the Dense profile.dense_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Dense profile.predictive_profile_compliant equal to 1 specifies that the bitstream conforms to the Predictive profile.predictive_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Predictive profile.main_profile_compliant equal to 1 specifies that the bitstream conforms to the Main profile.main_profile_compliant equal to 0 specifies that the bitstream conforms to a profile other than the Main profile.reserved_profile_18bits shall be equal to 0 in bitstreams conforming to this version of this document. Other values for reserved_profile_18bits are reserved for future use by ISO/IEC. Decoders shall ignore the value of reserved_profile_18bits.slice_reordering_constraint equal to 1 specifies that the bitstream is sensitive to the reordering and removal of slices. slice_reordering_constraint equal to 0 specifies that the bitstream is not sensitive to the reordering and removal of slices.unique_point_positions_constraint equal to 1 specifies that in each coded point cloud frame all points have unique positions. unique_point_positions_constraint equal to 0 specifies that in any coded point cloud frame, two or more points may have the same position.NOTE 5 For example, even if the points in each slice have unique positions, points from different slices in a frame can be coincident. In that case, unique_point_positions_constraint would be set to 0.NOTE 6 Two points with identical positions in the same frame with different values of the frame index attribute do not satisfy unique_point_positions_constraint equal to 1.level_idc specifies the level to which the bitstream conforms as specified in Annex A. Bitstreams shall not contain values of level_idc other than those specified in Annex A. Other values of level_idc are reserved for future use by ISO/IEC.sps_seq_parameter_set_id identifies the SPS for reference by other DUs. sps_seq_parameter_set_id shall be 0 in bitstreams conforming to this version of this document. Other values of sps_seq_parameter_set_id are reserved for future use by ISO/IEC.frame_ctr_lsb_bits_minus1 plus 1 specifies the length in bits of the frame_ctr_lsb syntax element. slice_tag_bits_minus1 plus 1 specifies the length in bits of the slice_tag syntax element.. . .

6.2.3 Geometry Data Unit Header Semantics

6.2.4 the Notional Frame Counter FrameCtr

The variable FrameCtr represents the notional frame counter. If the current frame is the first frame in the bitstream, FrameCtr is set equal to frame_ctr_lsb. Otherwise, the variable FrameCtr is updated as follows:

More details of the embodiments of the present disclosure will be described below which are related to frame identification in geometry based point cloud compression.

As used herein, the term “point cloud sequence” may refer to a sequence of zero or more point clouds. The term “point cloud frame” may refer to a point cloud in a point cloud sequence. The term “coded point cloud frame” may refer to coded representation of a point cloud frame. The term “bounding box” may refer to an axis aligned cuboid defining a spatial region that bounds a set of points. The term “slice” may refer to part of, or an entire, coded point cloud frame consisting of a geometry data unit (GDU) and zero or more corresponding attribute data units (ADUs).

FIG.4illustrates a flowchart of a method400for point cloud coding in accordance with some embodiments of the present disclosure. As shown inFIG.4, at402, a conversion between a point cloud sequence and a bitstream of the point cloud sequence is performed based on a set of syntax elements. In some embodiments, the point cloud sequence may be encoded into the bitstream during the conversion at402. Additionally or alternatively, the point cloud sequence may be decoded from the bitstream during the conversion at402.

In some embodiments, the set of syntax elements comprises a first syntax element identifying a first point cloud frame in the point cloud sequence. A frame-specific attribute property is applied to the first point cloud frame. In one example, the first syntax element may be syntax element fsap_frame_ctr_lsb. The length in bits of the first syntax element is greater than or equal to the number of bits in a set of bits of a frame counter for a current point cloud frame in the point cloud sequence. The set of bits are indicated in the bitstream. In one example, the number of bits in the set of bits may be specified by a third syntax element, such as frame_ctr_lsb_bits. By way of example, the length in bits of the syntax element fsap_frame_ctr_lsb may be specified to be greater than or equal to frame_ctr_lsb_bits.

Alternatively or additionally, the set of syntax elements comprises a second syntax element identifying a second point cloud frame in the point cloud sequence. A frame boundary marker is applied to the second point cloud frame. In one example, the second syntax element may be syntax element fbdu_frame_ctr_lsb. The number of bits in the second syntax element is greater than or equal to the number of bits in the set of bits. In one example, the number of bits in the set of bits may be specified by the third syntax element, such as frame_ctr_lsb_bits. By way of example, the length in bits of the syntax element fbdu_frame_ctr_lsb may be specified to be greater than or equal to frame_ctr_lsb_bits.

In view of the above, the length in bits of the first or second syntax element is clearly specified with regard to the frame_ctr_lsb_bits. Compared with the conventional solution lacking such a constraint, the proposed method can advantageously improve the point cloud processing efficiency.

In some embodiments, the third syntax element may be comprised in the set of syntax elements. The third syntax element may also be comprised in a sequence parameter set (SPS) activated for the point cloud sequence, also referred to as an active SPS.

In some additional embodiments, the set of syntax elements may further comprise a fourth syntax element specifying the length in bits of the first syntax element. By way of example rather than limitation, the fourth syntax element may be syntax element fsap_frame_ctr_lsb_bits. In one example, a value of the fourth syntax element may be greater than or equal to a value of the third syntax element. The value of fsap_frame_ctr_lsb_bits may be specified to be greater than or equal to frame_ctr_lsb_bits in the active SPS. In another example, the value of the fourth syntax element may be equal to the value of the third syntax element. The value of fsap_frame_ctr_lsb_bits may be specified to be equal to frame_ctr_lsb_bits in the active SPS.

In some additional embodiments, the set of syntax elements may further comprise a fifth syntax element specifying the length in bits of the second syntax element. By way of example rather than limitation, the fifth syntax element may be syntax element fbdu_frame_ctr_lsb_bits. In one example, a value of the fifth syntax element may be greater than or equal to the value of the third syntax element. The value of fbdu_frame_ctr_lsb_bits may be specified to be greater than or equal to frame_ctr_lsb_bits in the active SPS. In another example, the value of the fifth syntax element may be equal to the value of the third syntax element. The value of fbdu_frame_ctr_lsb_bits may be specified to be equal to frame_ctr_lsb_bits in the active SPS.

In some embodiments, a value of the third syntax element may be greater than 0. In one example, it may be specified that the value of frame_ctr_lsb_bits shall be greater than 0. In some embodiments, the current point cloud frame may comprise a slice. A sixth syntax element (such as syntax element frame_ctr_lsb) indicating the set of bits may be comprised in a syntax structure for geometry data unit header (such as geometry_data_unit_header ( ) of the slice, if a value of the third syntax element is greater than 0. In one example, the frame_ctr_lsb syntax element may be comprised in the geometry_data_unit_header ( ) syntax structure based on a prerequisite “if (frame_ctr_lsb_bits>0)”. In some embodiments, a value of the third syntax element may be equal to 0, and the bitstream shall comprise only one coded point cloud frame.

In some embodiments, the number of bits in the set of bits may be greater than 0, and the set of syntax elements further comprise a seventh syntax element specifying the number of bits in the set of bits minus 1. In one example, the seventh syntax element may be syntax element frame_ctr_lsb_bits_minus1. It may be specified that frame_ctr_lsb_bits_minus1 plus 1 specifies the length in bits of the frame_ctr_lsb syntax element.

In some embodiments, the current point cloud frame may comprise a slice. The set of syntax element further comprise an eighth syntax element (such as syntax element slice_tag_bits) specifying the length in bits of a slice tag for the slice. In one example, a value of the eighth syntax element may be greater than 0. It may be specified that the value of slice_tag_bits shall be greater than 0.

In some embodiments, a ninth syntax element (such as syntax element slice_tag) indicating the slice tag may be comprised in a syntax structure for geometry data unit header (such as geometry_data_unit_header ( ) of the slice, if a value of the eighth syntax element may be greater than 0. In one example, the slice_tag syntax element may be comprised in the geometry_data_unit_header ( ) syntax structure based on a prerequisite “if (slice_tag_bits>0)”. Alternatively, a value of the eighth syntax element may be equal to 0, and the conversion may be performed without a tile inventory. By way of example, it is specified that when slice_tag_bits is equal to 0, there shall be no tile inventory present in the coded point cloud sequence.

In some embodiments, the current point cloud frame comprises a slice. The number of bits in a slice tag for the slice may be greater than 0, and the set of syntax elements may further comprise a tenth syntax element specifying the length in bits of the slice tag minus 1. In one example, the tenth syntax element may be syntax element slice_tag_bits_minus1. It may be specified that slice_tag_bits_minus1 plus 1 specifies the length in bits of the slice_tag syntax element.

According to embodiments of the present disclosure, a non-transitory computer-readable recording medium is proposed. A bitstream of a point cloud sequence is stored in the non-transitory computer-readable recording medium. The bitstream can be generated by a method performed by a point cloud processing apparatus. According to the method, a conversion between a point cloud sequence and a bitstream of the point cloud sequence is performed based on a set of syntax elements. The set of syntax elements comprise at least one of the following: a first syntax element identifying a first point cloud frame in the point cloud sequence, a frame-specific attribute property being applied to the first point cloud frame, the length in bits of the first syntax element being greater than or equal to the number of bits in a set of bits of a frame counter for a current point cloud frame in the point cloud sequence, the set of bits being indicated in the bitstream, or a second syntax element identifying a second point cloud frame in the point cloud sequence, a frame boundary marker being applied to the second point cloud frame, the length in bits of the second syntax element being greater than or equal to the number of bits in the set of bits.

According to embodiments of the present disclosure, a method for storing a bitstream of a point cloud sequence is proposed. In the method, a conversion between a point cloud sequence and a bitstream of the point cloud sequence is performed based on a set of syntax elements. The set of syntax elements comprise at least one of the following: a first syntax element identifying a first point cloud frame in the point cloud sequence, a frame-specific attribute property being applied to the first point cloud frame, the length in bits of the first syntax element being greater than or equal to the number of bits in a set of bits of a frame counter for a current point cloud frame in the point cloud sequence, the set of bits being indicated in the bitstream, or a second syntax element identifying a second point cloud frame in the point cloud sequence, a frame boundary marker being applied to the second point cloud frame, the length in bits of the second syntax element being greater than or equal to the number of bits in the set of bits. The bitstream is stored in the non-transitory computer-readable recording medium.

Implementations of the present disclosure can be described in view of the following clauses, the features of which can be combined in any reasonable manner.

Clause 1. A method for point cloud coding, comprising: performing a conversion between a point cloud sequence and a bitstream of the point cloud sequence based on a set of syntax elements comprising at least one of the following: a first syntax element identifying a first point cloud frame in the point cloud sequence, a frame-specific attribute property being applied to the first point cloud frame, wherein the length in bits of the first syntax element is greater than or equal to the number of bits in a set of bits of a frame counter for a current point cloud frame in the point cloud sequence, and the set of bits are indicated in the bitstream, or a second syntax element identifying a second point cloud frame in the point cloud sequence, a frame boundary marker being applied to the second point cloud frame, wherein the length in bits of the second syntax element is greater than or equal to the number of bits in the set of bits.

Clause 2. The method of clause 1, wherein the set of syntax elements further comprise a third syntax element specifying the number of bits in the set of bits and at least one of the following: a fourth syntax element specifying the length in bits of the first syntax element, a value of the fourth syntax element being greater than or equal to a value of the third syntax element, or a fifth syntax element specifying the length in bits of the second syntax element, a value of the fifth syntax element being greater than or equal to the value of the third syntax element.

Clause 3. The method of clause 2, wherein the third syntax element is comprised in a sequence parameter set (SPS) activated for the point cloud sequence.

Clause 4. The method of any of clauses 2-3, wherein the first syntax element is represented as fsap_frame_ctr_lsb, the second syntax element is represented as fbdu_frame_ctr_lsb, the third syntax element is represented as frame_ctr_lsb_bits, the fourth syntax element is represented as fsap_frame_ctr_lsb_bits, or the fifth syntax element is represented as fbdu_frame_ctr_lsb_bits.

Clause 5. The method of any of clauses 2-4, wherein a value of the third syntax element is greater than 0.

Clause 6. The method of any of clauses 2-4, wherein the current point cloud frame comprises a slice, a sixth syntax element indicating the set of bits is comprised in a syntax structure for geometry data unit header of the slice, if a value of the third syntax element is greater than 0.

Clause 7. The method of clause 6, wherein the sixth syntax element is represented as frame_ctr_lsb.

Clause 8. The method of any of clauses 2-4, wherein a value of the third syntax element is equal to 0, and the bitstream comprises only one coded point cloud frame.

Clause 9. The method of any of clauses 1-4, wherein the number of bits in the set of bits is greater than 0, and the set of syntax elements further comprise a seventh syntax element specifying the number of bits in the set of bits minus 1.

Clause 10. The method of clause 9, wherein the seventh syntax element is represented as frame_ctr_lsb_bits_minus1.

Clause 11. The method of any of clauses 1-10, wherein the current point cloud frame comprises a slice, the set of syntax element further comprise an eighth syntax element specifying the length in bits of a slice tag for the slice.

Clause 12. The method of clause 11, wherein the eighth syntax element is represented as slice_tag_bits.

Clause 13. The method of any of clauses 11-12, wherein a value of the eighth syntax element is greater than 0.

Clause 14. The method of any of clauses 11-12, wherein a ninth syntax element indicating the slice tag is comprised in a syntax structure for geometry data unit header of the slice, if a value of the eighth syntax element is greater than 0.

Clause 15. The method of clause 14, wherein the ninth syntax element is represented as slice_tag.

Clause 16. The method of any of clauses 11-12, wherein a value of the eighth syntax element is equal to 0, and the conversion is performed without a tile inventory.

Clause 17. The method of any of clauses 1-10, wherein the current point cloud frame comprises a slice, the length in bits of a slice tag for the slice is greater than 0, and the set of syntax elements further comprise a tenth syntax element specifying the length in bits of the slice tag minus 1.

Clause 18. The method of clause 17, wherein the tenth syntax element is represented as slice_tag_bits_minus1.

Clause 19. The method of any of clauses 1-18, wherein the conversion includes encoding the point cloud sequence into the bitstream.

Clause 20. The method of any of clauses 1-18, wherein the conversion includes decoding the point cloud sequence from the bitstream.

Clause 21. An apparatus for processing point cloud data comprising a processor and a non-transitory memory with instructions thereon, wherein the instructions upon execution by the processor, cause the processor to perform a method in accordance with any of clauses 1-20.

Clause 22. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform a method in accordance with any of clauses 1-20.

Clause 23. A non-transitory computer-readable recording medium storing a bitstream of a point cloud sequence which is generated by a method performed by a point cloud processing apparatus, wherein the method comprises: performing a conversion between the point cloud sequence and the bitstream based on a set of syntax elements comprising at least one of the following: a first syntax element identifying a first point cloud frame in the point cloud sequence, a frame-specific attribute property being applied to the first point cloud frame, wherein the length in bits of the first syntax element is greater than or equal to the number of bits in a set of bits of a frame counter for a current point cloud frame in the point cloud sequence, and the set of bits are indicated in the bitstream, or a second syntax element identifying a second point cloud frame in the point cloud sequence, a frame boundary marker being applied to the second point cloud frame, wherein the length in bits of the second syntax element is greater than or equal to the number of bits in the set of bits.

Clause 24. A method for storing a bitstream of a point cloud sequence, comprising: performing a conversion between the point cloud sequence and the bitstream based on a set of syntax elements comprising at least one of the following: a first syntax element identifying a first point cloud frame in the point cloud sequence, a frame-specific attribute property being applied to the first point cloud frame, wherein the length in bits of the first syntax element is greater than or equal to the number of bits in a set of bits of a frame counter for a current point cloud frame in the point cloud sequence, and the set of bits are indicated in the bitstream, or a second syntax element identifying a second point cloud frame in the point cloud sequence, a frame boundary marker being applied to the second point cloud frame, wherein the length in bits of the second syntax element is greater than or equal to the number of bits in the set of bits; and storing the bitstream in a non-transitory computer-readable recording medium.

Example Device

FIG.5illustrates a block diagram of a computing device500in which various embodiments of the present disclosure can be implemented. The computing device500may be implemented as or included in the source device110(or the GPCC encoder116or200) or the destination device120(or the GPCC decoder126or300).

It would be appreciated that the computing device500shown inFIG.5is merely for purpose of illustration, without suggesting any limitation to the functions and scopes of the embodiments of the present disclosure in any manner.

As shown inFIG.5, the computing device500includes a general-purpose computing device500. The computing device500may at least comprise one or more processors or processing units510, a memory520, a storage unit530, one or more communication units540, one or more input devices550, and one or more output devices560.

In some embodiments, the computing device500may be implemented as any user terminal or server terminal having the computing capability. The server terminal may be a server, a large-scale computing device or the like that is provided by a service provider. The user terminal may for example be any type of mobile terminal, fixed terminal, or portable terminal, including a mobile phone, station, unit, device, multimedia computer, multimedia tablet, Internet node, communicator, desktop computer, laptop computer, notebook computer, netbook computer, tablet computer, personal communication system (PCS) device, personal navigation device, personal digital assistant (PDA), audio/video player, digital camera/video camera, positioning device, television receiver, radio broadcast receiver, E-book device, gaming device, or any combination thereof, including the accessories and peripherals of these devices, or any combination thereof. It would be contemplated that the computing device500can support any type of interface to a user (such as “wearable” circuitry and the like).

The processing unit510may be a physical or virtual processor and can implement various processes based on programs stored in the memory520. In a multi-processor system, multiple processing units execute computer executable instructions in parallel so as to improve the parallel processing capability of the computing device500. The processing unit510may also be referred to as a central processing unit (CPU), a microprocessor, a controller or a microcontroller.

The computing device500typically includes various computer storage medium. Such medium can be any medium accessible by the computing device500, including, but not limited to, volatile and non-volatile medium, or detachable and non-detachable medium. The memory520can be a volatile memory (for example, a register, cache, Random Access Memory (RAM)), a non-volatile memory (such as a Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), or a flash memory), or any combination thereof. The storage unit530may be any detachable or non-detachable medium and may include a machine-readable medium such as a memory, flash memory drive, magnetic disk or another other media, which can be used for storing information and/or data and can be accessed in the computing device500.

The computing device500may further include additional detachable/non-detachable, volatile/non-volatile memory medium. Although not shown inFIG.5, it is possible to provide a magnetic disk drive for reading from and/or writing into a detachable and non-volatile magnetic disk and an optical disk drive for reading from and/or writing into a detachable non-volatile optical disk. In such cases, each drive may be connected to a bus (not shown) via one or more data medium interfaces.

The communication unit540communicates with a further computing device via the communication medium. In addition, the functions of the components in the computing device500can be implemented by a single computing cluster or multiple computing machines that can communicate via communication connections. Therefore, the computing device500can operate in a networked environment using a logical connection with one or more other servers, networked personal computers (PCs) or further general network nodes.

The input device550may be one or more of a variety of input devices, such as a mouse, keyboard, tracking ball, voice-input device, and the like. The output device560may be one or more of a variety of output devices, such as a display, loudspeaker, printer, and the like. By means of the communication unit540, the computing device500can further communicate with one or more external devices (not shown) such as the storage devices and display device, with one or more devices enabling the user to interact with the computing device500, or any devices (such as a network card, a modem and the like) enabling the computing device500to communicate with one or more other computing devices, if required. Such communication can be performed via input/output (I/O) interfaces (not shown).

The computing device500may be used to implement point cloud encoding/decoding in embodiments of the present disclosure. The memory520may include one or more point cloud coding modules525having one or more program instructions. These modules are accessible and executable by the processing unit510to perform the functionalities of the various embodiments described herein.

In the example embodiments of performing point cloud encoding, the input device550may receive point cloud data as an input570to be encoded. The point cloud data may be processed, for example, by the point cloud coding module525, to generate an encoded bitstream. The encoded bitstream may be provided via the output device560as an output580.

In the example embodiments of performing point cloud decoding, the input device550may receive an encoded bitstream as the input570. The encoded bitstream may be processed, for example, by the point cloud coding module525, to generate decoded point cloud data. The decoded point cloud data may be provided via the output device560as the output580.