Method and apparatus for video-based dynamic mesh coding (V-DMC) using base mesh entropy packets

CN123036847APending Publication Date: 2026-11-03SAMSUNG ELECTRONICS CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202580026507.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2025-04-07
Filing Date
2025-04-08
Publication Date
2026-11-03

AI Technical Summary

Technical Problem

Existing technologies consume significant system resources when packaging and transmitting prediction errors, grid connectivity information, and other basic grid syntax elements of video dynamic grids, especially when transmitting within the corresponding entropy packet for each prediction error or syntax element.

Method used

By transmitting prediction error and grid connectivity information in single or multiple entropy packets and using arithmetic encoding with syntax element indications, the packaging method of prediction error and syntax elements is optimized, reducing resource consumption.

Benefits of technology

It effectively reduces the consumption of system resources and improves the efficiency and effectiveness of dynamic mesh compression for video.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123036847A_ABST
    Figure CN123036847A_ABST
Patent Text Reader

Abstract

An apparatus having a processor receives a bitstream, wherein the bitstream includes syntax elements for decoding the mesh frame, a first set of arithmetically encoded prediction errors, and a second set of arithmetically encoded prediction errors, wherein the syntax elements indicate whether the prediction errors, mesh connectivity information, and additional base mesh syntax elements are transmitted in a single entropy packet or in multiple entropy packets. The processor decodes the syntax elements and arithmetically decodes the first set of arithmetically encoded prediction errors and the second set of arithmetically encoded prediction errors based on the syntax elements. In one example, if the syntax elements have a first value, the first set of arithmetically encoded prediction errors and the second set of arithmetically encoded prediction errors are included in the single entropy packet, and if the syntax elements have a second value, the first set of arithmetically encoded prediction errors are in a first entropy packet and the second set of arithmetically encoded prediction errors are in a second entropy packet.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to improvements in compression of video-based dynamic meshes, and more specifically, to improvements, such as, but not limited to, entropy packets and the packing of prediction errors, mesh connectivity information, and other basic mesh syntax elements in the basemesh codec. Background Technology

[0002] Currently, ISO / IEC SC29 / WG07 is working on developing standards for video-based dynamic mesh compression. For example, the committee is working on a standard for video-based dynamic mesh coding (V-DMC), which specifies the syntax, semantics, and decoding methods for V-DMC, basic mesh coding, Moving Picture Experts Group (MPEG) edgebreaker static mesh coding, and arithmetic coding shifts. In practice, ISO / IEC SC29 WG07 established an international draft standard (DIS) for V-DMC (V-DMC DIS) in December 2024. Draft specifications for video-based dynamic mesh compression are also available.

[0003] In the example, a mesh is a fundamental element in a three-dimensional (3D) computer graphics model. In an embodiment, a mesh comprises several polygons describing the boundary surfaces of volumetric objects. In such an embodiment, each polygon is defined by its vertices in three-dimensional (3D) space, and information about how the vertices are connected is called connectivity information. Furthermore, vertex attributes may be associated with mesh vertices. For example, vertex attributes may include color, normals, etc. In some cases, attributes are also associated with the mesh surface by utilizing parameterized mapping information describing the mesh onto a two-dimensional (2D) region of a plane. In an embodiment, this mapping is described by a set of parametric coordinates (called (U, V) coordinates or texture coordinates). In an embodiment, if the connectivity or attribute information changes, the mesh is called a dynamic mesh. In an embodiment, dynamic meshes contain a large amount of data and are therefore standardized by MPEG.

[0004] In some examples, the base mesh has fewer vertices compared to the original mesh. For example, the base mesh can be created and compressed in a lossy or lossless manner. In one embodiment, the reconstructed base mesh is subdivided, and then the displacement field between the original mesh and the subdivided reconstructed base mesh is calculated. In another embodiment, the base mesh is encoded during inter-frame encoding of a mesh frame by transmitting vertex motion (rather than directly compressing the base mesh).

[0005] However, there may be one or more errors associated with the creation of the base mesh, such as one or more prediction errors. These could include prediction errors for vertex attributes, such as geometric errors, texture coordinate errors, material property errors, or other vertex attribute errors. In some examples, the process of packing and transmitting prediction errors can consume allocated resources in the system, particularly when the prediction error is transmitted within its own corresponding entropy packet.

[0006] Additional information related to geometric or material properties may also exist. For example, mesh connectivity information (e.g., handle data and CLERS symbols) and other basic mesh syntax elements (e.g., material property seam (SEM) information, duplicate vertex marker information, mesh property duplication information, etc.) may also exist. In some examples, packing mesh connectivity information and other basic mesh syntax elements also consumes additional allocation resources in the system, especially when that type of mesh connectivity information or basic mesh syntax element is transmitted within its own corresponding entropy packet.

[0007] The descriptions set forth in the Background section should not be assumed to be prior art simply because they are set forth therein. The Background section may describe aspects or embodiments of this disclosure. Summary of the Invention

[0008] Technical solution One aspect of this disclosure provides an apparatus for decoding a grid frame, wherein the apparatus includes a processor configured to cause the following operations: receiving a bitstream, wherein the bitstream includes syntax elements for the grid frame, a first set of arithmetic coding prediction errors, and a second set of arithmetic coding prediction errors, wherein the syntax elements indicate whether prediction errors, grid connectivity information, and additional underlying grid syntax elements are transmitted in a single entropy packet or in multiple entropy packets; decoding the syntax elements; and performing arithmetic decoding of the first set of arithmetic coding prediction errors and the second set of arithmetic coding prediction errors based on the syntax elements, wherein if the syntax elements have a first value, the first set of arithmetic coding prediction errors and the second set of arithmetic coding prediction errors are included in the single entropy packet, and if the syntax elements have a second value, the first set of arithmetic coding prediction errors are in a first entropy packet among the multiple entropy packets, and the second set of arithmetic coding prediction errors are in a second entropy packet among the multiple entropy packets.

[0009] One aspect of this disclosure provides an apparatus for encoding a grid frame, wherein the apparatus includes a processor configured to cause the following operations: determining a first set of prediction errors and a second set of prediction errors for the grid frame; performing arithmetic encoding on the first set of prediction errors and the second set of prediction errors based on values ​​of syntax elements, wherein the syntax elements indicate whether the prediction errors, grid connectivity information, and additional basic grid syntax elements are transmitted in a single entropy packet or in multiple entropy packets; and transmitting a bitstream including the first set of arithmetic-encoded prediction errors, the second set of arithmetic-encoded prediction errors, and the syntax elements, wherein if the syntax elements have a first value, the first set of arithmetic-encoded prediction errors and the second set of arithmetic-encoded prediction errors are transmitted in the single entropy packet, and the first set of arithmetic-encoded prediction errors are transmitted in a first entropy packet among multiple entropy packets, and the second set of arithmetic-decoded prediction errors are transmitted in a second entropy packet among multiple entropy packets.

[0010] One aspect of this disclosure provides a method for decoding a grid frame, comprising: receiving a bitstream at a processor for decoding the grid frame, wherein the bitstream includes syntax elements for the grid frame, a first set of arithmetic coding prediction errors, and a second set of arithmetic coding prediction errors, wherein the syntax elements indicate whether prediction errors, grid connectivity information, and additional underlying grid syntax elements are transmitted in a single entropy packet or in multiple entropy packets; decoding the syntax elements; performing arithmetic decoding on the first set of arithmetic coding prediction errors and the second set of arithmetic coding prediction errors based on the syntax elements, wherein if the syntax elements have a first value, the first set of arithmetic coding prediction errors and the second set of arithmetic coding prediction errors are included in the single entropy packet; and if the syntax elements have a second value, the first set of arithmetic coding prediction errors are in a first entropy packet among the multiple entropy packets, and the second set of arithmetic coding prediction errors are in a second entropy packet among the multiple entropy packets. Attached Figure Description

[0011] Figure 1 An example communication system 100 according to an embodiment of the present disclosure is shown.

[0012] Figure 2 and Figure 3 An example electronic device is shown according to an embodiment of the present disclosure.

[0013] Figure 4 A block diagram of an encoder for encoding intra-frames according to an embodiment is shown.

[0014] Figure 5 A block diagram of a decoder according to an embodiment is shown.

[0015] Figure 6 and Figure 7 A block diagram illustrating parallelogram grid prediction according to an embodiment is shown.

[0016] Figure 8 An example entropy packet is shown in the basic mesh codec according to an embodiment.

[0017] Figure 9 An example syntax for elements used in entropy packet encoding in a basic mesh codec is shown according to an embodiment.

[0018] Figures 10 to 12 An example of a simplified entropy package is shown according to an embodiment.

[0019] Figure 13 The entropy packet of the basic mesh codec according to an embodiment is shown.

[0020] Figures 14 to 20 An example data packet including an entropy packet based on a basic mesh codec is shown according to an embodiment.

[0021] Figure 21 An example flowchart is shown for encoding entropy packets in a basic mesh codec according to an embodiment.

[0022] Figure 22 An example flowchart is shown for decoding entropy packets in a basic mesh codec according to an embodiment.

[0023] In one or more embodiments, not all of the components depicted in each figure may be required, and one or more embodiments may include additional components not shown in the figures. The arrangement and type of components may be changed without departing from the scope of this subject matter disclosure. Within the scope of this subject matter disclosure, additional components, different components, or fewer components may be utilized.

[0024] The optimal embodiment for carrying out the present invention In embodiments, this disclosure may relate to improvements to the basic mesh entropy coding. Specifically, the improvement relates to packaging prediction error information (e.g., geometric prediction error or texture coordinate prediction error), mesh connectivity information (e.g., mesh handle data, CLERS symbols), and / or other basic mesh syntax elements (e.g., repeating vertex information, seam data, etc.) into an entropy packet for the basic mesh codec.

[0025] One aspect of this disclosure provides an apparatus for decoding a grid frame, wherein the apparatus includes a processor configured to cause the following operations: receiving a bitstream, wherein the bitstream includes syntax elements for the grid frame, a first set of arithmetic coding prediction errors, and a second set of arithmetic coding prediction errors, wherein the syntax elements indicate whether prediction errors, grid connectivity information, and additional underlying grid syntax elements are transmitted in a single entropy packet or in multiple entropy packets; decoding the syntax elements; and performing arithmetic decoding on the first set of arithmetic coding prediction errors and the second set of arithmetic coding prediction errors based on the syntax elements, wherein if the syntax elements have a first value, the first set of arithmetic coding prediction errors and the second set of arithmetic coding prediction errors are included in a single entropy packet, and if the syntax elements have a second value, the first set of arithmetic coding prediction errors are in a first entropy packet among the multiple entropy packets, and the second set of arithmetic coding prediction errors are in a second entropy packet among the multiple entropy packets.

[0026] In an embodiment, if the syntax element has a second value, the bitstream further includes a second syntax element indicating the size of the first entropy packet, and the processor is further configured to cause the following operation: determining a variable pointing to the current position in the first entropy packet based on the second syntax element, wherein the first set of arithmetic coding prediction errors is decoded based on the variable.

[0027] In an embodiment, if the syntax element has a first value, the bitstream further includes a second syntax element indicating the size of a single entropy packet, and the processor is further configured to cause the following operation: determining a variable pointing to the current position in the single entropy packet based on the second syntax element, wherein a first set of arithmetic coding prediction errors and a second set of arithmetic coding prediction errors are decoded based on the variable.

[0028] In one embodiment, the prediction error for the current vertex is determined by arithmetic decoding of one of the arithmetic-coded prediction errors in the first set of arithmetic-coded prediction errors, and the processor is further configured to cause the following operations to be performed: determine the prediction value for the current vertex, and determine the coordinate value of the current vertex based on the prediction error for the current vertex and the prediction value for the current vertex.

[0029] In one or more embodiments, if the syntax element has a second value, the bitstream further includes a second syntax element associated with the first set of arithmetic coding prediction errors, and the processor is further configured to cause the following operations: decoding the second syntax element and performing arithmetic decoding of the first set of arithmetic coding prediction errors based on the second syntax element, wherein, if the second syntax element has a third value, the first set of arithmetic coding prediction errors is decoded without the arithmetic operation syntax element, and if the second syntax element has a fourth value, the first set of arithmetic coding prediction errors is decoded after the arithmetic operation syntax element is decoded.

[0030] In an embodiment, if the syntax element has a second value, the bitstream further includes a second syntax element associated with a second set of arithmetic coding prediction errors, and the processor is further configured to cause the following operations: decoding the second syntax element and performing arithmetic decoding of the second set of arithmetic coding prediction errors based on the second syntax element, wherein if the second syntax element has a third value, the second set of arithmetic coding prediction errors is decoded without the arithmetic operation syntax element, and if the second syntax element has a fourth value, the second set of arithmetic coding prediction errors is decoded after the arithmetic operation syntax element is decoded.

[0031] In an embodiment, the first set of arithmetic coding prediction errors is at least one of fine geometric prediction error or coarse geometric prediction error.

[0032] In the embodiment, the second set of arithmetic coding prediction errors is at least one of fine texture prediction error, coarse texture prediction error, fine material property prediction error, coarse material property prediction error, normal prediction error, or material identification prediction error.

[0033] In one or more embodiments, the first set of prediction errors includes at least fine geometry prediction error and coarse geometry prediction error, and the second set of prediction errors includes at least fine texture coordinate error and coarse texture coordinate error.

[0034] In an embodiment, the bitstream further includes grid connectivity information and additional basic grid syntax elements, and the processor is further configured to cause the following operations: decoding the grid connectivity information and the additional basic grid syntax elements, wherein if the syntax element has a first value, the grid connectivity information, the additional basic grid syntax elements, a first set of arithmetic coding prediction errors, and a second set of arithmetic coding prediction errors are included in the single entropy packet; and if the syntax element has a second value, the grid connectivity information is in a third entropy packet among the plurality of entropy packets, and the additional basic grid syntax elements are in a fourth entropy packet among the plurality of entropy packets.

[0035] One aspect of this disclosure provides an apparatus for encoding a grid frame, wherein the apparatus includes a processor configured to cause the following operations to be performed: determining a first set of prediction errors and a second set of prediction errors for the grid frame; performing arithmetic encoding on the first set of prediction errors and the second set of prediction errors based on values ​​of syntax elements, wherein the syntax elements indicate whether the prediction errors, grid connectivity information, and additional basic grid syntax elements are transmitted in a single entropy packet or in multiple entropy packets; and transmitting a bitstream including the first set of arithmetic-encoded prediction errors, the second set of arithmetic-encoded prediction errors, and the syntax elements, wherein if the syntax elements have a first value, the first set of arithmetic-encoded prediction errors and the second set of arithmetic-encoded prediction errors are transmitted in the single entropy packet, and the first set of arithmetic-encoded prediction errors are transmitted in a first entropy packet among multiple entropy packets, and the second set of arithmetic-encoded prediction errors are transmitted in a second entropy packet among multiple entropy packets.

[0036] In an embodiment, the processor is further configured to cause the following operations: if the syntax element has a second value, to encode a variable pointing to the current position in the first entropy packet, and to transmit the variable in a second syntax element indicating the size of the first entropy packet, wherein the first set of prediction errors is encoded based on the variable.

[0037] In one or more embodiments, the processor is further configured to cause the following operations: if the syntax element has a first value, to encode a variable pointing to the current position in the single entropy packet, and to transmit the variable in a second syntax element indicating the size of the single entropy packet, wherein the first set of prediction errors and the second set of prediction errors are encoded based on the variable.

[0038] In an embodiment, the processor is further configured to cause the following operations: encoding a second syntax element associated with a first set of prediction errors, wherein the processor is configured to arithmetically encode the first set of prediction errors based on encoding the second syntax element, and to transmit a bit stream including the second syntax element, wherein if the second syntax element has a third value, the first set of arithmetic-encoded prediction errors is encoded without the arithmetic operation syntax element, and if the second syntax element has a fourth value, the first set of arithmetic-encoded prediction errors is encoded using the arithmetic operation syntax element.

[0039] In an embodiment, the processor is further configured to cause the following operations: encoding a second syntax element associated with the second set of prediction errors, wherein the processor is configured to perform arithmetic encoding of the second set of prediction errors based on encoding the second syntax element, and to transmit a bit stream including the second syntax element, wherein if the second syntax element has a third value, the second set of arithmetic-coded prediction errors is encoded without the arithmetic operation syntax element, and if the second syntax element has a fourth value, the second set of arithmetic-coded prediction errors is encoded using the arithmetic operation syntax element.

[0040] In an embodiment, the first set of prediction errors includes at least one of fine geometric prediction error or coarse geometric prediction error.

[0041] In an embodiment, the second set of prediction errors includes at least one of fine texture prediction error, coarse texture prediction error, fine material property prediction error, coarse material property prediction error, normal prediction error, or material identification prediction error.

[0042] In one or more embodiments, the first set of prediction errors includes at least fine geometry prediction error and coarse geometry prediction error, and the second set of prediction errors includes at least fine texture coordinate error and coarse texture coordinate error.

[0043] In an embodiment, the processor is further configured to cause the following operations to be performed: determining the grid connectivity information and the additional basic grid syntax elements, and transmitting a bit stream including the grid connectivity information and the additional basic grid syntax elements, wherein, if the syntax elements have a first value, the grid connectivity information, the additional basic grid syntax elements, a first set of arithmetic coding prediction errors and a second set of arithmetic coding prediction errors are transmitted in a single entropy packet, and the grid connectivity information is transmitted in a third entropy packet of the plurality of entropy packets, and the additional basic grid syntax elements are transmitted in a fourth entropy packet of the plurality of entropy packets.

