Mesh decoding device, mesh decoding method, and program
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- KDDI CORP
- Filing Date
- 2023-07-03
- Publication Date
- 2026-08-06
Smart Images

Figure 0007901562000001 
Figure 0007901562000002 
Figure 0007901562000003
Abstract
Description
Technical Field
[0001] The present invention relates to a mesh decoding device, a mesh decoding method, and a program.
Background Art
[0002] Non-Patent Document 1 discloses a technique for decoding a mesh by dividing it into a rough basic mesh and a detailed displacement amount, converting the displacement amount into a two-dimensional video, and then decoding it by a video codec.
Prior Art Documents
Non-Patent Documents
[0003]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, the technique disclosed in Non-Patent Document 1 has a problem that the generated two-dimensional video is not suitable for encoding by a video codec, resulting in a decrease in encoding efficiency. Therefore, the present invention has been made in view of the above problems, and an object thereof is to provide a mesh decoding device, a mesh decoding method, and a program capable of improving encoding efficiency. [[ID=********]] [[ID=********]] [[ID=********]]
[0005] [[ID=********]] The first feature of the present invention is a mesh decoding device comprising a displacement decoding unit configured to decode a displacement bitstream to generate and output a displacement amount, wherein the displacement decoding unit comprises an arithmetic decoding unit configured to generate coefficient level values by performing arithmetic decoding on the displacement bitstream, a context value update unit configured to update a context value using the coefficient level values, a context value buffer configured to acquire and store the context value, an arithmetic decoding initialization unit configured to initialize the context value for each frame, an inverse quantization unit configured to generate conversion coefficients by performing inverse quantization on the coefficient level values, and an inverse transformation unit configured to generate a decoded displacement amount by performing an inverse transformation on the conversion coefficients.
[0006] A second feature of the present invention is a mesh decoding method comprising the steps of decoding a displacement bitstream to generate and output a displacement amount, wherein the steps include: step A to generate coefficient level values by performing arithmetic decoding on the displacement bitstream; step B to update a context value using the coefficient level values; step C to acquire and store the context value; step D to initialize the context value for each frame; step E to generate conversion coefficients by performing inverse quantization on the coefficient level values; and step F to generate a decoded displacement amount by performing an inverse transformation on the conversion coefficients.
[0007] A third feature of the present invention is a program that causes a computer to function as a mesh decoding device, wherein the mesh decoding device comprises a displacement decoding unit configured to decode a displacement bitstream to generate and output a displacement amount, and the displacement decoding unit comprises an arithmetic decoding unit configured to generate coefficient level values by performing arithmetic decoding on the displacement bitstream, a context value update unit configured to update a context value using the coefficient level values, a context value buffer configured to acquire and store the context value, an arithmetic decoding initialization unit configured to initialize the context value for each frame, an inverse quantization unit configured to generate conversion coefficients by performing inverse quantization on the coefficient level values, and an inverse transformation unit configured to generate a decoded displacement amount by performing an inverse transformation on the conversion coefficients. [Effects of the Invention]
[0008] According to the present invention, it is possible to provide a mesh decoding device, a mesh decoding method, and a program that can improve coding efficiency. [Brief explanation of the drawing]
[0009] [Figure 1] Figure 1 shows an example of the configuration of a mesh processing system 1 according to one embodiment. [Figure 2] Figure 2 shows an example of a functional block of a mesh decoding device 200 according to one embodiment. [Figure 3] Figure 3 shows an example of the functional block of the displacement decoding unit 205 of a mesh decoding device 200 according to one embodiment. [Figure 4] Figure 4 shows an example of the configuration of a displacement bitstream. [Figure 5] Figure 5 is a flowchart showing an example of the operation of the displacement decoding unit 205 of the mesh decoding device 200 according to one embodiment. [Modes for carrying out the invention]
[0010] Embodiments of the present invention will be described below with reference to the drawings. Note that the components in the following embodiments can be replaced with existing components as appropriate, and various variations are possible, including combinations with other existing components. Therefore, the description of the following embodiments does not limit the content of the invention as described in the claims.
[0011] <First Embodiment> The mesh processing system according to this embodiment will be described below with reference to Figures 1 to 5.
[0012] Figure 1 shows an example of the configuration of the mesh processing system 1 according to this embodiment. As shown in Figure 1, the mesh processing system 1 includes a mesh encoding device 100 and a mesh decoding device 200.
[0013] Figure 2 shows an example of the functional block of the mesh decoding device 200 according to this embodiment.
[0014] As shown in Figure 2, the mesh decoding device 200 includes a multiplexing unit 201, a basic mesh decoding unit 202, a subdivision unit 203, a mesh decoding unit 204, a displacement decoding unit 205, and an image decoding unit 206.
[0015] The multiplexing unit 201 is configured to separate the multiplexed bitstream into a basic mesh bitstream, a displacement bitstream, and a texture bitstream.
[0016] The basic mesh decoding unit 202 is configured to decode the basic mesh bitstream, generate a basic mesh, and output it.
[0017] The sub - division unit 203 is configured to generate and output additional sub - division vertices and their connection information from the basic mesh decoded by the basic mesh decoding unit 202 according to the sub - division method indicated by the control information.
[0018] Here, the basic mesh, the additional sub - division vertices, and their connection information are collectively referred to as the "sub - division mesh".
[0019] The mesh decoding unit 204 is configured to generate and output a decoded mesh using the sub - division mesh generated by the sub - division unit 203 and the displacement amount decoded by the displacement amount decoding unit 205.
[0020] The displacement amount decoding unit 205 is configured to decode the displacement amount bit - stream to generate and output a displacement amount.
[0021] The video decoding unit 206 is configured to decode and output a texture by video encoding. For example, the video decoding unit 206 may use HEVC of Non - Patent Document 1.
[0022] (Displacement amount decoding unit 205) FIG. 3 is a functional block diagram showing an example of the configuration of the displacement amount decoding unit 205. As shown in FIG. 3, the displacement amount decoding unit 205 includes an arithmetic decoding unit 205A, a context value update unit 205B, a context value buffer 205C, an arithmetic decoding initialization unit 205D, an inverse quantization unit 205E, and an inverse transform unit 205F.
[0023] The arithmetic decoding unit 205A is configured to perform arithmetic decoding on the received displacement amount bit - stream to generate and output a coefficient level value.
[0024] The coefficient level value generated by the arithmetic decoding unit 205A is represented by a 3×N - sized matrix in each frame. Here, 3 indicates the number of dimensions, and N indicates the total number of sub - division vertices. A sub - division level is defined for each sub - division vertex.
[0025] The arithmetic decoding unit 205A may directly generate coefficient level values. Alternatively, the arithmetic decoding unit 205A may efficiently generate coefficient level values using multiple syntax elements, such as a flag (sig_coeff_flag) indicating whether the coefficient level values described later are significant.
[0026] The arithmetic decoding unit 205A decodes the original value based on which interval on the number line the input binary decimal number falls into.
[0027] The arithmetic decoding unit 205A defines a number line from 0 to 1 and divides the interval into binary probabilities (hereinafter referred to as context values) for use.
[0028] The arithmetic decoding unit 205A may arithmetically decode the coefficient level values using multiple types of context values. For example, the arithmetic decoding unit 205A may define the context values by dividing them according to subdivision level, by dividing them according to dimension, or by dividing them according to syntax.
[0029] Alternatively, the arithmetic decoding unit 205A may define context values by dividing the coefficient level values into submeshes, which are units that can be processed in parallel.
[0030] Alternatively, the arithmetic decoding unit 205A may bypass updating the context value by always fixing the context value to 0.5.
[0031] The arithmetic decoding unit 205A may configure on a syntax-by-syntax basis whether to bypass the updating of the context value. Furthermore, as described above, the arithmetic decoding unit 205A may generate coefficient level values based on binary arithmetic decoding, or it may generate coefficient level values based on multi-level arithmetic decoding such as RangeCoder.
[0032] The context value update unit 205B is configured to update the context value using a coefficient level value.
[0033] The context value update unit 205B updates the context value each time it decodes a coefficient level value. The context value update unit may use an update table that updates the context value slightly when a symbol with a high probability of occurrence (0 or 1) occurs, and significantly when a symbol with a low probability of occurrence occurs.
[0034] The context value buffer 205C is configured to retrieve and store context values.
[0035] The arithmetic decoding initialization unit 205D is configured to initialize a context value for each frame. With this configuration, by initializing the context value for each frame, arithmetic decoding can be performed without using information from other frames, and random access can be achieved. Here, the initial context value may be, for example, 0.5.
[0036] Alternatively, the arithmetic decoding initialization unit 205D may initialize the context values by dividing the coefficient level values into submeshes, which are units that can be processed in parallel.
[0037] Furthermore, the arithmetic decoding initialization unit 205D may omit the initialization of context values for syntax that bypasses the updating of context values.
[0038] The inverse quantization unit 205E is configured to generate and output conversion coefficients by performing inverse quantization on the received coefficient level values.
[0039] The inverse transform unit 205F is configured to generate and output a decoded displacement amount by performing an inverse transform on the received transformation coefficients. For the inverse transform, the inverse transform unit 205F may use, for example, an inverse DCT or an inverse wavelet transform.
[0040] (Configuration of the displacement bitstream) The following describes an example of the configuration of a displacement bitstream, referring to Figure 4. Figure 4 is a diagram showing an example of the configuration of a displacement bitstream.
[0041] As shown in Figure 4, firstly, the displacement bitstream may include a Displacement Parameter Set (DPS), which is a set of control information related to the decoding of the displacement.
[0042] Secondly, the displacement bitstream may include a DFH (Displacement Frame Header), which is a set of control information corresponding to the frame.
[0043] Thirdly, the displacement bitstream may include, after the DFH, a DDU (Displacement Data Unit), which is an encoded displacement corresponding to the frame.
[0044] The DDU may include a flag indicating whether the coefficient level value is significant (sig_coeff_flag), a flag indicating whether the absolute value of the coefficient level value is 2 or greater (coeff_abs_level_greater1_flag), a flag indicating the sign of the coefficient level value (coeff_sign_flag), and the absolute value of the coefficient level value (coeff_abs_level_remaining). (Operation of the displacement decoding unit 205) The operation of the displacement decoding unit 205 will be described below with reference to Figure 5. Figure 5 is a flowchart showing an example of the operation of the displacement decoding unit 205.
[0045] In this case, if the arithmetic decoding unit 205A divides the coefficient level values into submeshes, which are units that can be processed in parallel, and defines context values, the operation shown in Figure 5 will be performed in parallel for each submesh.
[0046] In step S101, the arithmetic decoding initialization unit 205D initializes the arithmetic decoding unit 205A.
[0047] In step S102, the arithmetic decoding initialization unit 205D initializes the context value for each frame.
[0048] In step S103, the arithmetic decoding unit 205A generates coefficient level values by performing arithmetic decoding.
[0049] In step S104, the context value update unit 205B updates the context value.
[0050] In step S105, the arithmetic decoding unit 205A determines whether the coefficient level value currently being processed is the final one. If yes, the operation proceeds to step S106; otherwise, the operation proceeds to step S107.
[0051] In step S106, the arithmetic decoding unit 205A proceeds to processing the next coefficient level value.
[0052] In step S107, the inverse quantization unit 205E generates conversion coefficients by performing inverse quantization.
[0053] In step S108, the inverse transformation unit 205F generates the decoded displacement amount by performing an inverse transformation.
[0054] In step S109, the arithmetic decoding unit 205A determines whether the frame currently being processed is the final frame. If yes, this operation ends; if no, this operation proceeds to step S110.
[0055] In step S110, the arithmetic decoding unit 205A proceeds to processing the next frame.
[0056] According to this embodiment, by initializing the context value for each frame, arithmetic decoding can be performed without using information from other frames, thereby enabling random access.
[0057] The mesh coding device 100 and mesh decoding device 200 described above may be implemented as programs that cause a computer to execute each function (each process). [Industrial applicability]
[0058] Furthermore, according to this embodiment, for example, it is possible to achieve an overall improvement in service quality in video communication, thereby contributing to Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), "Build resilient infrastructure, promote sustainable industrialization and foster innovation." [Explanation of Symbols]
[0059] 1…Mesh processing system 100... Mesh coding device 200... Mesh decoding section 201…Demultiplexer 202...Basic Mesh Decoding Unit 203…Subdivision part 204...Mesh decoding section 205...Displacement Decoding Unit 205A... Arithmetic Decoding Unit 205B...Context value update section 205C...Context value buffer 205D... Arithmetic Decoding Initialization Unit 205E...Inverse quantization section 205F...Inverse conversion section 206...Video Decoding Unit
Claims
1. A mesh decoding device, The system includes a displacement decoding unit configured to decode a displacement bitstream, generate a displacement amount, and output it. The displacement amount decoding unit is, The arithmetic decoding unit is configured to generate coefficient level values by performing arithmetic decoding on the displacement bitstream, A context value update unit configured to update the context value using the coefficient level value, A context value buffer configured to acquire and store the aforementioned context value, An arithmetic decoding initialization unit configured to initialize the context value for each frame, An inverse quantization unit is configured to generate a transformation coefficient by performing inverse quantization on the coefficient level value, A mesh decoding device comprising an inverse transformation unit configured to generate the displacement amount by performing an inverse transformation on the transformation coefficient.
2. The mesh decoding device according to claim 1, characterized in that the arithmetic decoding unit is configured to divide the coefficient level value into submeshes, which are units capable of parallel processing, and define the context value.
3. The mesh decoding device according to claim 2, characterized in that the arithmetic decoding initialization unit is configured to initialize the context value by dividing the coefficient level value for each submesh.
4. The mesh decoding device according to claim 3, characterized in that the arithmetic decoding initialization unit is configured to omit the initialization of the context value for syntax that bypasses the updating of the context value.
5. A mesh decoding method, The process involves decoding a displacement bitstream to generate and output the displacement amount. The above process is, Step A involves generating coefficient level values by performing arithmetic decoding on the displacement bitstream, Step B involves updating the context value using the coefficient level value, Step C involves obtaining and storing the aforementioned context value, Step D, which initializes the context value for each frame, Step E of generating a transformation coefficient by performing inverse quantization on the coefficient level value, A mesh decoding method characterized by comprising a step F of generating the displacement amount by performing an inverse transformation on the transformation coefficient.
6. A program that makes a computer function as a mesh decoding device, The mesh decoding device includes a displacement decoding unit configured to decode a displacement bitstream, generate a displacement amount, and output it. The displacement amount decoding unit is, The arithmetic decoding unit is configured to generate coefficient level values by performing arithmetic decoding on the displacement bitstream, A context value update unit configured to update the context value using the coefficient level value, A context value buffer configured to acquire and store the aforementioned context value, An arithmetic decoding initialization unit configured to initialize the context value for each frame, An inverse quantization unit is configured to generate a transformation coefficient by performing inverse quantization on the coefficient level value, A program characterized by comprising an inverse conversion unit configured to generate the displacement amount by performing an inverse conversion on the conversion coefficient.
Citation Information
Patent Citations
Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20220337872A1
Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2021187565A1