[0044] One aspect of this disclosure provides a method for decoding a grid frame, comprising: receiving a bitstream at a processor for decoding the grid frame, wherein the bitstream includes syntax elements for the grid frame, a first set of arithmetic coding prediction errors, and a second set of arithmetic coding prediction errors, wherein the syntax elements indicate whether prediction errors, grid connectivity information, and additional underlying grid syntax elements are transmitted in a single entropy packet or in multiple entropy packets; decoding the syntax elements; performing arithmetic decoding on the first set of arithmetic coding prediction errors and the second set of arithmetic coding prediction errors based on the syntax elements, wherein if the syntax elements have a first value, the first set of arithmetic coding prediction errors and the second set of arithmetic coding prediction errors are included in the single entropy packet; and if the syntax elements have a second value, the first set of arithmetic coding prediction errors are in a first entropy packet among the multiple entropy packets, and the second set of arithmetic coding prediction errors are in a second entropy packet among the multiple entropy packets. Detailed Implementation

[0045] The detailed description set forth below with reference to the accompanying drawings is intended to describe various embodiments and not to represent the only possible implementation of the subject matter. Rather, the detailed description includes specific details for the purpose of providing a thorough understanding of the subject matter of the invention. As those skilled in the art will recognize, the described embodiments can be modified in various ways without departing from this disclosure. Therefore, the drawings and description are to be considered illustrative rather than restrictive in nature. The same reference numerals denote the same elements.

[0046] In these embodiments, 360° video and 3D volumetric video are emerging as new ways to experience immersive content due to the readily available availability of powerful handheld devices such as smartphones. While 360° video provides an immersive, “real-life,” “being there” experience for consumers by capturing a 360° outside-in view of the world, 3D volumetric video offers a full “six degrees of freedom” (6DoF) experience of being within and moving within the content. In some examples, users can interactively change their viewpoint and dynamically view any part of the captured scene or object they desire. Display and navigation sensors track the user’s head movements in real time to determine the area of ​​the 360° video or volumetric content the user wants to view or interact with. Multimedia data that is inherently three-dimensional (3D), such as point clouds or 3D polygon meshes, can be used in immersive environments.

[0047] In embodiments, a point cloud is a collection of 3D points representing the surface or volume of an object, along with attributes such as color, normals, reflectivity, point size, etc. Point clouds are widely used in various applications, including games, 3D mapping, visualization, medical applications, augmented reality, virtual reality, autonomous driving, multi-view replay, 6DoF immersive media, and a few examples. In at least some examples, uncompressed point clouds typically require significant bandwidth for transmission. Therefore, point clouds are usually compressed before transmission due to high bit rate requirements. In at least one example, compressing 3D objects such as point clouds typically requires dedicated hardware. To avoid dedicated hardware compression of 3D point clouds, the 3D point cloud can be transformed into a traditional two-dimensional (2D) frame, and the transformed 2D frame can be compressed and subsequently reconstructed for the user's viewing.

[0048] In embodiments, polygonal 3D meshes (particularly triangular meshes) are another common format for representing 3D objects. A mesh typically comprises a set of vertices, edges, and faces representing the surfaces of a 3D object. A triangular mesh is a simple polygonal mesh where faces are simple triangles covering the surfaces of the 3D object. In some examples, one or more attributes may be associated with the mesh. In one scene, one or more attributes may be associated with each vertex in the mesh. For example, a texture attribute (RGB) may be associated with each vertex. In another scene, each vertex may be associated with a pair of coordinates (u, v). The (u, v) coordinates may point to the location in the texture map associated with the mesh. For example, the (u, v) coordinates may refer to the row index and column index in the texture map, respectively. A mesh can be thought of as a point cloud with additional connectivity information.

[0049] Point clouds or meshes can be dynamic, meaning they can change over time. In these cases, a point cloud or mesh at a specific moment can be referred to as a point cloud frame or a mesh frame, respectively. Because point clouds and meshes contain a large amount of data, they need to be compressed for efficient storage and transmission. This is especially true for dynamic point clouds and meshes, which may contain 60 or more frames per second.

[0050] The accompanying drawings and various embodiments used to describe the principles of this disclosure are for illustrative purposes only and should not be construed as limiting the scope of this disclosure in any way. Those skilled in the art will understand that the principles of this disclosure can be implemented in any suitably arranged system or apparatus.

[0051] Figure 1 An example communication system 100 according to an embodiment of the present disclosure is shown. Figure 1 The embodiment of the communication system 100 shown is for illustrative purposes only. Other embodiments of the communication system 100 may be used without departing from the scope of this disclosure.

[0052] In one embodiment, the communication system 100 includes a network 102 that facilitates communication between various components within the communication system 100. For example, the network 102 may communicate between network addresses to transmit IP packets, Frame Relay frames, Asynchronous Transfer Mode (ATM) cells, or other information. The network 102 may include one or more local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), all or part of a global network such as the Internet, or one or more other communication systems located in one or more locations.

[0053] In this example, network 102 facilitates communication between server 104 and various client devices 106 to 116. Client devices 106 to 116 may be, for example, smartphones, tablets, laptops, personal computers, TVs, interactive displays, wearable devices, head-mounted display (HMD) devices, etc. In some examples, server 104 may represent one or more servers. Each server 104 includes any suitable computing or processing device that can provide computing services to one or more client devices, such as client devices 106 to 116. Each server 104 may, for example, include one or more processing devices, one or more memories storing instructions and data, and one or more network interfaces facilitating communication via network 102. As described in more detail below, server 104 may transmit compressed bitstreams representing point clouds or meshes to one or more display devices, such as client devices 106 to 116. In some embodiments, each server 104 may include an encoder.

[0054] Each client device 106 to 116 represents any suitable computing or processing device that interacts with at least one server (such as server 104) or one or more other computing devices via network 102. Client devices 106 to 116 include, but are not limited to, desktop computer 106, mobile phone or mobile device 108 (such as smartphone), personal digital assistant (PDA) 110, laptop computer 112, tablet computer 114 (e.g., with touchscreen or stylus), and HMD 116. However, any other or additional client devices may be used in communication system 100. A smartphone represents a class of mobile devices 108 that are handheld devices with a mobile operating system and integrated mobile broadband cellular network connectivity for voice, short message service (SMS), and Internet data communication. In embodiments, HMD 116 may display a 360° scene including one or more dynamic or static 3D point clouds. In some embodiments, any client device 106 to 116 may include an encoder, a decoder, or both. For example, mobile device 108 can record 3D volumetric video and then encode the video so that it can be transmitted to one of client devices 106 to 116. In another example, laptop computer 112 can be used to generate a 3D point cloud or mesh, which is then encoded and transmitted to one of client devices 106 to 116.

[0055] In this example, some client devices 108 to 116 communicate indirectly with network 102. For example, mobile device 108 and PDA 110 communicate via one or more base stations (e.g., BS) 118, such as via cellular base stations or eNodeBs (eNBs) or fifth-generation (5G) base stations or gNodeBs (gNb) implementing new radio (NR) technology. Additionally, laptop computer 112, tablet computer 114, and HMD 116 communicate via one or more wireless access points 120 (such as IEEE 802.11 wireless access points). Note that these are for illustrative purposes only, and each client device 106 to 116 may communicate directly with network 102 or indirectly with network 102 via any one or more suitable intermediaries or networks. In some embodiments, server 104 or any client device 106 to 116 may be used to compress point clouds or meshes, generate bitstreams representing point clouds or meshes, and transmit the bitstreams to another client device, such as any client device 106 to 116.

[0056] In some embodiments, any of client devices 106 to 114 securely and efficiently transmits information to another device, such as, for example, server 104. Furthermore, any of client devices 106 to 116 can trigger information transmission between itself and server 104. Any of client devices 106 to 114, when attached to headphones via a bracket, can function as a virtual reality (VR) display, similar in function to HMD 116. For example, mobile device 108, when attached to a bracket system and worn on a user's eyes, can function similarly to HMD 116. Mobile device 108 (or any other client device 106 to 116) can trigger information transmission between itself and server 104.

[0057] In some embodiments, any of client devices 106-116 or server 104 may create, compress, transmit, receive, decode, render, or a combination thereof 3D point clouds or meshes. For example, server 104 may then compress the 3D point cloud or mesh to generate a bitstream, and then transmit the bitstream to one or more of client devices 106-116. As another example, one of client devices 106-116 may compress the 3D point cloud or mesh to generate a bitstream, and then transmit the bitstream to another client device among client devices 106-116 or server 104.

[0058] although Figure 1 An example of a communication system 100 is shown, but it is possible to modify it. Figure 1 Various changes can be made. For example, communication system 100 can include any number of each component in any suitable arrangement. Typically, computing and communication systems have a wide variety of configurations, and Figure 1 This disclosure is not intended to limit the scope to any particular configuration. Although Figure 1 This paper illustrates an operating environment in which the various features disclosed in this patent document can be used, but these features can be used in any other suitable system.

[0059] Figure 2 and Figure 3 An example electronic device according to an embodiment of the present disclosure is shown. In particular, Figure 2 Example server 200 is shown, and server 200 can be represented as shown in reference. Figure 1 The described server 104. In embodiments, server 200 may represent one or more encoders, decoders, local servers, remote servers, cluster computers, and components acting as a single seamless resource pool, cloud-based servers, etc. Server 200 may be... Figure 1One or more client devices from client devices 106 to 116 or another server can access the server.

[0060] Server 200 may represent one or more local servers, one or more compression servers, or one or more encoding servers, such as encoders. In some embodiments, the encoder may perform decoding. Figure 2 As shown, server 200 includes bus system 205, wherein bus system 205 supports communication between at least one processing device (e.g., processor 210), at least one storage device 215, at least one communication interface 220 and at least one input / output (I / O) unit 225.

[0061] Processor 210 executes instructions that can be stored in memory 230. Processor 210 may include any suitable number and type of processors or other devices in any suitable arrangement. Example types of processor 210 include microprocessors, microcontrollers, digital signal processors, field-programmable gate arrays, application-specific integrated circuits (ASICs), and discrete circuits.

[0062] In some embodiments, processor 210 may encode a 3D point cloud or mesh stored in storage device 215. In some embodiments, the operation of encoding the 3D point cloud also includes decoding the 3D point cloud or mesh to ensure that when the point cloud or mesh is reconstructed, the reconstructed 3D point cloud or mesh matches the 3D point cloud or mesh before encoding.

[0063] Memory 230 and persistent storage 235 are examples of storage device 215, representing one or more of any structures capable of storing and facilitating the retrieval of information such as temporary or permanent data, program code, or other suitable information. Memory 230 may represent random access memory or one or more other suitable volatile or non-volatile storage devices. For example, instructions stored in memory 230 may include instructions for decomposing a point cloud into patches, instructions for packing patches onto 2D frames, instructions for compressing 2D frames, and instructions for encoding 2D frames in a specific order to generate a bitstream. Instructions stored in memory 230 may also include instructions for use in 360° omnidirectional scenes (such as through VR headsets, such as...) Figure 1 Instructions for rendering point clouds on the HMD (116) being viewed. Persistent storage 235 may contain one or more components or devices that support long-term storage of data, such as read-only memory, hard disk drive, flash memory, or optical disk.

[0064] Communication interface 220 supports communication with other systems or devices. For example, communication interface 220 may include features that facilitate communication via... Figure 1The communication interface 220 is a network interface card or wireless transceiver for communication on network 102. The communication interface 220 can support communication via one or more suitable physical or wireless communication links. For example, the communication interface 220 can transmit a bitstream containing a 3D point cloud to another device, such as one of client devices 106 to 116.

[0065] I / O unit 225 allows for data input and output. For example, I / O unit 225 can provide connectivity for user input via a keyboard, mouse, keypad, touchscreen, or other suitable input device. I / O unit 225 can also transmit output to a display, printer, or other suitable output device. However, note that I / O unit 225 can be omitted, such as when I / O interaction with server 200 occurs via a network connection.

[0066] Note that, although Figure 2 Described as representing Figure 1 The server 104 may be used, but the same or similar architecture may be used in one or more client devices 106 to 116. For example, desktop computer 106 or laptop computer 112 may have the same architecture as the server 104. Figure 2 The structures shown are the same or similar.

[0067] Figure 3 An example electronic device 300 is shown, and the electronic device 300 can represent Figure 1 One or more of the client devices 106 to 116. Electronic device 300 may be a mobile communication device, such as, for example, a mobile station, a user station, a wireless terminal, or a desktop computer (similar to...). Figure 1 Desktop computers 106), portable electronic devices (similar to) Figure 1 Mobile devices 108, PDA 110, laptop computer 112, tablet computer 114, or HMD 116, etc. In some embodiments, Figure 1 One or more of the client devices 106 to 116 may include configurations identical or similar to those of electronic device 300. In some embodiments, electronic device 300 is an encoder, a decoder, or both. For example, electronic device 300 may be used for data transmission, image or video compression, image or video decompression, encoding, decoding, and media rendering applications.

[0068] like Figure 3As shown, electronic device 300 includes an antenna 305, a radio frequency (RF) transceiver 310, a transmit (TX) processing circuitry 315, a microphone 320, and a receive (RX) processing circuitry 325. The RF transceiver 310 may include, for example, an RF transceiver, a Bluetooth transceiver, a Wi-Fi transceiver, a Zigbee transceiver, an infrared transceiver, and various other wireless communication signals. Electronic device 300 also includes a speaker 330, a processor 340, an input / output (I / O) interface (IF) 345, an input device 350, a display 355, a memory 360, and one or more sensors 365. The memory 360 includes an operating system (OS) 361 and one or more applications 362.

[0069] In this embodiment, RF transceiver 310 receives incoming RF signals from antenna 305 from an access point (such as a base station, Wi-Fi router, or BLUETOOTH device) or other devices on network 102 (such as Wi-Fi, BLUETOOTH, cellular, 5G, LTE, LTE-A, WiMAX, or any other type of wireless network). RF transceiver 310 down-converts the incoming RF signals to generate an intermediate frequency (IF) or baseband signal. The IF or baseband signal is transmitted to RX processing circuitry 325, which generates a processed baseband signal by filtering, decoding, and / or digitizing the baseband or IF signal. RX processing circuitry 325 transmits the processed baseband signal to speaker 330 (e.g., for voice data) or to processor 340 for further processing (e.g., for web browsing data).

[0070] The TX processing circuit 315 receives analog or digital voice data from the microphone 320, or other outgoing baseband data from the processor 340. Outgoing baseband data may include web data, email, or interactive video game data. The TX processing circuit 315 encodes, multiplexes, and / or digitizes the outgoing baseband data to generate a processed baseband or intermediate frequency (IF) signal. The RF transceiver 310 receives the outgoing processed baseband or IF signal from the TX processing circuit 315 and up-converts the baseband or IF signal into an RF signal transmitted via the antenna 305.

[0071] Processor 340 may include one or more processors or other processing devices. Processor 340 may execute instructions stored in memory 360 (such as OS 361) to control the overall operation of electronic device 300. For example, processor 340 may control the reception of forward channel signals and the transmission of reverse channel signals by RF transceiver 310, RX processing circuitry 325, and TX processing circuitry 315 according to known principles. Processor 340 may include one or more processors or other devices of any suitable number and type in any suitable arrangement. For example, in some embodiments, processor 340 includes at least one microprocessor or microcontroller. Example types of processor 340 include microprocessors, microcontrollers, digital signal processors, field-programmable gate arrays, application-specific integrated circuits, and discrete circuits.

[0072] Processor 340 is also capable of executing other processes and programs residing in memory 360, such as operations for receiving and storing data. Processor 340 may move data into or out of memory 360 as needed by the executing process. In some embodiments, processor 340 is configured to execute one or more applications 362 based on OS 361 or in response to signals received from one or more external sources or operators. For example, applications 362 may include encoders, decoders, VR or augmented reality (AR) applications (e.g., devices from the extended reality (XR) field), camera applications (for still images and videos), video call applications, email clients, social media clients, SMS messaging clients, virtual assistants, etc. In some embodiments, processor 340 is configured to receive and transmit media content.

[0073] The processor 340 is also integrated with an I / O interface 345, which provides the electronic device 300 with the ability to connect to other devices, such as client devices 106 to 114. The I / O interface 345 is the communication path between these accessories and the processor 340.

[0074] Processor 340 is also integrated with input device 350 and display 355. An operator of electronic device 300 can use input device 350 to input data or information into electronic device 300. Input device 350 may be a keyboard, touchscreen, mouse, trackball, voice input device, or other device capable of serving as a user interface allowing the user to interact with electronic device 300. For example, input device 350 may include voice recognition processing, allowing the user to input voice commands. In another example, input device 350 may include a touch panel, (digital) pen sensor, key, or ultrasonic input device. Touch panel may recognize touch input using at least one scheme, such as capacitive, pressure-sensitive, infrared, or ultrasonic. By providing additional input to processor 340, input device 350 may be associated with one or more sensors 365 and / or cameras. In some embodiments, sensors 365 include one or more inertial measurement units (IMUs) (such as accelerometers, gyroscopes, and magnetometers), motion sensors, optical sensors, cameras, pressure sensors, heart rate sensors, altimeters, etc. The input device 350 may also include control circuitry. In a capacitive scheme, the input device 350 can detect touch or proximity.

[0075] Display 355 may be a liquid crystal display (LCD), a light-emitting diode (LED) display, an organic LED (OLED), an active-matrix OLED (AMOLED), or other display capable of displaying text and / or graphics such as those from websites, videos, games, images, etc. The size of display 355 may be adjusted to fit an HMD. Display 355 may be a single display or multiple displays capable of creating stereoscopic displays. In some embodiments, display 355 is a head-up display (HUD). Display 355 may display 3D objects, such as 3D point clouds or meshes.

[0076] Memory 360 is integrated with processor 340. A portion of memory 360 may include random access memory (RAM), and another portion of memory 360 may include flash memory or other read-only memory (ROM). Memory 360 may include persistent storage (not shown), wherein the persistent storage represents one or more structures capable of storing and facilitating the retrieval of information such as data, program code, and / or other suitable information. Memory 360 may include one or more components or devices supporting long-term storage of data, such as read-only memory, hard disk drive, flash memory, or optical disk. Memory 360 may also contain media content. Media content may include various types of media, such as images, videos, 3D content, VR content, AR content, 3D point clouds, meshes, etc.

[0077] The electronic device 300 also includes one or more sensors 365, wherein the one or more sensors 365 can measure physical quantities or detect the activation state of the electronic device 300 and convert the measured or detected information into electrical signals. For example, the sensor 365 may include one or more buttons for touch input, a camera, a gesture sensor, an IMU sensor (such as a gyroscope or gyroscope sensor and accelerometer), an eye-tracking sensor, a barometric pressure sensor, a magnetic sensor or magnetometer, a grip sensor, a proximity sensor, a color sensor, a biophysical sensor, a temperature / humidity sensor, an illuminance sensor, an ultraviolet (UV) sensor, an electromyography (EMG) sensor, an electroencephalography (EEG) sensor, an electrocardiography (ECG) sensor, an IR sensor, an ultrasound sensor, an iris sensor, a fingerprint sensor, and a color sensor (such as a red-green-blue (RGB) sensor), etc. The sensor 365 may also include control circuitry for controlling any of the included sensors.

[0078] As discussed in more detail below, one or more of these sensors 365 can be used to control the user interface (UI), detect UI input, determine the user's orientation and facing direction for displaying 3D content, etc. Any of these sensors 365 may be located within the electronic device 300, within a secondary device operatively connected to the electronic device 300, within an earpiece configured to hold the electronic device 300, or in a single device including the earpiece in the electronic device 300.

[0079] Electronic device 300 can create media content, such as generating virtual objects or capturing (or recording) content via a camera. Electronic device 300 can encode the media content to generate a bitstream, allowing the bitstream to be directly transmitted to another electronic device or, for example, via... Figure 1 Network 102 is transmitted indirectly. Electronic device 300 can receive bit streams directly from another electronic device, or through, for example, via... Figure 1 Network 102 indirectly receives bit streams.

[0080] although Figure 2 and Figure 3 Examples of electronic devices are shown, but may vary. Figure 2 and Figure 3 Make various changes. For example, Figure 2 and Figure 3The various components can be combined, further subdivided, or omitted, and additional components can be added as needed. As a specific example, processor 340 can be divided into multiple processors, such as one or more central processing units (CPUs) and one or more graphics processing units (GPUs). Furthermore, as with computing and communication, electronic devices and servers can have a wide variety of configurations, and Figure 2 and Figure 3 This disclosure is not limited to any particular electronic device or server.

[0081] Additionally, ISO / IEC SC29 / WG07 is currently working on developing a standard for video-based dynamic mesh compression. In this embodiment, V-DMC DIS represents the current state of the standard established by ISO / IEC SC29 / WG07 in December 2024. In this embodiment, the software implementation of V-DMC DIS can be obtained as software from a git repository. In this embodiment, a committee draft (CD) specification for video-based dynamic mesh compression is also available.

[0082] The following references are incorporated herein by reference as if fully set forth herein: i. V-DMC 8.0, ISO / IEC SC29 WG07 N00874, June 2024; ii. CD of V-DMC, ISO / IEC SC29 WG07 N00885, June 2024; iii. V-DMC DIS, ISO / IEC SC29 WG07 N01027, December 2024; and iv. Technical research for video-based mesh coding, ISO / IEC SC29 WG07 N00960, August 2024.

[0083] Figure 4 and Figure 5 Block diagrams for the V-DMC encoder and decoder are shown respectively.

[0084] like Figure 4As shown, system 400 may include a preprocessing unit 410 that communicates with one or more encoders, such as an atlas encoder 435, a base mesh encoder 440, a displacement encoder 445, and a video encoder 450. In one embodiment, system 400 illustrates encoding a dynamic mesh sequence 405, wherein the dynamic mesh sequence 405 is multiplexed into a visual volumetric video encoded (V3C) bitstream 497 and transmitted. In an embodiment, for each mesh frame, system 400 may create a base mesh 420, which may include fewer vertices than the original mesh. In one embodiment, the base mesh is compressed in a lossy or lossless manner to create a base mesh sub-bitstream 460. In one embodiment, the base mesh 420 is intra-frame encoded, for example, encoded without requiring predictions from neighboring base mesh frames. In other embodiments, the base mesh 420 is inter-frame encoded, for example, encoded using predictions from neighboring base mesh frames. In one embodiment, the reconstructed base mesh is subdivided, and then the displacement field between the original mesh and the subdivided reconstructed base mesh is calculated, compressed, and transmitted.

[0085] For example, preprocessing unit 410 may receive a dynamic mesh sequence 405. In an embodiment, preprocessing unit 410 may convert the dynamic mesh sequence 405 into components: atlas 415, base mesh 420, displacement 425, and attributes 430. That is, the dynamic mesh sequence 405 may include information about connectivity, geometry, mapping, vertex attributes, and attribute graphs. In an embodiment, connectivity information refers to the connectivity between vertices of the dynamic mesh sequence 405. In some examples, geometric information refers to the position of each vertex in 3D space, represented as coordinates. In some examples, attribute 430 information includes information about the color, material, normal direction, texture coordinates, etc., of vertices or mesh faces. In an embodiment, the dynamic mesh sequence 405 may be referred to as dynamic if one or more of the connectivity, geometry, mapping, vertex attributes, and / or attribute graphs change.

[0086] In an embodiment, the preprocessing unit 410 may receive a dynamic mesh sequence 405 and transmit various portions of the dynamic mesh sequence to multiple encoders. For example, the dynamic mesh sequence 405 may include an atlas portion 415, which is preprocessed and transmitted to an atlas encoder 435. In one embodiment, atlas 415 refers to a collection of two-dimensional (2D) bounding boxes placed on a rectangular frame and their related information (corresponding to a volume in a three-dimensional (3D) space where the volume data is rendered) and a list of metadata corresponding to a portion of the surface of the mesh in 3D space. In an embodiment, atlas 415 may include information about geometry (e.g., depth) or texture (e.g., a texture atlas). In an embodiment, system 400 may utilize the metadata of atlas 415 to generate a bitstream 497. For example, components of atlas 415 provide information about how to perform inverse reconstruction; for example, atlas 415 may describe how to perform subdivision of the base mesh 420, how to apply displacement vector 425 to the subdivided mesh, or how to apply attribute 430 to the reconstructed mesh.

[0087] In an embodiment, the base grid 420 may be referred to as a simplified, low-resolution approximation of the original grid encoded using any grid codec.

[0088] In this embodiment, the displacement 425 information provides a displacement vector that can be encoded as a VC3 geometric video component using any video codec.

[0089] In this embodiment, attribute 430 provides additional attributes and can be encoded by any video codec.

[0090] In one embodiment, preprocessing unit 410 may create a base mesh 420 from a dynamic mesh sequence 405. In one embodiment, preprocessing unit 410 may convert the original mesh into a base mesh based on a series of displacements 425 according to an attribute 430 graph. For example, the original dynamic mesh sequence 405 may be downsampled to reduce the number of vertices, for example, to create an extracted mesh. In one embodiment, the extracted mesh may be reparameterized by applying atlas 415 information and atlas encoder 435 to generate the base mesh 420. In one embodiment, subdivision is then applied to the base mesh 420, in part, based on the displacement 425 information.

[0091] In one embodiment, atlas encoder 435 generates atlas sub-bitstream 455, base grid encoder 440 generates base grid sub-bitstream 460, and video encoder 450 generates attribute sub-bitstream 470. In another embodiment, the sub-bitstreams are multiplexed at multiplexer 495 to generate and transmit bitstream 497.

[0092] Figure 5 A block diagram of a decoder according to an embodiment is shown.

[0093] like Figure 5 As shown, system 500 may include a demultiplexer 510 that communicates with one or more decoders (e.g., with atlas decoder 520, base grid decoder 525, displacement decoder 530, and video decoder 535). In one embodiment, system 500 shows decoding a visual volumetric video encoded (V3C) bitstream 505 into a reconstructed dynamic grid sequence 570. In one embodiment, system 500 decodes a base grid sub-bitstream 514 to form a reconstructed base grid 542. In one embodiment, the reconstructed base grid 542 is subdivided in the decoder. In one embodiment, during decoding, a received displacement field is decompressed and added to the reconstructed base grid to generate the final reconstructed grid.

[0094] For example, demultiplexer 510 may receive bitstream 505 and determine atlas sub-bitstream 512, base grid sub-bitstream 514, displacement sub-bitstream 516, and attribute sub-bitstream 518. In an embodiment, atlas decoder 520 processes the atlas sub-bitstream 512 information and transmits the decoded information to base grid processing 550. In an embodiment, base grid decoder 525 decodes the base grid sub-bitstream 514 information to generate a reconstructed base grid 542. In an embodiment, displacement decoder 530 may decompress the displacement sub-bitstream 516 information and transmit the decoded bits 544 to displacement processing unit 555. In an embodiment, system 500 reconstructs grid 560 by processing the base grid 542, the decompressed atlas sub-bitstream 512 information, and using the processed output and displacement information generated by displacement processing 555 to generate a reconstructed grid 565. In an embodiment, video decoder 535 may decompress the attribute sub-bitstream 518 information and transmit the information to reconstruction unit 565. In an embodiment, the reconstruction unit 565 may generate a reconstructed dynamic mesh sequence 570 based on the reconstructed mesh 560 and attribute information 546.

[0095] In an embodiment, Figure 6 and Figure 7 An example parallelogram grid prediction is shown. In the embodiment, Figure 6 and Figure 7 The underlying grid is shown, encoded using predictions from neighboring vertices in the same underlying grid frame. For example, as... Figure 6As shown, vertex positions are predicted based on the positions of available neighboring vertices. In one embodiment, vertex “V” 625 is predicted. In such an example, a prediction factor “P” 620 for vertex “V” 625 is calculated from the available neighboring vertices (vertex 605 “A”, vertex 610 “B”, and vertex 615 “C”). In one embodiment, available neighboring vertices may refer to vertices that have already been transmitted. For example, when predicting for prediction factor “P” 620, a triangle (e.g., a shaded area) consisting of vertices 605 “A”, vertices 610 “B”, and vertices 615 “C” may have already been transmitted.

[0096] In one embodiment, a parallelogram prediction algorithm is used. In other embodiments, different prediction factors may be used, for example, the average of the vertices, previous vertices, left vertices, right vertices, etc. In one embodiment using parallelogram prediction, the prediction factor “P”620 is determined by the following equation (Equation 1): P = B + C - A In this embodiment, the geometric prediction error “D” is determined by taking the difference between vertex “V”625 and prediction factor “P”620, as shown in the following equation (Equation 2): D = V - P In this embodiment, the prediction error is calculated and transmitted. In this embodiment, each vertex is represented by three-dimensional coordinates (e.g., in X, Y, Z geometric coordinates).

[0097] In the embodiments, multiple parallelograms can be predicted, such as Figure 7 As shown. For example, using a parallelogram to predict from three neighboring triangles (e.g., as shown) Figure 7 The prediction factors “P1” 715, “P2” 720, and “P3” 725 are calculated from the vertices of the triangle (shown in the shaded area). In this embodiment, the final prediction factor “P” 710 is calculated as the average of the prediction factors “P1” 715, “P2” 720, and “P3” 725. In this embodiment, the prediction factor is determined by Equation 2 shown above. Figure 7 The parallelogram prediction associated with the parallelogram is shown in the figure. In the embodiment, as referenced... Figure 4 The described basic mesh encoder at 440 or as referenced Figure 5 The steps for determining the prediction error occur at 525 of the described basic grid decoder.

[0098] For reference Figure 6 and Figure 7 As described, prediction errors can be calculated and transmitted based on a generated base grid. In an embodiment, the prediction error (e.g., at an entropy encoder or arithmetic encoder) is encoded and then transmitted. In an embodiment, the prediction error value is converted to a positive number determined before encoding, e.g., a non-positive integer (e.g., ...). x ≤ 0 Mapped to odd integers - 2 x + 1 And positive integers (e.g., x>0 ) is mapped to an even integer 2 x As shown in Table I.1 of the V-DMC DIS. In this embodiment, an arithmetic coding scheme is used to encode the prediction error to generate the prediction error codeword to be transmitted.

[0099] In the embodiments, various different types of prediction errors may exist. For example, there may be a reference error. Figure 6 and Figure 7 The described geometric prediction error. In one example, in V-DMC DIS, geometric prediction errors are classified into two categories, "fine" and "coarse". In one embodiment, the "fine" category refers to a vertex that is part of at least one parallelogram, all three remaining vertices of which are available (e.g., have been transmitted). In another embodiment, the "coarse" category refers to remaining vertices (e.g., remaining vertices with one or two available vertex neighbors or remaining vertices on boundaries, etc.). In this embodiment, there is no explicit symbol associated with either category (e.g., "fine" or "coarse"). In such embodiments, the category can be inferred from neighborhood information (e.g., whether remaining vertices are available).

[0100] In one embodiment, there can be multiple different types of prediction errors. As an example, in V-DMC, for each vertex (e.g., as referenced...), Figure 6 and Figure 7 Each vertex described transmits material properties (e.g., texture coordinates). In an embodiment, texture coordinates map the vertex to a two-dimensional (2D) location in a texture image, which is then used for texture mapping when rendering a three-dimensional (3D) object. In an embodiment, the two-dimensional location in the texture image is typically represented by (U, V) coordinates. In an embodiment, texture coordinates are predicted from the texture coordinates and geometric coordinates of available neighboring vertices. In one example, a prediction error (e.g., actual texture coordinates (T) minus predicted texture coordinates (M)) is determined and transmitted. Texture prediction error Prediction Error) = T - MIn this embodiment, texture prediction errors are categorized into "fine" and "coarse" categories. For example, a "fine" category refers to vertices that are part of at least one parallelogram, where all three remaining vertices of the parallelogram are available (e.g., already transmitted), and a "coarse" category refers to remaining vertices (e.g., remaining vertices with one or two available vertex neighbors or remaining vertices on boundaries, etc.). In this embodiment, there is no explicit symbol associated with either category (e.g., "fine" or "coarse"). In such an embodiment, the category can be inferred from neighborhood information (e.g., whether remaining vertices are available). In this embodiment, the prediction error can be an example of material property prediction or normal prediction error.

[0101] In this embodiment, the prediction error value of the texture coordinate prediction error is converted into a positive number determined before encoding. For example, a non-positive integer (e.g., x ≤ 0 ) is mapped to odd integers - 2 x + 1 And positive integers (e.g., x>0 ) is mapped to an even integer 2 x As shown in Table I.1 of the V-DMC DIS. In this embodiment, the texture coordinate prediction error is encoded using a binary arithmetic coding scheme, for example, the prediction error used for the texture coordinate prediction error has a format similar to that of the described geometric prediction error.

[0102] Figure 8 An example entropy packet in video-based dynamic mesh coding (V-DMC) is shown. In this embodiment, packet 800 has the format indicated in V-DMC TMM 7.0. Packet 800 can be used to transmit one or more prediction errors (e.g., refer to...). Figure 6 and Figure 7 (Discussion of prediction errors).

[0103] In an embodiment, packet 800 may include an entropy packet header (EPH 805) containing the entropy packet length. In some examples, packet 800 may include an arithmetic coding start / initialization (ACS 810) and an arithmetic coding stop / end (ACE 820). Packet 800 may be used to transmit one or more prediction errors. In one embodiment, prediction errors may include geometric prediction errors, texture coordinate (UV) prediction errors, or material property prediction errors. In an embodiment, prediction errors may belong to, as referenced Figure 6 and Figure 7The described "fine" or "coarse" category. For example, the prediction error may include geometric prediction error samples of the "fine" category (Ge-Fine 815), geometric prediction error samples of the "coarse" category (Ge-Coarse 825), texture coordinate prediction error samples of the "fine" category (UVE-Fine 830), texture coordinate prediction error samples of the "coarse" category (UVE-Coarse 835), first material property prediction error samples of the "fine" category (ME1-Fine 840), first material property prediction error samples of the "coarse" category (ME2-Coarse 845), second material property prediction error samples of the "fine" category (ME2-Fine 850), or second material property prediction error samples of the "coarse" category (ME2-Fine 845).

[0104] In one embodiment, the prediction error for each category is encoded in its own entropy packet. For example, geometric prediction error samples for the "fine" category may be transmitted in a first entropy packet, and geometric prediction error samples for the "coarse" category may be transmitted in a second entropy packet. In this example, the arithmetic coding is initialized at a beginning (e.g., as indicated by ACS 810) and stops at an end (e.g., as indicated by ACE 820). In such an example, the first packet may include an EPH 805-a indicating the length of the first packet, an ACS 810-a initializing the arithmetic coding, a Ge-Fine 815 prediction error for the geometric prediction error samples of the "fine" category, and an ACE 820-a stopping the arithmetic coding. Additionally, the second packet may include an EPH 805-b indicating the length of the second packet, an ACS 810-b initializing the arithmetic coding of the second packet, a Ge-Coarse 820 prediction error for the geometric prediction error samples of the "coarse" category, and an ACE 820-b stopping the arithmetic coding of the second packet.

[0105] In this embodiment, encoding each prediction error in its own corresponding entropy packet allows random access to the packets for parallel entropy decoding. However, the packet 800 format may also result in a loss of coding efficiency: because arithmetic coding is reset at the beginning of each packet, and entropy coding is stopped at the end of the packet using additional bits. In this embodiment, additional bits are also used when signaling the length of the entropy packet. Therefore, it is sometimes desirable to enable / disable the use of entropy packets as described herein. In this embodiment, entropy packets may be enabled or disabled based on a trade-off between parallel decoding and compression efficiency. In this embodiment, disabling entropy packets may mean packing all prediction errors, grid connectivity information, and other basic grid syntax elements into a single packet, rather than having a separate packet for each corresponding type of prediction error.

[0106] Figure 9An example of the syntax for elements of entropy packet encoding in video-based dynamic mesh coding (V-DMC) is shown according to an embodiment.

[0107] For reference Figure 8 As described above, in this embodiment, the use of entropy packages can be enabled or disabled. In this embodiment, it can be achieved through methods such as... Figure 9 The diagram shows a set of syntax elements 900 for enabling or disabling entropy packets. It should be noted that the naming conventions for syntax elements 900 are for illustrative purposes only. Syntax elements 900 may have alternative names, be ordered differently, or have different conditions applied. That is, for example, field 915 (e.g., enabling or disabling geometry entropy packets (geometry_entropy_packet_enable)) may be transmitted directly without being conditional on field 905 (e.g., without being conditional on the entropy packet enable feature (entropy_packet_enable)).

[0108] In an embodiment, enabling or disabling syntax element 900 allows different features to be enabled regarding transmission prediction errors. In an embodiment, reference is made to an example format illustrating the prediction error. Figures 10 to 12 Description of disabling and enabling syntax element 900.

[0109] For example, in one embodiment, syntax element 905 may include the syntax element entropy_packet_enable. In one embodiment, when the syntax element entropy_packet_enable is set to one ("1"), it uses the method described in reference to... Figure 8 The entropy packet described is used for each different type of prediction error. In an embodiment, when the syntax element `entropy_packet_enable` is set to one ("1"), entropy packets used in other syntax elements in the mesh code can be transmitted in the entropy packet, such as descriptor strings generated by the Edgebreaker (e.g., CLERS symbols), per-face properties, etc. In other embodiments, when the syntax element `entropy_packet_enable` is set to zero ("0"), a personalized entropy packet is not used. In such embodiments, different types of prediction errors (e.g., geometry, texture, material properties, etc.), mesh connectivity information, and other basic mesh syntax elements are packaged together without resetting or terminating the arithmetic codec between different types of syntax elements. That is, the packet does not include, as referenced... Figure 8The described approach involves either an arithmetic code start (e.g., ACS 810) or an arithmetic code end (e.g., ACE 820) between each different type of syntax element. Instead, the packet contains both ACS810 and ACE 820 at the beginning of the packet. In an embodiment, when the syntax element entropy_packet_enable is set to zero (“0”), there is no interpolated entropy packet header (e.g., EPH 805) between each different syntax element. Instead, a single entropy packet header is present at the beginning of the packet.

[0110] For example, Figure 10 An example prediction error transmission can be illustrated when the syntax element `entropy_packet_enable` is set to zero (“0”). In one embodiment, information 1000 includes all prediction error information associated with a corresponding mesh. In an embodiment, the corresponding mesh may include additional or less information, for example, not every mesh has “fine” geometry prediction error, “coarse” geometry prediction error, “fine” texture coordinate prediction error, “coarse” texture coordinate prediction error, “fine” material property prediction error, or “coarse” material property prediction error. In an embodiment, prediction error information 1000 is packaged together without an arithmetic coding start (e.g., ACS 810) or arithmetic coding end (e.g., ACE 820). Additionally, prediction error information 1000 may avoid including an entropy packet header (e.g., EPH 805). Therefore, prediction information 1000 can decode all prediction errors without resetting and terminating the arithmetic coding operation after each type of different prediction error. In at least one example, if the preceding syntax element ends with an arithmetic code (e.g., ACE 820), an arithmetic code start (e.g., ACS 810) and an entropy packet header (e.g., 805) may exist before Ge-Fine 825. In some examples, if the syntax element after ME2-Coarse 855 is in a different entropy packet, an arithmetic code end (e.g., ACE 820) may exist after ME2-Coarse 855.

[0111] Return to reference Figure 9 In an embodiment, syntax field 910 may indicate the procedure if the entropy_packet_enable syntax is set to one (“1”). For example, in an embodiment, syntax field 915 is conditional on syntax field 905. In an embodiment, syntax element 915 geometry_entropy_packet_enable is set to one (“1”). In such an embodiment, it indicates the start of a new entropy packet before the geometric prediction error sample, as referenced... Figure 11As shown. For example, information 1100 may include an arithmetic-coded stop (ACE 820-a) and an entropy packet header (EPH 805-b) to indicate the end of a packet, and an arithmetic-coded start (ACS 810-b) to indicate the start of a new entropy packet. In such an embodiment, the new entropy packet may include prediction errors, for example, including geometric prediction errors (Ge-Fine 815 and Ge-Coarse 825) associated with fine and coarse categories.

[0112] In this embodiment, syntax element 915 `geometry_entropy_packet_enable` is set to zero. In such an embodiment, there is no start of a new entropy packet before the geometric prediction error. That is, information 1100 can include the prediction error and be transmitted without having to include an arithmetic-coded stop (ACE 820-a), an entropy packet header (EPH 805-b), or an arithmetic-coded start (ACS 810-b). In such an embodiment, the prediction error is packaged without cleanup indicating the start and end of the entropy packet.

[0113] In an embodiment, geometric prediction error samples can be packaged into the same entropy bag. For example, geometric prediction error samples of the "fine" category and geometric prediction error samples of the "coarse" category can be packaged into the same entropy bag. In such an embodiment, geometric prediction error samples of the "fine" category and geometric prediction error samples of the "coarse" category can be interleaved. For example, geometric prediction error samples can be transmitted in the order of grid traversal, rather than transmitting all "fine" geometric prediction error samples first and then all "coarse" geometric prediction error samples, or vice versa.

[0114] Return to reference Figure 9 In this embodiment, syntax field 920 may indicate a packaging process for material properties. That is, material properties may have corresponding numbers identifying the material properties. In this embodiment, material properties may be assigned numbers ranging from zero (0) to the total number of material properties minus one (...). 0 to num_material_properties-1 The value of ). In such an embodiment, syntax field 920 identifies a specific material property (e.g., material property number i). In an embodiment, syntax field 925 is conditional on syntax field 920, for example, syntax field 925 can be enabled or disabled when the material property exists or is identified. In an embodiment, the material property is an example of texture coordinates, for example, a material property error sample is a texture coordinate error sample.

[0115] In this embodiment, syntax element 925 material_properties_entropy_packet_enable[i] is set to a "1". In such an embodiment, it indicates the start of a new entropy packet before the texture coordinate prediction error sample, as shown in the reference. Figure 12 As shown. For example, information 1200 may include an arithmetic-coded stop (ACE 820-a) indicating the end of a packet and an entropy packet header (EPH 805-b) and an arithmetic-coded start (ACS 810-b) indicating the start of a new entropy packet. In such an embodiment, the new entropy packet may include prediction errors, for example, texture coordinate prediction errors associated with fine and coarse categories (UVE-Fine 830 and UVE-Coarse 835).

[0116] In this embodiment, syntax element 925 material_properties_entropy_packet_enable[i] is set to zero "0". In such an embodiment, there is no start of a new entropy packet before the texture coordinate prediction error. That is, information 1200 can include the prediction error and be transmitted without having to include an arithmetic-coded stop (ACE 820-a), an entropy packet header (EPH 805-b), or an arithmetic-coded start (ACS 810-b). In such an embodiment, the texture coordinate prediction error is packaged without indicating the start and end of the entropy packet.

[0117] In this embodiment, texture coordinate prediction error samples can be packaged into the same entropy packet. For example, texture coordinate prediction error samples of the "fine" category and texture coordinate prediction error samples of the "coarse" category can be packaged into the same entropy packet. In such an embodiment, texture coordinate prediction error samples of the "fine" category and texture coordinate prediction error samples of the "coarse" category can be interleaved. For example, texture coordinate prediction error samples can be transmitted in the order of mesh traversal, rather than transmitting all "fine" texture coordinate prediction error samples first and then all "coarse" texture coordinate prediction error samples, or vice versa.

[0118] In embodiments, syntax element 925 can also be enabled or disabled for material properties (e.g., for material property one (ME1) and material property two (ME2)). In such embodiments, if syntax element 925 material_properties_entropy_packet_enable[i] is set to a "1", it indicates the start of a new entropy packet prior to the material property prediction error for material property i. In such examples, material property information can be packaged into packets with a format similar to information 1100 or information 1200, for example, material property information can be packaged into packets that may include: an arithmetic-coded stop indicating the end of the packet (ACE 820-a) and an entropy packet header (EPH 805-b) and an arithmetic-coded start indicating the start of a new entropy packet (ACS 810-b). In such an embodiment, the new entropy package may include prediction errors, such as material property prediction errors associated with fine and coarse categories for a first material property or a second material property, such as ME1-Fine 840, ME1-Coarse 845, ME2-Fine 850, or ME2-Coarse 855.

[0119] In this embodiment, syntax element 925 material_properties_entropy_packet_enable[i] is set to zero "0". In such an embodiment, there is no start of a new entropy packet before the material property prediction error. That is, information 1200 can include the prediction error and be transmitted without having to include an arithmetic-coded stop (ACE 820-a), an entropy packet header (EPH 805-b), or an arithmetic-coded start (ACS 810-b). In such an embodiment, the material property prediction error is packaged without indicating the start and end of the entropy packet.

[0120] In this embodiment, material property prediction error samples can be packaged into the same entropy bag. For example, material property prediction error samples of the "fine" category and those of the "coarse" category can be packaged into the same entropy bag. In such an embodiment, the material property prediction error samples of the "fine" and "coarse" categories can be interleaved. For example, material property prediction error samples can be transmitted in the order of grid traversal, rather than transmitting all the "fine" material property prediction error samples first and then all the "coarse" material property prediction error samples, or vice versa.

[0121] In embodiments, one or more syntax elements are used to indicate the start of a new entropy packet for other types of information, such as information other than prediction error information. For example, in a mesh codec, one or more syntax elements may be used to indicate the start of an X entropy packet that includes CLERS edge break indicators, properties of each face, etc.

[0122] In this embodiment, syntax element 900 is transmitted in sequences, grid frames, subgrids, headers, etc. That is, referring to... Figure 4 and Figure 5 The described base grid encoder or decoder can receive syntax element 900 and pack information based on the received syntax element. In an embodiment, entropy packets are not used by default; for example, the base grid encoder or decoder can be started without using entropy packets by default. In such an embodiment, syntax element 900 can be transmitted without signaling; for example, since the base grid encoder or decoder does not use entropy packets by default, syntax element 900 can be transmitted without signaling.

[0123] In this embodiment, different vertex prediction errors (e.g., geometry, texture coordinates, material properties, etc.) and other syntax elements (e.g., CLERS encoding, etc.) are interleaved on a per-vertex basis, rather than grouped together. That is, the transmitted information may include at least one of “fine” geometry, texture coordinate, or material property prediction errors or “coarse” geometry, texture coordinate, or material property prediction errors for a vertex, rather than transmitting all the “fine” geometry information associated with all vertices first, then all the “coarse geometry information,” and so on.

[0124] Figure 13 An example entropy packet in video-based dynamic mesh coding (V-DMC) is shown. In this embodiment, packet 1300 has the format indicated in V-DMC TMM 7.0. Packet 1300 can be used to transmit one or more prediction errors (e.g., refer to...). Figure 6 and Figure 7 (The prediction error discussed) or as referenced Figures 9 to 12 And other topological information as described herein. (See reference...) Figure 8 As described, the format of packet 1300 allows entropy packets to be accessed randomly, and individual packets can be decoded in parallel. However, the inclusion of arithmetic coding at the beginning (e.g., ACS 1310), additional bits for terminating arithmetic coding (e.g., ACE 1320), and byte alignment bits at the end of the packet (BA 1325) reduces coding efficiency, for example, by starting and stopping arithmetic operations for each individual packet. Therefore, the efficiency of the system can be improved by disabling entropy packets as described herein.

[0125] In one embodiment, packet 1300 may include an entropy packet header (EPH 1305) containing the entropy packet length. In some examples, packet 1300 may include an arithmetic coding start / initialization (ACS 1310) and an arithmetic coding stop / end (ACE 1320). In an embodiment, packet 1300 may include byte alignment (BA) 1325 bits. In an embodiment, packet 1300 may include topology 1315, such as syntax elements related to encoding topology or connectivity. In an embodiment, topology 1315 may include information on fifteen (15) different syntax elements related to mesh handle, mesh topology, texture coordinate seams, texture coordinate repetition, orientation for texture coordinate prediction, geometric prediction error (e.g., both fine and rough), texture (UV) coordinate prediction error (e.g., both fine and rough), and surface material properties (e.g., unpredicted, right-hand, left-hand, facing, different, etc.).

[0126] In one embodiment, Table 1 below may show the syntax elements of the packing prediction error based on the underlying mesh codec. In this embodiment, a portion of Table 1 is included in V-DMC's CD, ISO / IEC SC29 WG07 N00885, June 2024: [Table 1]

[0127] In an embodiment, the following binarizations are used during the binarization of codewords, including prediction errors: u(n), u(v), ue(v), vi(v), vu(v), fl(n), ae(v). In one embodiment, ae(v) indicates arithmetic-coded data (AC), and the remaining binarizations represent non-arithmetic-coded data (non-AC). In an embodiment, the descriptors in Table 1 indicate which binarization is used for the corresponding syntax element.

[0128] In this embodiment, two entropy packets are used to encode the geometry packet error. In such an embodiment, one entropy packet corresponds to the geometry prediction error of the "fine" category (e.g., mesh_coded_position_residuals_size), and the other entropy packet corresponds to the geometry prediction error of the "coarse" category (e.g., mesh_coded_position_coarse_residuals_size). In one embodiment, the syntax mesh_coded_position_residuals_size also starts the entropy packet. In this embodiment, the entropy packet may include an arithmetic codec reset (e.g., as demonstrated by ad.start() below) and / or padding_to_byte_alignment() to close the entropy packet. In this embodiment, the entropy packet may include the ad.stop() syntax to terminate the arithmetic encoding operation before padding_to_byte_alignment(). In this embodiment, in addition to indicating the geometry prediction error in the "coarse" category, the syntax mesh_coded_position_coarse_residuals_size also starts the entropy packet. In an embodiment, the entropy packet indicated by `mesh_coded_position_coarse_residuals_size` may include `ad.start()` to indicate the start of an arithmetic operation, `ad.stop()` to indicate the end of an arithmetic operation, and / or `padding_to_byte_alignment()`. In an embodiment, `ad.start()` may occur after `mesh_coded_position_coarse_residuals_size`, and `ad.stop()` may occur before `padding_to_byte_alignment()`.

[0129] In an embodiment, the syntax element `entropy_packet_enable` in Table 1 can be zero "0" or a "1". In one embodiment, when the syntax element `entropy_packet_enable` is a "1", it enables the use of different entropy packets for different types (e.g., categories) or syntax elements. For example, syntax elements may include handles, topologies, UV seams, UV repetitions, UV orientations, geometric prediction errors (fine and coarse), UV coordinate prediction errors (fine and coarse), and face identifiers (IDs) (e.g., unpredicted, right, left, facing, different, etc.). That is, when the syntax element `entropy_packet_enable` is a "1", each type of syntax element can be packed into its respective corresponding entropy packet. In other embodiments, when the syntax element `entropy_packet_enable` is zero "0", no separate entropy packet is used. That is, syntax element information can be packed into a single packet (e.g., a combined packet).

[0130] In an embodiment, the syntax element `geometry_entropy_packet_enable` in Table 1 can be either zero "0" or a "1". In one embodiment, when the syntax element `geometry_entropy_packet_enable` is a "1", it indicates that a new entropy packet will begin before the geometric prediction error sample. In other embodiments, when the syntax element `geometry_entropy_packet_enable` is zero "0", it indicates that no new entropy packet will begin before the geometric prediction error sample.

[0131] In this embodiment, the semantics of `mesh_coded_position_residual_size` are modified to the byte size of the geometric prediction errors for the fine and coarse categories. For example, a single packet may interleave the geometric prediction errors for the fine and coarse categories, as shown in the reference. Figure 11In this embodiment, if `geometry_entropy_packet_enable` is set to "1", the syntax element `mesh_coded_position_residual_size` is transmitted; for example, if `geometry_entropy_packet_enable` is set to zero, `mesh_coded_position_residual_size` is not transmitted. In this embodiment, the syntax element `mesh_coded_position_coarse_residuals_size` is removed. That is, when `geometry_entropy_packet_enable` is set to "1", fine and coarse geometric prediction errors are packed into the same entropy packet.

[0132] In the embodiment, `padding_to_byte_alignment()` and the underlying arithmetic codec (e.g., `ad.start` and `ad.stop`) are conditional on `geometry_entropy_packet_enable`, for example, when `geometry_entropy_packet_enable` is set to zero "0", it is possible to have no byte alignment (BA) bits and arithmetic start and stop (e.g., as referenced). Figure 8 The packet is transmitted in the case of ACE and ACS as described.

[0133] In the embodiment, the syntax element material_attribute_entropy_packet_enable[i] is set to a "1" to indicate that the new entropy packet will begin before the prediction error of the i-th material property.

[0134] In an embodiment, geometry_entropy_packet_enable may indicate (e.g., be expanded to indicate) the use of a single entropy pack for all (or a subset of) geometry-related syntaxes, including but not limited to: -Mesh handles (for example, mesh_handle_first_sign[i], mesh_handle_second_shift[i], mesh_handle_first_variable_delta_length4_minus1[i], mesh_handle_first_variable_delta[i], mesh_handle_second_variable_delta_length4_minus1[i], mesh_handle_second_variable_delta[i]) - Connectivity (e.g., mesh_clers_symbol[i]) - Fine-grained geometric position residuals (mesh_position_residual[i][j]) - Geometric position coarse residual (mesh_position_coarse_residual[i][j]) - Duplicate vertex flag (mesh_position_is_duplicate_flag[i]) In an embodiment, material_attribute_entropy_packet_enable[i] may indicate (e.g., be expanded to indicate) the use of a single entropy pack for all (or a subset of) the material attribute-related syntax, including but not limited to: - Material attribute seam (mesh_attribute_seam[i][j]) - Fine prediction error of material properties (mesh_attribute_residual[i][j][k]) - Material property coarseness prediction error (mesh_attribute_coarse_residual[i][j][k]) - Orientation used for texture coordinate stretching prediction (mesh_texcoord_stretch_orientation[index][j]) - Mesh material identification information (mesh_materialid_default_not_equal_flag[index][j], mesh_materialid_default_left_flag[index][j], mesh_materialid_default_right_flag[index][j], mesh_materialid_default_facing_flag[index][j]) - Mesh attribute duplication information (mesh_attribute_is_duplicate_flag[index][i]) In an embodiment, a flag is signaled in the mesh-coded header to indicate the use of entropy packets. For example, the flag `mesh_entropy_packet_flag` is included in the mesh-coded header. In one embodiment, a single entropy packet is used when the flag has a value of zero "0" (e.g., `mesh_entropy_packet_flag` is zero "0"). In other embodiments, a quantity is used when the flag has a value of one "1" (e.g., `mesh_entropy_packet_flag` is one "1"). N Entropy packet. In the embodiment, N It is a predetermined number. In one embodiment, N The value is four (4). In other embodiments, N It is a positive integer greater than or equal to one (1), for example, N These are 1, 2, 3, 4, etc. In one embodiment, Table 2 may show the grid-coded header: [Table 2]

[0135] In one embodiment, the arithmetic codec is reset at the beginning of each entropy packet. In another embodiment, the arithmetic codec is terminated and byte-aligned at the end of each entropy packet.

[0136] In this embodiment, when `mesh_entropy_packet_flag` has a value of "1", the following entropy packets are used: `mesh_entropy_packet_geometry()`, `mesh_entropy_packet_texcoord()`, `mesh_entropy_packet_normals()`, and `mesh_entropy_packet_materialid()`. In this embodiment, the four entropy packets correspond to the geometry prediction error, texture coordinate prediction error, normal prediction error, and material property prediction error, respectively. In this embodiment, the following syntax can represent the corresponding byte size for each of the four entropy packets: `mesh_entropy_packet_geometry_size`, `mesh_entropy_packet_texcoord_size`, `mesh_entropy_packet_normals_size`, and `mesh_entropy_packet_materialid_size`. In this embodiment, the syntax elements transmitted in the geometry entropy packet (e.g., `mesh_entropy_packet_geometry_syntax_elements()`) are given in `mesh_entropy_packet_geometry_syntax_elements()`. In this embodiment, the syntax elements transmitted in the texture coordinate entropy packet (e.g., `mesh_entropy_packet_texcoord()`) are given in `mesh_entropy_packet_normals_syntax_elements()`. In this embodiment, the syntax elements transmitted in the normal entropy packet (e.g., `mesh_entropy_packet_normals()`) are given in `mesh_entropy_packet_materialids_syntax_elements()`. In this embodiment, the syntax elements transmitted in the material property entropy packet (e.g., `mesh_entropy_packet_materialids()`) are given in `mesh_entropy_packet_materialids()`.

[0137] In an embodiment, when `mesh_entropy_packet_flag` has a value of zero "0", a single entropy packet is used. In such an embodiment, a single entropy packet can be represented as `mesh_entropy_packet_all()`. In an embodiment, the syntax `mesh_entropy_packet_size` indicates the size of the corresponding entropy packet in bytes. In an embodiment, the syntax element (e.g., `mesh_entropy_packet_all_size`) for each entropy packet of the corresponding type is given in the syntax element used for each type of entropy packet (e.g., in `mesh_entropy_packet_geometry_syntax_elements()`, `mesh_entropy_packet_texcoord_syntax_elements()`, `mesh_entropy_packet_normals_syntax_elements()`, and `mesh_entropy_packet_materialids_syntax_elements()`).

[0138] In an embodiment, the syntax for packing prediction errors may take the format of Table 3. In an embodiment, Table 3 may indicate the entropy pack flags and syntax elements for each of the different entropy pack types (e.g., for each of the prediction error types) as follows: [Table 3]

[0139]

[0140]

[0141]

[0142]

[0143] In this embodiment, the syntax element `mesh_entropy_packet` is signaled in the mesh-coded header. In this embodiment, the syntax element `mesh_entropy_packet` can have any value, where each value corresponds to a different number of entropy packets.

[0144] In an embodiment, the packet prediction error may follow the following syntax and semantics (e.g., starting from paragraph

[0146] and ending at paragraph

[0212] ). In an embodiment, the following syntax and semantics (e.g., at least a portion of the following syntax and semantics) can be found in section I.8 of V-DMC's CD, ISO / IEC SC29 WG07 N00885, June 2024. It should be noted that the following semantics and syntax are possible naming conventions for semantics and syntax. Semantics and syntax may take different names or identifiers; for example, the following semantics and syntax may be referred to by other names or mentioned under other names. In an embodiment, the following semantics and syntax also include a mechanism for a buffer pointer (e.g., bufferPtr). In such an embodiment, the buffer pointer specifies the resolution of the corresponding syntax element from the buffer position indicated by the buffer pointer. In an embodiment, during bitstream parsing, the buffer pointer advances to the next position after the syntax element.

[0145] The beginning of syntax and semantics I.8 Syntax and Semantics I.8.1 Method of specifying syntax in tabular form The specification in Sub-clause 8.1 applies to the following additional content. The following table lists additional examples of the syntax specification form. When syntax_element, bufferPtr appears, it specifies the position in the buffer pointed to by bufferPtr for parsing the syntax element. The pointer bufferPtr advances to the next position after the syntax element during bitstream parsing.

[0146]

[0147] I.8.2 Specification of Syntax Functions and Descriptors The specifications in sub-clause 8.2 apply to the following additional content.

[0148] `read_byte(n)` reads the next `n` bytes from the bitstream and advances the bitstream pointer by `n` bytes. 8) bit positions. It also returns a pointer to a buffer of size n bytes containing the n bytes read from the bitstream. Bitstream consistency requires n to be greater than 0. The following descriptors specify the parsing process for additional syntax elements: ae(v): A syntax element of context-adaptive arithmetic entropy encoding. The parsing procedure for this descriptor is specified in Item I.10.3.

[0149] vu(v): An unsigned integer, using a variable number of bytes, each byte being a group of 8 bits. The parsing process for this descriptor is specified by the return values ​​of the functions read_bits(1) and subsequently read_bits(7). A second value is appended to the resulting bit sequence, and the process is iterated while the first value equals 1. In particular, the parsing process for this descriptor is specified as follows:

[0150] vi(v): ​​A signed integer, using a variable number of bytes, each byte being a group of 8 bits. The parsing procedure for this descriptor is specified by the return values ​​of the functions read_bits(1) and subsequently read_bits(7). A second value is appended to the resulting bit sequence, and the procedure is iterated while the first value is equal to 1. Considering that the syntax elements have been mapped to unsigned integers by the following operation, the resulting bit sequence interpreted as an unsigned integer is assigned to the signed integer value: the absolute values ​​of the syntax elements are sorted in ascending order, and the highest encoded value is used to represent the positive value for the given absolute value. Table I-1 provides the assignment rules. In particular, the parsing procedure for this descriptor is specified as follows:

[0151] [Table I-1] Assignment of syntax elements for codeNum

[0152] I.8.3 Grammar in Tabular Form I.8.3.1 General Mesh Encoding Syntax

[0153] I.8.3.2 Mesh-coded header syntax

[0154]

[0155] I.8.3.3 Grid Position Encoding Parameter Syntax

[0156] I.8.3.4 Syntax for Mesh Position Inverse Quantization Parameters

[0157] I.8.3.5 Mesh Attribute Encoding Parameter Syntax

[0158] I.8.3.6 Mesh Attribute Inverse Quantization Parameter Syntax

[0159] I.8.3.7 Grid Location Encoding Payload Syntax

[0160]

[0161]

[0162] I.8.3.8 Grid Position Deduplication Syntax

[0163] I.8.3.9 Grid Difference Information Syntax

[0164] I.8.3.10 Mesh Attribute Encoding Payload Syntax

[0165]

[0166]

[0167] I.8.3.11 Grid Additional Attribute Data Syntax

[0168] I.8.3.12 Mesh Texture Coordinates (textcoord) Stretch Additional Data Syntax

[0169] I.8.3.13 Mesh Material Identifier (materialid) Default Additional Data Syntax

[0170]

[0171] I.8.3.14 Mesh Normal Octahedron Additional Data Syntax

[0172] I.8.3.15 Syntax for Deduplicating Grid Attributes

[0173] I.8.3.16 Padding to Byte Alignment Syntax

[0174] I.8.4 Semantics I.8.4.1 General Mesh Coding Semantics No.

[0175] I.8.4.2 Mesh-coded header semantics `mesh_codec_type` indicates the identifier of the selected codec method. Table I-2 describes a list of supported methods.

[0176] [Table I-2] Mesh Codec Types

[0177] The `mesh_vertex_traversal_method` specifies the method used to traverse the vertices to perform predictions of all vertex positions and vertex attributes. Table I-3 describes a list of supported methods.

[0178] [Table I-3] Mesh Vertex Traversal Methods

[0179] A mesh_position_dequantize_flag value of 1 indicates that bounding box information should be used to dequantize the decoded 3D position. A mesh_position_dequantize_flag value of 0 indicates that the decoded 3D position coordinates are (quantized) unsigned integers.

[0180] A `mesh_entropy_packets_enable_flag` value of 1 specifies that the arithmetic-coded data corresponding to the attribute payloads for each mesh attribute type (e.g., `MESH_ATTR_TEXCOORD`, `MESH_ATTR_NORMAL`, `MESH_ATTR_MATERIAL_ID`) is contiguous in the bitstream. This contiguous data is called an entropy packet. The arithmetic-coded data corresponding to the attribute payloads and position payloads for the attribute types "MESH_ATTR_COLOR" and "MESH_ATTR_GENERIC" are also contiguous in the bitstream and form another entropy packet. A `mesh_entropy_packets_enable_flag` value of 0 specifies that the arithmetic-coded data corresponding to the texture payloads and mesh position payloads for all texture types is contiguous in the bitstream and forms a single packet. EntropyPacketPtr is a variable that points to the current position in the entropy packet associated with the attribute-encoded payload or position-encoded payload of type "MESH_ATTR_COLOR" or "MESH_ATTR_GENERIC".

[0181] mesh_attribute_count indicates the number of encoded attributes.

[0182] `mesh_attribute_type[i]` indicates the attribute type of the i-th attribute, where i is in the range of 0 to 7. Table I-4 describes a list of supported attribute types.

[0183] [Table I-4] Mesh Attribute Types

[0184] Note that generic attributes will have the number of components specified by the value of the corresponding mesh_attribute_generic_num_components_minus1[index]. Other attributes have a fixed number of components.

[0185] A value of 1 for `mesh_normal_octahedral_flag[i]` indicates that the normal attribute should be decoded using octahedral representation. A value of 0 for `mesh_normal_octahedral_flag[i]` indicates that the normal attribute should be decoded in 3D Cartesian coordinates.

[0186] The increment of mesh_attribute_num_componetns_minus1[i] by 1 specifies the number of components of the i-th attribute when mesh_attribute_type[i] is equal to MESH_ATTR_GENERIC.

[0187] A mesh_attribute_dequanitze_flag[i] equal to 1 indicates that the attribute being decoded with index i should be dequantized using bounding box information. A mesh_attribute_dequantize_flag[i] equal to 0 indicates that the component being decoded with index i is a (quantized) unsigned integer.

[0188] The mesh_deduplicate_method specifies the method used for deduplication of locations and attributes. Table I-5 describes a list of supported methods.

[0189] [Table I-5] Mesh Deduplication Methods

[0190] I.8.4.3 Semantics of Grid Position Encoding Parameters The mesh_position_bit_depth_minus1 specification specifies the number of bits used to represent 3D position coordinates.

[0191] `mesh_position_prediction_method` specifies the method used to predict vertex positions and compute the residuals `mesh_position_fine_residuals[i][j]` and `mesh_position_coarse_residual[i][j]`. Table I-6 describes a list of supported methods. [Table I-6]

[0192] A mesh_position_reverse_unification_flag value of 1 indicates that repeated positions should be restored. A mesh_position_reverse_unification_flag value of 0 indicates that repeated positions should not be restored.

[0193] I.8.4.4 Semantics of Mesh Position Inverse Quantization Parameters -mesh_position_min[i] specifies the lower bound of the value of the i-th component of the dequantized 3D position. When mesh_position_min[i] does not exist, it is inferred that mesh_position_min[i] is equal to -1. Quantized positions with a value of 0 for the i-th component will be mapped to mesh_position_min[i] after dequantization.

[0194] `-mesh_position_max[i]` specifies the upper limit of the value of the i-th component of the dequantized 3D position. If `mesh_position_min[i]` does not exist, it is inferred that `mesh_position_min[i]` is equal to +1. The quantized position with a value of k for the i-th component will be mapped to k multiplied by `PositionValueStep` and then added to `mesh_position_min[i]`, where `PositionValueStep` is defined as follows:

[0195] I.8.4.5 Mesh Attribute Encoding Parameter Semantics The increment of -mesh_attribute_bit_depth_minus1[i] by 1 specifies the number of bits used to represent the component of the i-th attribute.

[0196] `-mesh_attribute_per_face_flag[i]` equal to 1 indicates that the i-th attribute has a value defined per face. `mesh_attribute_per_face_flag[i]` equal to 0 indicates that the i-th attribute has a value defined per vertex. Note 1: When attributes are defined per face, there is no index ambiguity. When attributes are defined per vertex, they can each have their own set of indices.

[0197] `-mesh_attribute_separate_index_flag[i]` equal to 1 specifies whether the i-th attribute is an accompanying specific index sequence. `mesh_attribute_separate_index_flag[i]` equal to 0 specifies that the index of the i-th attribute is copied from the position index or the index of another attribute. When `mesh_attribute_per_face_flag[i]` equals 1, `mesh_attribute_separate_index_flag[i]` is set to its default value of 0.

[0198] -mesh_attribute_reference_index_plus1[i] minus 1 specifies the reference index used for the i-th attribute when mesh_attribute_separate_index_flag[i] equals 0. When mesh_attribute_reference_index_plus1[i] minus 1 equals -1, the reference index is the position index; otherwise, it specifies the attribute whose index is used as a reference. Bitstream consistency requires that mesh_attribute_reference_index_plus1[i] minus 1 should be less than i.

[0199] -mesh_attribute_prediction_method[i] specifies the method used to predict the value of the i-th attribute and compute the residuals mesh_attribute_fine_residual[i][j][k] and mesh_attribute_fine_residual[i][j][k]. Table I-7 describes a list of supported methods for attributes with a mesh_attribute_type equal to MESH_ATTR_TEXCOORD, Table I-8 describes a list of supported methods for attributes with a mesh_attribute_type equal to MESH_ATTR_NORMAL, Table I-9 describes a list of supported methods for attributes with a mesh_attribute_type equal to MESH_ATTR_COLOR, Table I-10 describes a list of supported methods for attributes with a mesh_attribute_type equal to MESH_ATTR_MATERIAL_ID, and Table I-11 describes a list of supported methods for attributes with a mesh_attribute_type equal to MESH_ATTR_GENERIC.

[0200] [Table I-7] Mesh attribute prediction methods for MESH_ATTR_TEXCOORD type attributes

[0201] [Table I-8] Mesh attribute prediction methods for MESH_ATTR_NORMAL type attributes

[0202] [Table I-9] Mesh attribute prediction methods for MESH_ATTR_COLOR type attributes

[0203] [Table I-10] Mesh attribute prediction method for MESH_ATTR_MATERIAL_ID type attribute

[0204] [Table I-11] Mesh attribute prediction method for MESH_ATTR_GENERIC type attribute

[0205] I.8.4.6 Mesh Attribute Dequantization Parameter Semantics -mesh_attribute_min[index][j] specifies the lower bound of the value of the j-th component of the dequantized attribute at index. When mesh_attribute_min[index][j] does not exist, it is inferred that mesh_attribute_min[index][j] is equal to -1. The index-th attribute quantized with a j-th component value of 0 will be mapped to mesh_attribute_min[index][j] after dequantization.

[0206] `-mesh_attribute_max[index][j]` specifies the upper bound of the value of the j-th component of the dequantized attribute at index. If `mesh_attribute_max[index][j]` does not exist, it is inferred that `mesh_attribute_max[index][j]` equals +1. The index-th attribute quantized with a value of k for the j-th component will be mapped to k multiplied by `AttributeValueStep[index]` plus `mesh_attribute_min[index][j]`, where `AttributeValueStep[index]` is defined as follows:

[0207] I.8.4.7 Mesh Location Encoding Payload Semantics -mesh_triangle_count specifies the number of triangles in the decoded mesh.

[0208] -mesh_position_start_count specifies the number of starting positions.

[0209] -mesh_position_fine_residuals_count specifies the size of the mesh_position_fine_residual array, which contains fine residual values ​​for the three components used to predict the position.

[0210] -mesh_position_coarse_residuals_count specifies the size of the mesh_position_coarse_residual array, which contains coarse residual values ​​for the three components used to predict the position.

[0211] -mesh_clers_count specifies the number of CLERS symbols encoded.

[0212] -mesh_cc_with_boundary_count specifies the number of connected components with boundaries included in the coded mesh. The number of components without boundaries is derived from the decoded CLERS symbol sequence (see Clause I.9.3).

[0213] -mesh_handles_count[i] specifies the number of handles to include in the i-th connected component with a non-zero handle count.

[0214] -mesh_handle_first_delta[i] specifies the difference between the first angle of the i-th handle and the first angle of the (i-1)-th handle when i is greater than 0. When i is equal to 0, mesh_handle_index_second_delta[0] specifies the first angle of the first handle.

[0215] -mesh_handle_second_delta[i] specifies the difference between the second angle of the i-th handle and the second angle of the (i-1)-th handle when i is greater than 0. When i is equal to 0, mesh_handle_index_second_delta[0] specifies the second angle of the first handle.

[0216] -mesh_position_packet_size specifies the size in bytes (including final byte alignment) of the arithmetic-coded data corresponding to the mesh attribute-coded payload and mesh position-coded payload for the attribute types “MESH_ATTR_COLOR” and “MESH_ATTR_GENERIC”.

[0217] -mesh_all_packet_size specifies the size in bytes (including final byte alignment) of the arithmetic-coded data corresponding to the mesh attribute-coded payload and mesh position-coded payload for all attribute types.

[0218] The `-mesh_handle_first_sign[i]` option specifies whether the handle is associated with a boundary. When `mesh_handle_first_sign[i]` equals 0, the corner index associated with the first corner of the i-th handle will be less than zero, indicating that the handle is associated with a boundary. When `mesh_handle_first_sign[i]` equals 1, the corner index associated with the first corner of the i-th handle will be greater than zero, indicating that the handle is not associated with a boundary.

[0219] -mesh_handle_second_shift[i] specifies the shift to be applied when calculating the corner index associated with the second corner of the i-th handle.

[0220] Note that the handle index is relative to the triangle / face index, because the associated corner index can be implicitly derived. The corner index of the first handle conforms to (3). T + 2) or (-3) T - 2). The corner index of the second handle f index conforms to (3). T + 1) or (3) (T + 2). mesh_handle_first_sign[i] and mesh_handle_index_second_shift[i] are used to distinguish these cases.

[0221] -mesh_handle_first_variable_delta_length4_minus1[i] specifies the number of four-bit groups used to represent mesh_handle_first_variable_delta[i].

[0222] -mesh_handle_first_variable_delta[i] specifies the intermediate value used to evaluate the corner index associated with the first corner of the i-th handle. The number of bits used to represent mesh_handle_first_variable_delta[i] is equal to (4... ( mesh_handle_index_first_variable_delta_length4_minus1 + 1 ) ).

[0223] -mesh_handle_index_second_variable_delta_length4_minus1[i] specifies the number of four-bit groups used to represent mesh_handle_second_variable_delta[i].

[0224] -mesh_handle_second_variable_delta[i] specifies an intermediate value used to evaluate the angle index associated with the second angle of the i-th handle. The number of bits used to represent mesh_handle_second_variable_delta[i] is equal to (4... ( mesh_handle_index_second_variable_delta_length4_minus1 + 1 ) ).

[0225] -mesh_clers_symbol[i] specifies the value of the i-th CLERS symbol. These values ​​are positive integers and are interpreted as specified in Table I-12.

[0226] [Table I-12] Explanation of mesh_clers_symbol[i]

[0227] -mesh_position_start[i][j] specifies the value of the j-th component at the first position of the i-th connected component as an unsigned integer encoded with mesh_position_bit_depth_minus1 + 1 bits.

[0228] -mesh_position_fine_residual[i][j] specifies the value of the fine position prediction residual associated with the j-th component.

[0229] -mesh_position_coarse_residual[i][j] specifies the value of the i-th coarse prediction residual associated with the j-th component.

[0230] I.8.4.8 Semantic Deduplication of Grid Location Information -mesh_position_deduplicate_count specifies the number of duplicate vertices.

[0231] Note that the number of repeated vertices is the sum of the number of original vertices that have already been divided and the number of vertices added during the copying process to fix the mesh (manifoldness).

[0232] -mesh_position_deduplicate_idx[i] specifies the value that duplicate vertices sharing a common parent are common to. The value of mesh_position_deduplicate_idx[i] ranges from 0 to the number of original vertices that have been partitioned minus one.

[0233] -mesh_position_is_duplicate_flag[i] equal to 1 indicates that the i-th decoded vertex is a duplicate vertex. mesh_position_is_duplicate_flag[i] equal to 0 indicates that the i-th decoded vertex is not a duplicate vertex.

[0234] I.8.4.9 Grid Difference Information Syntax -mesh_position_added_vertices_count specifies the number of vertices added.

[0235] Note that the number of vertices added is the number of vertices that should be added to the reconstructed mesh first.

[0236] -mesh_position_added_vertices_idx_delta[i] specifies the difference between the index of the i-th added vertex and the index of the (i-1)-th added vertex when i is greater than 0. When i is equal to 0, mesh_position_added_vertices_idx_delta[0] specifies the index of the first added vertex.

[0237] -mesh_position_deleted_vertices_count specifies the number of vertices to be deleted.

[0238] Note that the number of vertices deleted is the same as the number of vertices in the reconstructed mesh that should be deleted first.

[0239] -mesh_position_deleted_vertices_idx_delta[i] specifies the difference between the index of the i-th deleted vertex and the index of the (i-1)-th deleted vertex when i is greater than 0. When i is equal to 0, mesh_position_deleted_vertices_idx_delta[0] specifies the index of the first deleted vertex.

[0240] -mesh_modified_count specifies the number of information items modified.

[0241] Note that the number of times the information to be modified is the number of times the triangles should be modified in the reconstructed mesh.

[0242] -mesh_modified_triangles_idx_delta[i] specifies the difference between the index of the i-th modified triangle and the index of the (i-1)-th modified triangle when i is greater than 0. When i is equal to 0, mesh_modified_triangles_idx_delta[0] specifies the index of the first modified triangle.

[0243] -mesh_modified_vertices_relative_idx[i] specifies the relative index of the i-th modified point in the i-th modified triangle. Its range is [0, 1, 2].

[0244] -mesh_target_modified_vertices_idx_delta[i] specifies the difference between the index of the i-th target point and the index of the (i-1)-th target point when i is greater than 0. When i is equal to 0, mesh_target_modified_vertices_idx_delta[0] specifies the index of the first target point.

[0245] Note that the index of the i-th target point is the index of the i-th target point in the original reconstructed mesh to which the i-th modified point should be modified.

[0246] I.8.4.10 Mesh Attribute Encoding Payload Semantics -mesh_attribute_start_count[i] specifies the size of the mesh_attribute_start[i] array, which contains unpredicted attribute values.

[0247] -mesh_attribute_fine_residuals_count[i] specifies the size of the mesh_attribute_fine_residual[i] array, which contains fine residual values ​​for the NumResidualsComponents[i] component of the i-th attribute.

[0248] -mesh_attribute_coarse_residuals_count[i] specifies the size of the mesh_attribute_coarse_residual[i] array, which contains coarse residual values ​​for the NumResidualsComponents[i] component of the i-th attribute.

[0249] •AttrPacketPtr is a variable that points to the current position in the entropy packet associated with the attribute being processed in the attribute-encoded payload.

[0250] -mesh_uv_packet_size specifies the size in bytes (including final byte alignment) of the arithmetic-coded data used for the mesh attribute-coded payload corresponding to the attribute type "MESH_ATTR_TEXCOORD".

[0251] -mesh_normal_packet_size specifies the size in bytes (including final byte alignment) of the arithmetic-coded data used for the mesh attribute-coded payload corresponding to the attribute type "MESH_ATTR_NORMAL".

[0252] -mesh_uv_packet_size specifies the size in bytes (including final byte alignment) of the arithmetic-coded data used for the mesh attribute-encoded payload corresponding to the attribute type "MESH_ATTR_MATERIAL_ID".

[0253] -mesh_attribute_seams_count[i] specifies the size of the array of the i-th attribute, mesh_attribute_seam.

[0254] -mesh_coded_attribute_seams_size[i] specifies the size in bytes (including final byte alignment) of the arithmetic-coded sequence of the binary seam indicator mesh_attribute_seam[i][j].

[0255] -mesh_attribute_seam[i][j] specifies the value of the j-th binary seam indicator for the i-th attribute.

[0256] -mesh_attribute_start[i][j][k] specifies the value of the k-th component of the j-th value that was not predicted for the i-th attribute, and the value of the k-th component as an unsigned integer encoded with mesh_attribute_bit_depth_minus1[i]+1 bits.

[0257] -mesh_attribute_fine_residual[i][j][k] specifies the value of the k-th component of the j-th fine prediction residual associated with the i-th attribute.

[0258] -mesh_attribute_coarse_residual[i][j][k] specifies the value of the k-th component of the j-th coarse prediction residual associated with the i-th attribute. When mesh_attribute_coarse_residual[i][j][k] does not exist, it is inferred that mesh_attribute_coarse_residual[i][j][k] is equal to 0.

[0259] I.8.4.11 Additional Data Semantics for Grid Attributes I.8.4.12 Grid Text Coordinate Stretching Additional Data Semantics -mesh_texcoord_stretch_orientations_count[i] specifies the size of the array of mesh_texcoord_stretch_orientations used to predict texture coordinates when the mesh_attribute_type of the i-th attribute is equal to MESH_ATTR_TEXCOORD and when the associated mesh_attribute_prediction_method is equal to MESH_TEXCOORD_MSTRETCH.

[0260] -mesh_texcoord_stretch_orientation[i][j] specifies the value of the j-th orientation bit in the sequence used to generate the i-th attribute value from the arrays mesh_attribute_residual[i] and mesh_attribute_start[i].

[0261] I.8.4.13 Mesh Material ID Default Additional Data Semantics `mesh_materialid_default_not_equal_count[i]` specifies the size of the array containing the boolean information `mesh_materialid_default_not_equal_flag` for predicting the material ID when the `mesh_attribute_type` of the `i`th attribute is equal to `MESH_ATTR_MATERIAL_ID` and when the associated `mesh_attribute_prediction_method` is equal to `MESH_MATERIALID_DEFAULT`.

[0262] mesh_materialid_default_left_count[i] specifies the size of the array containing the boolean information mesh_materialid_default_left_flag for predicting the material ID when the mesh_attribute_type of the i-th attribute is equal to MESH_ATTR_MATERIAL_ID and the associated mesh_attribute_prediction_method is equal to MESH_MATERIALID_DEFAULT.

[0263] mesh_materialid_default_right_count[i] specifies the size of the array containing the boolean information mesh_materialid_default_right_flag for predicting the material ID when the mesh_attribute_type of the i-th attribute is equal to MESH_ATTR_MATERIAL_ID and when the associated mesh_attribute_prediction_method is equal to MESH_MATERIALID_DEFAULT.

[0264] mesh_materialid_default_facing_count[i] specifies the size of the array containing the boolean information mesh_materialid_default_facing_flag for predicting the material ID when the mesh_attribute_type of the i-th attribute is equal to MESH_ATTR_MATERIAL_ID and the associated mesh_attribute_prediction_method is equal to MESH_MATERIALID_DEFAULT.

[0265] mesh_coded_materialid_default_not_equal_size[i] specifies the size in bytes (including final byte alignment) of the arithmetic-coded Boolean sequence contained in the array mesh_materialid_default_not_equal_flag[i].

[0266] The mesh_materialid_default_not_equal_flag[i][j] parameter specifies the value of the j-th bit in the sequence used to generate the i-th attribute value from the arrays mesh_attribute_residual[i] and mesh_attribute_start[i].

[0267] The mesh_materialid_default_left_flag[i][j] parameter specifies the value of the j-th bit in the sequence used to generate the i-th attribute value from the arrays mesh_attribute_residual[i] and mesh_attribute_start[i].

[0268] mesh_materialid_default_right_flag[i][j] specifies the value of the j-th bit in the sequence used to generate the i-th attribute value from the arrays mesh_attribute_residual[i] and mesh_attribute_start[i].

[0269] mesh_materialid_default_facing_flag[i][j] specifies the value of the j-th bit in the sequence used to generate the i-th attribute value from the arrays mesh_attribute_residual[i] and mesh_attribute_start[i].

[0270] I.8.4.14 Mesh Normal Octahedron Additional Data Semantics The increment of mesh_normal_octahedral_bit_depth_minus1[i] by 1 specifies the number of bits used to represent the normal attribute when the mesh_attribute_type of the i-th attribute is equal to MESH_ATTR_NORMAL and the associated mesh_normal_octahedral_flag is equal to 1.

[0271] A value of 1 for `mesh_normal_octahedral_second_residual_flag[i]` indicates that the second residual used for the normal should be decoded. A value of 0 for `mesh_normal_octahedral_second_residual_flag[i]` indicates that the second residual used for the normal should not be decoded. This occurs when the `mesh_attribute_type` of the i-th attribute is equal to `MESH_ATTR_NORMAL` and when the associated `mesh_normal_octahedral_flag` is equal to 1.

[0272] The mesh_normal_octahedral_second_residuals_count[i] specifies the size of the mesh_normal_octahedral_second_residual[i] array containing the residual values ​​for the three components when the mesh_attribute_type of the i-th attribute is equal to MESH_ATTR_NORMAL and when the associated mesh_normal_octahedral_flag is equal to 1.

[0273] mesh_normal_octahedral_second_residual[i][j][k] specifies the value of the residual associated with the k-th component of the j-th value of the i-th attribute when the mesh_attribute_type of the i-th attribute is equal to MESH_ATTR_NORMAL and when the associated mesh_normal_octahedral_flag is equal to 1.

[0274] I.8.4.15 Mesh Attribute Deduplication Information Semantics mesh_attribute_deduplicate_count[i] specifies the number of attribute vertices that are repeated for the i-th attribute.

[0275] `mesh_attribute_deduplicate_idx[i][j]` specifies the value common to repeated attribute vertices sharing a common parent for the i-th attribute. The value of `mesh_attribute_deduplicate_idx[i][j]` ranges from 0 to the number of original attribute vertices that have been partitioned minus one.

[0276] The value of mesh_attribute_is_duplicate_flag[i][j] equal to 1 indicates that the j-th decoded attribute vertex of the i-th attribute is a duplicate attribute vertex.

[0277] I.8.4.16 Padding to Byte Alignment Syntax padding_to_byte_alignment_bit_equal_to_zero should be equal to zero.

[0278] End of syntax and semantics In this embodiment, separate entropy packets are used to transmit color attributes and general attributes. For example, separate entropy packets are used for the mesh color attribute (mesh_attribute_type == MESH_ATTR_COLOR) and for the general mesh attribute (mesh_attribute_type == MESH_ATTR_GENERIC). In this embodiment, when the value of the entropy packet flag (e.g., mesh_entropy_packets_enable_flag) is "1", a separate packet is used for each attribute. In such an embodiment, if two attributes have the same attribute type (e.g., mesh_attribute_type == MESH_ATTR_TEXCOORD), they will still be in a separate packet. In other embodiments, when the value of the entropy packet flag is zero ("0"), the arithmetic-coded data corresponding to all attributes of a specific type (e.g., mesh_attribute_type == MESH_ATTR_TEXCOORD) belongs to a single packet.

[0279] Figure 14 An example entropy packet in video-based dynamic mesh coding (V-DMC) is shown. In this embodiment, packet 1400 has the format indicated in V-DMC TMM 7.0. Packet 1400 can be used to transmit one or more prediction errors (e.g., refer to...). Figure 6 and Figure 7 The prediction error discussed. In the embodiment, with Figure 14 The associated prediction error is the texture coordinate prediction error. In other embodiments, other prediction errors are possible, for example, Figure 14 An example is shown for illustration purposes, but it is not restrictive.

[0280] For reference Figures 8 to 13 As described, the underlying grid data can be binarized before being packaged and transmitted. In one embodiment, the following binarizations are used for prediction error packets: u(n), u(v), ue(v), vi(v), vu(v), fl(n), and ae(v). In an embodiment, arithmetic-coded data (AC) is indicated by the binarized ae(v). In such an embodiment, the remaining binarizations (e.g., u(n), u(v), ue(v), vi(v), vu(v), and fl(n)) represent non-AC data. In an embodiment, the grid-coded header (e.g., refer to...) Figure 13The described `mesh_coding_header()` and the syntax and semantics described herein contain non-AC data; for example, a mesh-coded header does not include any AC data. Therefore, the signaling of the syntax elements in the mesh-coded header is not altered. In embodiments, mesh positions (e.g., `mesh_position_coding_payload()`) and mesh attributes (e.g., `mesh_attribute_coding_payload()`) include both AC-coded and non-AC-coded data.

[0281] In this embodiment, AC-encoded data binarization is used to convert syntax elements into binary numbers (e.g., binary symbols), which can then be used with a binary arithmetic encoding scheme (e.g., in V-DMC TMM8.0 Appendix). K The binary symbol is encoded using the binary arithmetic encoding scheme defined in [reference]. In an embodiment, AC-encoded data begins at byte boundaries and is used to terminate the arithmetic encoding process (e.g., as shown in [reference]). Figure 8 The described ACE 820 ensures that AC-encoded data also ends at byte boundaries. In some examples, non-AC-encoded data can also be aligned with byte boundaries. For example, if a segment following non-AC-encoded data is AC-encoded data, the non-AC-encoded data is aligned so that the AC-encoded data can begin at a byte boundary.

[0282] For example, Figure 14 Data 1405 corresponding to the geometric prediction error is shown (e.g., mesh position (mesh_position_coding_payload())) and data 1410 corresponding to the texture coordinate prediction error is shown (e.g., mesh attributes (mesh_attribute_coding_payload())). In embodiments, data 1405 may include non-AC encoded syntax elements and data, or AC encoded syntax elements and data. For example, data 1405 may include the size of the handle packet as non-AC encoded data and the handle data as AC encoded data, for example, by vu(v), non-ac, and ae(v), respectively. AC representation. Similarly, data 1410 may include both non-AC encoded data and AC encoded data, for example, non-AC encoded data including the size of the seam package and AC encoded data including attribute fine residual data. In an embodiment, data 1405 and data 1410 include each syntax or element in different byte boundaries, for example, each syntax or element may be transmitted in a separate packet. For example, byte boundary 1415 shows that for both data 1405 and data 1410, AC encoded data begins at the boundary and ends at the boundary. In an embodiment, reference is used. Figure 13 To describe the presented syntax and semantics Figure 14The syntax and elements shown in the figure.

[0283] For reference Figure 9 The syntax elements (e.g., the mesh_entropy_packets_enable_flag) can be set to a "1" or zero. In embodiments, depending on the value of the mesh_entropy_packets_enable_flag (e.g., when the value is zero), AC-coded data can be packaged into a single packet, or (e.g., when the value is 1), AC-coded data can be divided into several packets corresponding to the attribute-coded payload and location-coded payload for each attribute. In such embodiments, the number of packets is equal to the mesh attribute count plus one, for example, mesh_attirbute_count + 1.

[0284] In an embodiment, Figure 15 This illustrates the packet format when the grid entropy enable flag is set to "1". In an embodiment, Figure 16 This shows the packet format when the grid entropy flag is set to zero "0".

[0285] Figure 15 An example entropy packet in video-based dynamic mesh coding (V-DMC) is shown. In this embodiment, packet 1500 has the format indicated in the V-DMC DIS. Packet 1500 can be used to transmit one or more prediction errors (e.g., refer to...). Figure 6 and Figure 7 The prediction error discussed. In the embodiment, with Figure 15 The associated prediction errors are geometric prediction errors and texture coordinate prediction errors, for example, the geometric prediction error and texture coordinate prediction error for a texture of type MESH_ATTR_TEXCOORD. In one embodiment, data 1505 is associated with the geometric prediction error, and data 1510 is associated with the texture coordinate prediction error. In other embodiments, other prediction errors are possible, for example, Figure 15 An example is shown for illustration purposes, but is not limiting. In the embodiment, Figure 15 This shows the scenario when the grid entropy flag is set to "1".

[0286] For example, when the mesh entropy enable flag is a "1", the AC-coded data for the corresponding attribute is packaged into a separate packet. In one embodiment, data 1505 indicates the mesh position (e.g., mesh_position_coding_payload()), and data 1510 indicates the mesh attribute (e.g., mesh_attribute_coding_payload()). In another embodiment, position AC-coded data is packaged into position packet 1520, for example, handle data, CLERS symbol data, fine position residual data, coarse position residual data, and repeat flag data are packaged into position packet 1520. In such an embodiment, the position packet may have a single start byte boundary and a single end byte boundary; for example, it is not necessary to package an entropy header or arithmetic start / arithmetic end (e.g., ACS or ACE) between each AC-coded data segment. Similarly, attribute AC-coded data is packaged into attribute packet 1525, for example, seam data, fine attribute residual data, coarse attribute residual data, repeat flag data, and orientation data are packaged into attribute packet 1525. By setting the grid entropy enable flag to a value of "1", each AC-coded attribute is packaged into the corresponding entropy packet. Additionally, non-AC-coded syntax elements positioned between AC-coded data segments are moved and positioned after the AC-coded data used for position-coded and attribute-coded payloads.

[0287] Figure 16 An example entropy packet in video-based dynamic mesh coding (V-DMC) is shown. In this embodiment, packet 1600 has the format indicated in the V-DMC DIS. Packet 1600 can be used to transmit one or more prediction errors (e.g., refer to...). Figure 6 and Figure 7 The prediction error discussed. In the embodiment, with Figure 16 The associated prediction errors are geometric prediction errors and texture coordinate prediction errors, for example, the geometric prediction error and texture coordinate prediction error for a texture of type MESH_ATTR_TEXCOORD. In one embodiment, data 1605 is associated with both geometric prediction error and texture coordinate prediction error. In other embodiments, other prediction errors are possible, for example, Figure 16 An example is shown for illustration purposes, but is not limiting. In the embodiment, Figure 16 This shows the scenario when the grid entropy flag is set to zero "0".

[0288] For example, when the mesh entropy enable flag is zero "0", all AC-coded data is packaged into a combined packet (e.g., combined packet 1610). In an embodiment, data 1605 includes data for both mesh position (e.g., mesh_position_coding_payload()) and mesh attributes (e.g., mesh_attribute_coding_payload()). That is, all AC-coded data associated with both the position payload and the attribute payload is packaged into a single combined packet 1610. In such an embodiment, the combined packet data 1610 may have a single start byte boundary 1615 and a single end byte boundary 1615, for example, AC-coded data is packaged without an entropy header or arithmetic start / stop operation between each AC-coded data segment. In an embodiment, all non-AC-coded data for both mesh position and mesh attributes is positioned after the combined packet data 1610. In one embodiment, the combined packet data 1610 may include location handle data, location CLERS symbols, location fine residual data, location coarse residual data, location repeat flag data, attribute seam data, attribute fine residual data, attribute coarse residual data, attribute repeat flag data, and attribute orientation data. In other embodiments, the combined packet data 1610 may include additional syntax or data, or may include a subset or portion of the combined packet data 1610 shown.

[0289] In one embodiment, the arithmetic decoder may use syntax elements from non-AC encoded segments. In one embodiment, the arithmetic decoder may decode AC encoded data segments using syntax elements from non-AC encoded segments. In one embodiment, the decoder may buffer AC encoded data segments and decode non-AC encoded syntax elements before decoding some of the AC encoded data segments. In such an embodiment, the decoder may track whether AC encoded data or non-AC encoded data is being parsed and from which buffer it should be read.

[0290] In other embodiments, to overcome the problem of having to decode some syntax elements in the non-AC encoded syntax elements first, the encoder may encode the non-AC encoded syntax elements in the bitstream before the AC encoded data. In one embodiment, Figure 17One possible embodiment is shown where the mesh entropy enable flag (e.g., `mesh_entropy_packet_enable_flag`) is set to "1", and non-AC encoded syntax elements are encoded before AC encoded data. For example, for data 1705 (e.g., data 1705 for a position-encoded payload), the non-AC encoded data is encoded before position packet 1720 (e.g., before the position entropy packet containing all AC encoded data segments). In this embodiment, for data 1710 (e.g., data for an attribute-encoded payload), all non-AC encoded data is encoded before attribute packet 1725 (e.g., before the attribute packet containing all AC encoded data segments). In this embodiment, the size of the last attribute entropy packet is not signaled.

[0291] In another embodiment, Figure 18 One possible embodiment is shown where the mesh entropy enable flag (e.g., `mesh_entropy_packet_enable_flag`) is set to "1", and non-AC encoded syntax elements are encoded before AC encoded data. For example, all non-AC encoded syntax elements corresponding to the position-encoded payload and attribute-encoded payload are encoded before all entropy packets corresponding to positions and attributes. That is, data 1805 may include non-AC encoded data associated with the position-encoded payload and attribute-encoded payload before position packet 1820 and attribute packet 1825. In this embodiment, the size of the last attribute entropy packet is not signaled.

[0292] In yet another embodiment, Figure 19 One possible embodiment is shown, wherein the mesh entropy enable flag (e.g., `mesh_entropy_packet_enable_flag`) is set to zero "0", and non-AC encoded syntax elements are encoded before AC encoded data. For example, all non-AC encoded syntax elements corresponding to the position-encoded payload and the attribute-encoded payload are encoded before a single AC encoded packet corresponding to position and attribute. That is, data 1905 may include non-AC encoded data associated with the position-encoded payload and the attribute-encoded payload before the combined packet 1920. In this embodiment, Figure 18 and Figure 19 The difference is that all AC-encoded data segments are packed into a combined packet 1920 (instead of being packed into a location packet 1820 and an attribute packet 1825).

[0293] Figure 20 This illustrates an example entropy packet in video-based dynamic mesh coding (V-DMC). Packet 2000 can be used to transmit one or more prediction errors (e.g., see reference). Figure 6 and Figure 7 The prediction error discussed. In the embodiment, with Figure 20 The associated prediction errors are geometric prediction errors and texture coordinate prediction errors, for example, the geometric prediction error and texture coordinate prediction error for a texture of type MESH_ATTR_TEXCOORD. In this embodiment, data 2005 is associated with the geometric prediction error, and data 2010 is associated with the texture coordinate prediction error. In other embodiments, other prediction errors are possible, for example, Figure 20 An example is shown for illustration purposes, but is not limiting. In the embodiment, Figure 20 This shows the scenario when the grid entropy flag is set to "1".

[0294] In one embodiment, the encoding order of non-arithmic (AC) encoded syntax elements and AC encoded syntax elements follows a second format. In one example, the binarization and reference of the second format... Figures 8 to 19 The semantics and syntax elements described are the same. However, in one embodiment, arithmetic coding is used in bypass mode to encode the binary numbers (e.g., binary symbols) corresponding to the non-AC encoded syntax elements between any two AC encoded data segments. That is, no separate byte alignment is performed for the non-AC encoded syntax elements between any two AC encoded data segments because they are part of the AC encoded segments; for example, the non-AC encoded segments are also packed within the AC encoded portions.

[0295] For example, as referenced Figure 20 As shown, non-AC encoded data (e.g., position start [u(v)] and position repeat count idx [vu(v)]) used for data 2005 (e.g., a mesh position encoded payload) is packaged in position package 2020. In an embodiment, the binarization of syntax elements that were previously non-AC encoded but are now included in an AC encoded segment is shown in square brackets. In an embodiment, the position start + byte alignment syntax is replaced with the position start [u(v)] syntax and is no longer byte aligned. In an embodiment, data 2010 (e.g., a mesh attribute encoded payload) may also include non-AC encoded data in an AC encoded data segment; for example, data 2010 may include non-AC encoded attribute start [u(v)], attribute repeat count idx [vu(v)], and texture coordinate stretching orientation count [u(v)] included in attribute package 2025.

[0296] Figure 21 This is a flowchart 2100 illustrating the operation of a basic mesh decoder according to an embodiment. In the embodiment, reference is made to… Figure 21 The described operations can be obtained from, as referenced Figure 5 The described basic mesh decoder 525 is used for execution.

[0297] In operation 2105, the processor of the lattice decoder receives a bitstream, wherein the bitstream includes syntax elements of the lattice frames, a first set of arithmetic-coded prediction errors, and a second set of arithmetic-coded prediction errors, wherein the syntax elements indicate whether the prediction errors, lattice connectivity information, and additional basic lattice syntax elements are transmitted in a single entropy packet or in multiple entropy packets. In an embodiment, the syntax elements are as follows: Figures 9 to 20 The described entropy packet enable flag (e.g., `entropy_packet_enable_flag`). In embodiments, the syntax element may have a first value or a second value. In embodiments, the first value is the value zero "0", and the second value is the value one "1". In embodiments, the first set of arithmetic coding prediction errors is a geometric error, and the second set of arithmetic coding prediction errors is an attribute error (e.g., texture coordinate prediction error, normal prediction error, material identification prediction error, etc.). In embodiments, the first set of arithmetic coding prediction errors is at least one of fine geometry prediction error or coarse geometry prediction error. In other embodiments, the first set of arithmetic coding prediction errors is associated with the "fine" category, and the second set of arithmetic coding prediction errors is associated with the "coarse" category. In other embodiments, the first set of arithmetic coding prediction errors includes at least fine geometry prediction error and coarse geometry prediction error. In embodiments, the second set of arithmetic coding prediction errors is associated with attribute prediction errors. In embodiments, the second set of arithmetic coding prediction errors includes at least one of fine texture prediction error, coarse texture prediction error, fine material property prediction error, coarse material property prediction error, normal prediction error, or material identification prediction error. In other embodiments, the second set of arithmetic coding prediction errors may include at least fine texture coordinate errors and coarse texture coordinate errors; for example, geometric and texture coordinates may be as described in reference to... Figure 11 and Figure 12 As described, they are intertwined.

[0298] In operation 2110, the processor may decode the syntax element. In one embodiment, the processor may determine the value for the syntax element based on the decoding.

[0299] In operation 2115, the processor can perform arithmetic decoding on the first set of arithmetic code prediction errors and the second set of arithmetic code prediction errors based on syntax elements. That is, as referred to Figure 9 As described, the syntax elements allow prediction errors to be transmitted in a single entropy packet or in multiple entropy packets. Therefore, the decoder can decode the received bitstream based on the values ​​of the syntax elements (e.g., based on whether the first set of arithmetic-coded prediction errors and the second set of arithmetic-coded prediction errors are transmitted in a single packet or multiple packets).

[0300] For example, in operation 2120, if a syntax element has a first value (e.g., the value zero "0"), the first set of arithmetic code prediction errors and the second set of arithmetic code prediction errors are included in a single entropy packet.

[0301] In other examples, in operation 2125, if the syntax element has a second value (e.g., the value "1"), the first set of arithmetic code prediction errors is in the first entropy bag of multiple entropy bags, and the second set of arithmetic code prediction errors is in the second entropy bag of multiple entropy bags.

[0302] In an embodiment, if the syntax element has a second value, the bitstream may further include a second syntax element indicating the size of the first entropy packet; for example, the bitstream may include a `mesh_position_packet_size` syntax element. In an embodiment, the processor may determine a variable (e.g., a buffer pointer (EntropyPacketPtr)) pointing to the current position in the first entropy packet based on the second syntax element, wherein the first set of arithmetic coding prediction errors is decoded based on this variable. That is, the bitstream may include a variable indicating the current position.

[0303] In other embodiments, if the syntax element has a first value, the bitstream may include a second syntax element indicating the size of a single entropy packet; for example, the bitstream may include a `mesh_all_packet_size` syntax element. In embodiments, the processor may determine a variable (e.g., a buffer pointer (EntropyPacketPtr)) pointing to the current position within a single entropy packet based on the second syntax element, wherein the first set of arithmetic coding prediction errors and the second set of arithmetic coding prediction errors are decoded based on this variable. That is, the bitstream may include a variable indicating the current position.

[0304] In an embodiment, the prediction error for the current vertex is determined by performing arithmetic decoding on one of the arithmetic-coded prediction errors in the first set of arithmetic-coded prediction errors. For example, as shown in the reference... Figure 6 and Figure 7 As described, the processor is used to determine the predicted value for the current vertex, and to determine the coordinate value of the current vertex based on the prediction error for the current vertex and the predicted value for the current vertex.

[0305] In one embodiment, if the syntax element has a second value, the bitstream also includes a second syntax element (e.g., geometry_entropy_packet_enable) associated with the first set of arithmetic-coded prediction errors. In such an embodiment, the processor is used to decode the second syntax element and perform arithmetic decoding of the first set of arithmetic-coded prediction errors based on the second syntax element. For example, if the second syntax element has a third value (e.g., a value of zero "0"), the first set of arithmetic-coded prediction errors is decoded without any arithmetic coding operation. That is, there is no start of a new entropy packet before the geometric prediction error sample. In other examples, if the second syntax element has a fourth value (e.g., a value of one "1"), the first set of arithmetic-coded prediction errors is decoded after the arithmetic operation syntax element is decoded. That is, there is a start of a new entropy packet before the geometric prediction error sample.

[0306] In an embodiment, if the syntax element has a second value, the bitstream also includes a second syntax element (e.g., material_attribute_entropy_packet_enable) associated with the second set of arithmetic-coded prediction errors. In such an embodiment, the processor is used to decode the second syntax element and perform arithmetic decoding of the second set of arithmetic-coded prediction errors based on the second syntax element. For example, if the second syntax element has a third value (e.g., a value of zero "0"), the second set of arithmetic-coded prediction errors is decoded without arithmetic operations. That is, there is no start of a new entropy packet before the material property error sample. In other examples, if the second syntax element has a fourth value (e.g., a value of one "1"), the second set of arithmetic-coded prediction errors is decoded after the arithmetic operation syntax element is decoded. That is, there is a start of a new entropy packet before the material property error sample.

[0307] In an embodiment, the bitstream may further include mesh connectivity information and additional basic mesh syntax elements. In one embodiment, the mesh connectivity information includes mesh handle data and CLERS symbols. In an embodiment, the additional basic mesh syntax elements include material property seam information, repeating vertex flag information, mesh property repeating information, etc. In an embodiment, the additional basic mesh syntax elements are all basic mesh syntax elements except for prediction errors or mesh connectivity. In one embodiment, the processor is used to decode the mesh connectivity information and the additional basic mesh syntax elements. In an embodiment, if the syntax element has a first value, the mesh connectivity information, the additional basic mesh syntax elements, the first set of arithmetic-coded prediction errors, and the second set of arithmetic-coded prediction errors are included in a single entropy packet. That is, when the syntax element is set to zero "0", all information related to geometry and material properties can be transmitted in a single entropy packet. In such an example, the single entropy packet includes prediction errors, mesh connectivity information, and additional basic mesh syntax elements. In other embodiments, if the syntax element has a second value, the grid connectivity information is in a third entropy pack among multiple entropy packs, while the additional basic grid syntax element is in a fourth entropy pack among multiple entropy packs. For example, each type of information is transmitted within its own corresponding entropy pack.

[0308] Figure 22 This is a flowchart 2200 illustrating the operation of a basic mesh encoder according to an embodiment. In the embodiment, reference is made to… Figure 22 The described operations can be referenced Figure 4 The basic mesh encoder 440 described is executed.

[0309] In operation 2205, the grid encoder (e.g., the grid encoder's processor) determines a first set of prediction errors and a second set of prediction errors for the grid frame. That is, as referenced... Figure 6 and Figure 7The description describes predicting vertex positions based on neighboring vertices within the same mesh frame. In embodiments, a first set of prediction errors is a first type of prediction error, and a second set of prediction errors is a second type of prediction error. For example, the first type of prediction error may be a geometric or positional prediction error, and the second type of prediction error may be an attribute positional error (e.g., texture coordinate prediction error, normal prediction error, material identification prediction error, etc.). In embodiments, the first set of prediction errors is associated with a "fine" category, and the second set of prediction errors is associated with a "coarse" category. In embodiments, the first set of prediction errors includes at least one of fine geometry prediction error or coarse geometry prediction error. In other embodiments, the first set of prediction errors may include both fine geometry prediction error and coarse geometry prediction error. In embodiments, the second set of prediction errors is associated with attribute prediction errors. In embodiments, the second set of prediction errors includes at least one of fine texture prediction error, coarse texture prediction error, fine material property prediction error, coarse material property prediction error, normal prediction error, or material identification prediction error. In other embodiments, the second set of prediction errors may include at least fine texture coordinate error and coarse texture coordinate error; for example, geometric and texture coordinates may be as described in reference to... Figure 11 and Figure 12 They were intertwined as described.

[0310] In operation 2210, the processor performs arithmetic encoding on the first set of prediction errors and the second set of prediction errors based on the values ​​of syntax elements, wherein the syntax elements indicate whether the prediction errors, grid connectivity information, and additional underlying grid syntax elements are transmitted in a single entropy packet or in multiple entropy packets. In an embodiment, the syntax elements may be as referred to Figures 9 to 20 An example of a described entropy packet enable flag (e.g., entropy_packet_enable_flag). In an embodiment, a syntax element may have a first value or a second value. In an embodiment, the first value is the value zero "0", and the second value is the value one "1".

[0311] In operation 2215, the processor transmits a bitstream comprising the first set of arithmetic code prediction errors, the second set of arithmetic code prediction errors, and syntax elements. That is, as referenced... Figure 9 As described, the syntax elements enable prediction errors, grid connectivity information, and additional underlying grid syntax elements to be transmitted in a single entropy packet or in multiple entropy packets. Therefore, the encoder can encode the transmitted bitstream based on the values ​​of the syntax elements, for example, based on whether the first set of arithmetic-coded prediction errors and the second set of arithmetic-coded prediction errors are transmitted in a single packet or in multiple packets.

[0312] For example, in operation 2220, if a syntax element has a first value (e.g., the value zero "0"), a first set of arithmetic-coded prediction errors and a second set of arithmetic-coded prediction errors are transmitted in a single entropy packet. That is, the first value may indicate a disabled entropy packet enable flag. In such an embodiment, prediction error information is packaged into a single entropy packet. Therefore, when the processor encodes a syntax element to have a first value, the processor can package the first set of arithmetic-coded prediction errors and the second set of arithmetic-coded prediction errors into the same entropy packet. In an embodiment, the processor may package additional prediction errors (e.g., normal prediction errors or material property prediction errors) into a single entropy packet. In an embodiment, when a syntax element has a first value, the processor does not package an entropy header or arithmetic operations (e.g., references). Figures 8 to 13 The description refers to the start of arithmetic (ACS) or the end of arithmetic (ACE).

[0313] In other examples, in operation 2225, if a syntax element has a second value (e.g., the value "1"), a first set of arithmetic code prediction errors is transmitted in a first entropy packet among multiple entropy packets, and a second set of arithmetic code prediction errors is transmitted in a second entropy packet among multiple entropy packets. In an embodiment, all attributes, elements, and syntax associated with the first set of arithmetic code prediction errors are in the same first entropy packet. In an embodiment, all attributes, elements, and syntax associated with the second set of arithmetic code prediction errors are in the same second entropy packet.

[0314] In an embodiment, if the syntax element has a second value, the processor will also encode a variable pointing to the current position in the first entropy packet (e.g., a buffer pointer (EntropyPacketPtr)). In an embodiment, the processor transmits this variable in a second syntax element indicating the size of the first entropy packet, where the first set of prediction errors is encoded based on this variable; for example, the bitstream may include the mesh_position_packet_size syntax element.

[0315] In an embodiment, if the syntax element has a first value, the processor will also encode a variable pointing to the current position in a single entropy packet (e.g., a buffer pointer (EntropyPacketPtr)). In an embodiment, the processor transmits this variable in a second syntax element indicating the size of a single entropy packet, where the first set of prediction errors and the second set of prediction errors are encoded based on this variable; for example, the bitstream may include the mesh_all_packet_size syntax element.

[0316] In one embodiment, the processor may also encode a second syntax element (e.g., geometry_entropy_packet_enable) associated with the first set of prediction errors, wherein the processor performs arithmetic encoding on the first set of prediction errors based on encoding the second syntax value. In another embodiment, the processor may transmit a bitstream including the second syntax element. In yet another embodiment, if the second syntax element has a third value, the first set of arithmetic-coded prediction errors is encoded without the arithmetic operation syntax element. That is, there is no start of a new entropy packet before the geometric prediction error sample. In another embodiment, if the second syntax element has a fourth value, the first set of arithmetic-coded prediction errors is encoded using the arithmetic operation syntax element. That is, there is a start of a new entropy packet before the geometric prediction error sample.

[0317] In an embodiment, the processor may also encode a second syntax element (e.g., `mesh_attribute_entropy_packet_enable`) associated with the second set of prediction errors, wherein the processor performs arithmetic encoding on the second set of prediction errors based on encoding the second syntax value. In an embodiment, the processor may transmit a bitstream including the second syntax element. In an embodiment, if the second syntax element has a third value, the second set of arithmetic-coded prediction errors is encoded without an arithmetic operation syntax element. That is, there is no start of a new entropy packet before the mesh attribute prediction error sample. In other embodiments, if the second syntax element has a fourth value, the second set of arithmetic-coded prediction errors is encoded using an arithmetic operation syntax element. That is, there is a start of a new entropy packet before the mesh attribute prediction error sample.

[0318] In an embodiment, the processor determines mesh connectivity information and additional basic mesh syntax elements. For example, the processor may determine mesh connectivity information (such as mesh handle data and CLERS symbols) and additional basic mesh syntax elements (such as material property seam data, repeating vertex flags, mesh property repeating information, etc.). In an embodiment, the additional basic mesh syntax elements may be all basic mesh syntax elements except for prediction errors and mesh connectivity information. In an embodiment, the processor may transmit a bitstream including mesh connectivity information and additional basic mesh syntax elements. In one embodiment, if a syntax element has a first value, mesh connectivity information, additional basic mesh syntax elements, a first set of arithmetic-coded prediction errors, and a second set of arithmetic-coded prediction errors are transmitted in a single entropy packet. That is, when a syntax element is set to zero "0", all information related to geometry and material properties can be transmitted in a single entropy packet. In such an example, a single entropy packet includes prediction errors, mesh connectivity information, and additional basic mesh syntax elements. In other embodiments, mesh connectivity information is transmitted in a third entropy packet among multiple entropy packets, and additional basic mesh syntax elements are transmitted in a fourth entropy packet among multiple entropy packets.

[0319] In embodiments, using flags to transmit prediction errors in single or multiple packets can improve the overall compression efficiency of the system and save bits. In embodiments, the second syntax element (e.g., geometry_entropy_packet_enable or mesh_attribute_packet_enable) may not be explicitly transmitted. In such embodiments, the second syntax element is implicitly set based on a mesh entropy enable flag (e.g., based on the value of mesh_entropy_packet_enable_flag).

[0320] Various descriptive blocks, units, modules, components, methods, operations, instructions, items, and algorithms can be implemented or executed using processing circuitry.

[0321] Unless otherwise specified, references to elements in the singular form are not intended to indicate one and only one, but rather one or more. For example, a “one” module may refer to one or more modules. Without further constraints, elements beginning with “a,” “an,” “the,” or “the” do not exclude the existence of other identical elements.

[0322] Titles and subtitles (if any) are used for convenience only and do not limit the technical scope of the subject matter. The term "exemplary" is used to indicate that it is used as an example or illustration. With regard to the use of the terms "comprising," "having," "carrying," "including," etc., such terms are interpreted in a similar manner to the term "comprising" when used as a transition word in the claims, and are intended to be inclusive. Relational terms such as "first" and "second" can be used to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between these entities or actions.

[0323] Phrases such as aspect, that aspect, on the other hand, some aspects, one or more aspects, implementation, that implementation, another implementation, some implementations, one or more implementations, embodiment, that embodiment, another embodiment, some embodiments, one or more embodiments, configuration, that configuration, another configuration, some configurations, one or more configurations, subject matter, disclosure, this disclosure, other variations thereof, etc., are for convenience and do not imply that disclosures associated with such phrases are essential to the subject matter, or that such disclosures apply to all configurations of the subject matter. Disclosures associated with one or more such phrases may apply to all configurations or one or more configurations. Disclosures associated with one or more such phrases may provide one or more examples. Phrases such as aspect or some aspects may refer to one or more aspects, and vice versa, and this similarly applies to other foregoing phrases.

[0324] The phrase "at least one" following a list of items modifies the entire list, not each member of the list, when separated by the terms "and" or "or". The phrase "at least one of..." does not require selection of at least one item; rather, it allows for the inclusion of at least one of any one item, and / or at least one of any combination of items, and / or at least one of each item. For example, each of the phrases "at least one of A, B, and C" or "at least one of A, B, or C" refers to only A, only B, or only C; any combination of A, B, and C; and / or at least one of each of A, B, and C.

[0325] It should be understood that the specific order or hierarchy of the disclosed steps, operations, or processes is an illustrative example. Unless otherwise expressly stated, it should be understood that the specific order or hierarchy of steps, operations, or processes may be performed in a different order. Some steps, operations, or processes may be performed simultaneously, or may be performed as part of one or more other steps, operations, or processes. The appended method claims (if any) present elements of various steps, operations, or processes in an exemplary order, but this does not imply limitation to the specific order or hierarchy presented. These may be performed serially, linearly, in parallel, or in a different order. It should be understood that the described instructions, operations, and systems may generally be integrated together in a single software / hardware product or packaged into multiple software / hardware products.

[0326] This disclosure is provided to enable any person skilled in the art to practice the various aspects described herein. In some cases, well-known structures and components are shown in block diagram form to avoid obscuring the concept of the subject matter. This disclosure provides various examples of the subject matter, and the subject matter is not limited to these examples. Various modifications to these aspects will be apparent to those skilled in the art, and the principles described herein can be applied to other aspects.

[0327] All structural and functional equivalents of elements throughout the various aspects described in this disclosure are expressly incorporated herein by reference and are intended to be covered by the claims, and are known or would be known to one of ordinary skill in the art. Furthermore, nothing disclosed herein is intended to be made public, whether or not such disclosure is explicitly stated in the claims.

[0328] The title, background information, description of the drawings, abstract, and figures are incorporated herein by reference and are provided as illustrative examples rather than as limiting descriptions. It should be understood that, at the time of filing, they are not intended to limit the scope or meaning of the claims. Furthermore, in the detailed description, illustrative examples may be provided, and various features may be combined in various embodiments for the purpose of simplifying this disclosure. This approach to disclosure should not be construed as reflecting an intention to require more features than expressly recited in each claim. Rather, as reflected in the appended claims, the inventive subject matter lies in all features of fewer than those in a single disclosed configuration or operation. The appended claims are incorporated herein by reference, wherein each claim is independently claimed as a separate subject matter.

[0329] The embodiments are provided merely as examples for understanding the disclosed techniques. They are not intended and should not be construed as limiting the scope of the disclosed techniques in any way. Although certain embodiments and examples have been provided, those skilled in the art will understand based on the disclosure herein that changes can be made to the illustrated embodiments and examples without departing from the scope of the disclosed techniques.

[0330] The claims are not intended to be limited to the aspects described herein, but rather to conform to the full scope consistent with the language claims and to include all legal equivalents. Nevertheless, no claim is intended to include subject matter that does not meet the requirements of applicable patent law, nor should they be interpreted in this manner.

Claims

1. A device (525) for decoding grid frames, comprising a processor, wherein, The processor is configured to cause the following operations to be performed: Receive (2105) bit stream, wherein the bit stream includes syntax elements for the grid frame, a first set of arithmetic coding prediction errors and a second set of arithmetic coding prediction errors, wherein the syntax elements indicate whether the prediction errors, grid connectivity information and additional basic grid syntax elements are transmitted in a single entropy packet or in multiple entropy packets; Decode the syntax element (2110); and Arithmetic decoding (2115) is performed on the first group of arithmetic code prediction errors and the second group of arithmetic code prediction errors based on the aforementioned syntax elements. Wherein, if the syntax element has a first value, the first set of arithmetic code prediction errors and the second set of arithmetic code prediction errors are included in the single entropy packet (2120), and If the syntax element has a second value, the first set of arithmetic code prediction errors is in the first entropy packet of the plurality of entropy packets, and the second set of arithmetic code prediction errors is in the second entropy packet of the plurality of entropy packets (2125).

2. The device (525) according to claim 1, wherein, If the syntax element has a second value, the bitstream further includes a second syntax element indicating the size of the first entropy packet. The processor is also configured to cause the following operations to be performed: The variable pointing to the current position in the first entropy packet is determined based on the second syntax element, wherein the first set of arithmetic code prediction errors is decoded based on the variable.

3. The device (525) according to any one of claims 1 to 2, wherein, If the syntax element has a first value, the bitstream also includes a second syntax element indicating the size of the single entropy packet. The processor is also configured to cause the following operations to be performed: The variable pointing to the current position in the single entropy packet is determined based on the second syntax element, wherein the first set of arithmetic code prediction errors and the second set of arithmetic code prediction errors are decoded based on the variable.

4. The device (525) according to any one of claims 1 to 3, wherein, The prediction error for the current vertex is determined by arithmetic decoding of one of the arithmetic-coded prediction errors in the first set of arithmetic-coded prediction errors. The processor is also configured to cause the following operations to be performed: Determine the predicted value for the current vertex; and The coordinates of the current vertex are determined based on the prediction error for the current vertex and the prediction value for the current vertex.

5. The device (525) according to any one of claims 1 to 4, wherein, If the syntax element has a second value, the bitstream also includes a second syntax element associated with the first set of arithmetic coding prediction errors. The processor is also configured to cause the following operations to be performed: Decode the second syntax element; and Arithmetic decoding is performed on the prediction error of the first set of arithmetic codes based on the second syntax element. Wherein, if the second syntax element has a third value, the prediction error of the first set of arithmetic codes is decoded without arithmetic operations on the syntax elements; and If the second syntax element has a fourth value, then the first set of arithmetic code prediction errors is decoded after the arithmetic operation syntax element is decoded.

6. The device (525) according to any one of claims 1 to 5, wherein, If the syntax element has a second value, then the bitstream also includes a second syntax element associated with the second set of arithmetic coding prediction errors. The processor is also configured to cause the following operations to be performed: Decode the second syntax element; and Arithmetic decoding is performed on the prediction error of the second set of arithmetic codes based on the second syntax element. Wherein, if the second syntax element has a third value, the second set of arithmetic code prediction errors is decoded without arithmetic operations on the syntax elements; and If the second syntax element has a fourth value, then the second set of arithmetic code prediction errors is decoded after the arithmetic operation syntax element is decoded.

7. The device (525) according to any one of claims 1 to 6, wherein, The first set of arithmetic coding prediction errors is at least one of fine geometric prediction error or coarse geometric prediction error.

8. The device (525) according to any one of claims 1 to 7, wherein, The second group of arithmetic coding prediction errors is at least one of the following: fine texture prediction error, coarse texture prediction error, fine material property prediction error, coarse material property prediction error, normal prediction error, or material identification prediction error.

9. The device (525) according to any one of claims 1 to 8, wherein, The first set of prediction errors includes at least fine geometry prediction error and coarse geometry prediction error, and the second set of prediction errors includes at least fine texture coordinate error and coarse texture coordinate error.

10. The device (525) according to any one of claims 1 to 9, wherein, The bitstream also includes the grid connectivity information and the additional basic grid syntax elements. The processor is also configured to cause the following operations to be performed: Decode the grid connectivity information and the additional basic grid syntax elements. Wherein, if the syntax element has a first value, the grid connectivity information, the additional basic grid syntax element, the first set of arithmetic code prediction errors, and the second set of arithmetic code prediction errors are included in the single entropy packet, and If the syntax element has a second value, the grid connectivity information is in the third entropy pack among the plurality of entropy packs, and the additional basic grid syntax element is in the fourth entropy pack among the plurality of entropy packs.

11. An apparatus (440) for encoding grid frames, comprising a processor configured to cause the following operations: Determine (2205) the first set of prediction errors and the second set of prediction errors for the grid frame; Arithmetic encoding (2210) is performed on the first and second sets of prediction errors based on the values ​​of the syntax elements, where, The syntax element indicates whether the prediction error, grid connectivity information, and additional basic grid syntax elements are transmitted in a single entropy packet or in multiple entropy packets; and The transmission (2215) includes a first set of arithmetic code prediction errors, a second set of arithmetic code prediction errors, and a bitstream of the syntax elements. Wherein, if the syntax element has a first value, the first set of arithmetic coding prediction errors and the second set of arithmetic coding prediction errors are transmitted in the single entropy packet (2220); as well as A first set of arithmetic coding prediction errors is transmitted in a first entropy packet among the plurality of entropy packets, and a second set of arithmetic coding prediction errors (2225) is transmitted in a second entropy packet among the plurality of entropy packets.

12. The device (440) according to claim 11, wherein, The processor is also configured to cause the following operations to be performed: If the syntax element has a second value, then the variable pointing to the current position in the first entropy pack is encoded; and The variables are transmitted in a second syntax element that indicates the size of the first entropy packet, wherein the first set of prediction errors is encoded based on the variables.

13. The device (440) according to any one of claims 11 to 12, wherein, The processor is also configured to cause the following operations to be performed: Encoding a second syntax element associated with the first set of prediction errors, wherein the processor is configured to perform arithmetic encoding of the first set of prediction errors based on the encoding of the second syntax element; and The transmission includes the bit stream comprising the second syntax element. Wherein, if the second syntax element has a third value, the prediction error of the first set of arithmetic codes is encoded without the need for arithmetic operation syntax elements; and If the second syntax element has a fourth value, then the arithmetic operation syntax element is used to encode the prediction error of the first set of arithmetic codes.

14. The device (440) according to any one of claims 11 to 13, wherein, The processor is also configured to cause the following operations to be performed: Determine the mesh connectivity information and the additional basic mesh syntax elements; and The transmission includes the bitstream comprising the grid connectivity information and the additional basic grid syntax elements. Wherein, if the syntax element has a first value, the grid connectivity information, the additional basic grid syntax element, the first set of arithmetic coding prediction errors, and the second set of arithmetic coding prediction errors are transmitted in the single entropy packet; as well as The grid connectivity information is transmitted in the third entropy packet among the multiple entropy packets, and the additional basic grid syntax elements are transmitted in the fourth entropy packet among the multiple entropy packets.

15. A method (2100) for decoding a grid frame, comprising: A bit stream (2105) is received at a processor for decoding a grid frame, wherein the bit stream includes syntax elements for the grid frame, a first set of arithmetic coding prediction errors and a second set of arithmetic coding prediction errors, wherein the syntax elements indicate whether the prediction errors, grid connectivity information and additional basic grid syntax elements are transmitted in a single entropy packet or in multiple entropy packets. Decode the syntax element (2110); and Arithmetic decoding (2115) is performed on the first group of arithmetic code prediction errors and the second group of arithmetic code prediction errors based on the aforementioned syntax elements. Wherein, if the syntax element has a first value, the first set of arithmetic code prediction errors and the second set of arithmetic code prediction errors are included in the single entropy packet (2120); and If the syntax element has a second value, the first set of arithmetic coding prediction errors are in the first entropy packet of the plurality of entropy packets, and the second set of arithmetic coding prediction errors are in the second entropy packet of the plurality of entropy packets (2125).