Mesh decoding device, mesh decoding method and program
The mesh decoding device enhances encoding efficiency by employing a displacement decoding section with context value updates and inverse transformations to address the unsuitability of two-dimensional videos for video codecs, improving encoding efficiency.
Patent Information
- Application Number
- JP2023109440
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-07-03
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2043-07-03
AI Technical Summary
The generated two-dimensional video from existing mesh decoding techniques is not suitable for encoding by a video codec, leading to decreased encoding efficiency.
A mesh decoding device and method that includes a displacement decoding section with an arithmetic decoder, context value updater, context value buffer, arithmetic decoding initializer, inverse quantization unit, and inverse transform unit to enhance encoding efficiency by decoding displacement bitstreams.
Improves encoding efficiency by generating and outputting displacement amounts effectively, utilizing context value updates and inverse transformations.
Smart Images

Figure 2025007805000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a mesh decoding device, a mesh decoding method, and a program. [Background technology]
[0002] Non-Patent Document 1 discloses a technique in which a mesh is divided into a rough basic mesh and a detailed displacement amount, and the mesh is decoded, and the displacement amount is converted into a two-dimensional image and then decoded by a video codec. [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] Khaled Mammou, Jungsun Kim, Alexis Tourapis, Dimitri Podborski, Krasimir Kolarov, “[V-CG] Apple's Dynamic Mesh Coding CfP Response,” ISO / IEC JTC 1 / SC 29 / WG 7 m5928, April 2022. Summary of the Invention [Problem to be solved by the invention]
[0004] However, the technology disclosed in Non-Patent Document 1 has a problem that the generated 2D video is not suitable for encoding by a video codec, and the encoding efficiency is reduced. Therefore, the present invention has been made in consideration of the above-mentioned problems, and aims to provide a mesh decoding device, a mesh decoding method, and a program that can improve the encoding efficiency. [Means for solving the problem]
[0005] A first feature of the present invention is summarized as a mesh decoding device comprising a displacement amount decoding unit configured to decode a displacement amount bit stream to generate and output a displacement amount, the displacement amount decoding unit comprising an arithmetic decoding unit configured to generate a coefficient level value by performing arithmetic decoding on the displacement amount bit stream, a context value updating unit configured to update a context value using the coefficient level value, a context value buffer configured to acquire and accumulate the context value, an arithmetic decoding initialization unit configured to initialize the context value for each frame, an inverse quantization unit configured to generate a transform coefficient by performing inverse quantization on the coefficient level value, and an inverse transform unit configured to generate a decoded displacement amount by performing inverse transform on the transform coefficient.
[0006] A second feature of the present invention is summarized as a mesh decoding method including a step of decoding a displacement amount bit stream to generate and output displacement amounts, the step including a step A of generating coefficient level values by performing arithmetic decoding on the displacement amount bit stream, a step B of updating context values by using the coefficient level values, a step C of acquiring and accumulating the context values, a step D of initializing the context values for each frame, a step E of generating transform coefficients by performing inverse quantization on the coefficient level values, and a step F of generating decoded displacement amounts by performing inverse transform on the transform coefficients.
[0007] A third feature of the present invention is summarized as a program for causing a computer to function as a mesh decoding device, the mesh decoding device comprising: a displacement amount decoding unit configured to decode a displacement amount bit stream to generate and output a displacement amount, the displacement amount decoding unit comprising: an arithmetic decoding unit configured to generate a coefficient level value by performing arithmetic decoding on the displacement amount bit stream; a context value updating unit configured to update a context value using the coefficient level value; a context value buffer configured to acquire and accumulate the context value; an arithmetic decoding initialization unit configured to initialize the context value for each frame; an inverse quantization unit configured to generate a transform coefficient by performing inverse quantization on the coefficient level value; and an inverse transform unit configured to generate a decoded displacement amount by performing inverse transform on the transform coefficient. Effect 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 capable of improving the encoding efficiency. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a diagram showing an example of the configuration of a mesh processing system 1 according to an embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of functional blocks of a mesh decoding device 200 according to an embodiment. [Diagram 3] FIG. 3 is a diagram showing an example of functional blocks of the displacement amount decoding unit 205 of the mesh decoding device 200 according to an embodiment. [Figure 4] FIG. 4 is a diagram showing an example of the configuration of a displacement amount bit stream. [Diagram 5] FIG. 5 is a flowchart showing an example of the operation of the displacement amount decoding unit 205 of the mesh decoding device 200 according to an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Hereinafter, the embodiments of the present invention will be described with reference to the drawings. Note that the components in the following embodiments can be appropriately replaced with existing components, and various variations including combinations with other existing components are possible. Therefore, the description of the following embodiments does not limit the content of the invention described in the claims.
[0011] First Embodiment The mesh processing system according to this embodiment will be described below with reference to FIGS.
[0012] 1 is a diagram showing an example of the configuration of a mesh processing system 1 according to this embodiment. As shown in FIG.
[0013] FIG. 2 is a diagram showing an example of functional blocks of the mesh decoding device 200 according to this embodiment.
[0014] As shown in FIG. 2, the mesh decoding device 200 includes a demultiplexing unit 201 , a basic mesh decoding unit 202 , a subdivision unit 203 , a mesh decoding unit 204 , a displacement amount decoding unit 205 , and a video decoding unit 206 .
[0015] The demultiplexing unit 201 is configured to separate the multiplexed bit stream into a base mesh bit stream, a displacement amount bit stream, and a texture bit stream.
[0016] The base mesh decoding unit 202 is configured to decode the base mesh bitstream and generate and output a base mesh.
[0017] The subdivision unit 203 is configured to generate and output added subdivision vertices and their connection information from the basic mesh decoded by the basic mesh decoding unit 202 using a subdivision method indicated by the control information.
[0018] Here, the basic mesh, the added subdivision vertices, and their connection information are collectively referred to as a "subdivision mesh."
[0019] The mesh decoding unit 204 is configured to generate and output a decoded mesh using the subdivision mesh generated by the subdivision unit 203 and the amount of displacement decoded by the displacement amount decoding unit 205 .
[0020] The displacement amount decoding unit 205 is configured to decode the displacement amount bitstream to generate and output the displacement amount.
[0021] The video decoding unit 206 is configured to decode the texture by video encoding and output the texture. For example, the video decoding unit 206 may use HEVC in 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 updating 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 coefficient level values.
[0024] The coefficient level values generated by the arithmetic decoding unit 205A are represented in a matrix of size 3×N in each frame. Here, 3 indicates the number of dimensions, and N indicates the total number of subdivision vertices. A subdivision level is defined for each subdivision vertex.
[0025] The arithmetic decoding unit 205A may directly generate the coefficient level value. Alternatively, the arithmetic decoding unit 205A may efficiently generate the coefficient level value by using a plurality of syntax elements such as a flag (sig_coeff_flag) indicating whether the coefficient level value is significant, which will be described later.
[0026] The arithmetic decoding unit 205A decodes the original value depending on which section on the number line the input binary decimal falls within.
[0027] The arithmetic decoding unit 205A defines a number line from 0 to 1, and divides the interval according to the occurrence probability of two values (hereinafter, referred to as a context value) for use.
[0028] The arithmetic decoding unit 205A may arithmetically decode the coefficient level value using multiple types of context values. For example, the arithmetic decoding unit 205A may divide and define the context value for each subdivision level, may divide and define the context value for each dimension, or may divide and define the context value for each syntax.
[0029] Furthermore, the arithmetic decoding unit 205A may define a context value by dividing the coefficient level value for each sub-mesh, which is a unit capable of performing parallel processing.
[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 set whether to bypass updating of the context value for each syntax. As described above, the arithmetic decoding unit 205A may generate the coefficient level value based on the binary arithmetic decoding, or may generate the coefficient level value based on the multi-value arithmetic decoding such as RangeCoder.
[0032] The context value update unit 205B is configured to update the context values using the coefficient level values.
[0033] The context value update unit 205B updates the context value every time each coefficient level value is decoded. The context value update unit may use an update table such that, when a symbol having a high occurrence probability of 0 or 1 occurs, the context value is slightly updated, and when a symbol having a low occurrence probability occurs, the context value is significantly updated.
[0034] The context value buffer 205C is configured to obtain and store context values.
[0035] The arithmetic decoding initialization unit 205D is configured to initialize a context value for each frame. According to this configuration, by initializing the context value for each frame, arithmetic decoding can be performed without using information of other frames, and random access can be realized. Here, the initialized context value may be, for example, 0.5.
[0036] Furthermore, the arithmetic decoding initialization unit 205D may initialize the context values by dividing the coefficient level values for each sub-mesh, which is a unit capable of performing parallel processing.
[0037] Furthermore, the arithmetic decoding initialization unit 205D may omit initialization of the context value for a syntax that bypasses updating of the context value.
[0038] The inverse quantization unit 205E is configured to perform inverse quantization on the received coefficient level values to generate and output transform coefficients.
[0039] The inverse transform unit 205F is configured to generate and output a decoded displacement by performing an inverse transform on the received transform coefficients. The inverse transform unit 205F may use, for example, an inverse DCT or an inverse wavelet transform for the inverse transform.
[0040] (Structure of Displacement Bit Stream) An example of the configuration of a displacement amount bit stream will be described below with reference to Fig. 4. Fig. 4 is a diagram showing an example of the configuration of a displacement amount bit stream.
[0041] As shown in FIG. 4, first, the displacement bit stream may include a Displacement Parameter Set (DPS) which is a set of control information related to decoding of the displacement.
[0042] Secondly, the displacement bitstream may include a Displacement Frame Header (DFH), which is a collection of control information corresponding to a frame.
[0043] Thirdly, the displacement bitstream may include, following the DFH, a Displacement Data Unit (DDU), which is an encoded displacement corresponding to a 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 positive or negative 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 Amount Decoding Unit 205) An example of the operation of the displacement amount decoding unit 205 will be described below with reference to Fig. 5. Fig. 5 is a flowchart showing an example of the operation of the displacement amount decoding unit 205.
[0045] Here, in the arithmetic decoding unit 205A, if the coefficient level value is divided for each sub-mesh, which is a unit capable of parallel processing, to define the context value, the operation of FIG. 5 is performed in parallel for the number of sub-meshes.
[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 a 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, and if No, 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 transform coefficients by performing inverse quantization.
[0053] In step S108, the inverse transform unit 205F generates a decoded displacement amount by performing an inverse transform.
[0054] In step S109, the arithmetic decoding unit 205A determines whether the currently processed frame is the final frame or not If Yes, the operation ends, and if No, the operation proceeds to step S110.
[0055] In step S110, the arithmetic decoding unit 205A proceeds to processing of the next frame.
[0056] According to this embodiment, by initializing the context value for each frame, arithmetic decoding can be performed without using information of other frames, and random access can be realized.
[0057] The above-mentioned mesh encoding device 100 and mesh decoding device 200 may be realized as a program that causes a computer to execute each function (each step). [Industrial Applicability]
[0058] According to this embodiment, for example, it is possible to improve the overall service quality in video communication, which makes it possible to contribute to Goal 9 of the Sustainable Development Goals (SDGs) led by the United Nations, which is to "build resilient infrastructure, promote sustainable industrialization and foster innovation." [Explanation of symbols]
[0059] 1. Mesh processing system 100...Mesh coding device 200…Mesh decoding unit 201…Demultiplexer 202...Basic mesh decoding unit 203…Subdivision part 204…Mesh decoding unit 205...Displacement amount decoding unit 205A...arithmetic decoding unit 205B…Context value update unit 205C…Context value buffer 205D…Arithmetic decoding initialization unit 205E...Inverse quantization section 205F…Reverse conversion unit 206...Video decoding section
Claims
1. A mesh decoding device, comprising: a displacement amount decoding unit configured to decode the displacement amount bitstream to generate and output the displacement amount; The displacement amount decoding unit 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 value; a context value buffer configured to obtain and store the context values; an arithmetic decoding initialization unit configured to initialize the context value for each frame; an inverse quantization unit configured to perform inverse quantization on the coefficient level values to generate transform coefficients; an inverse transform unit configured to generate decoded displacements by performing an inverse transform on the transform coefficients.
2. The mesh decoding device according to claim 1 , wherein the arithmetic decoding unit is configured to define the context value by dividing the coefficient level value for each sub-mesh, which is a unit capable of being processed in parallel.
3. The mesh decoding device according to claim 2 , wherein the arithmetic decoding initialization unit is configured to initialize the context value by dividing the coefficient level value for each of the sub-meshes.
4. The mesh decoding device according to claim 3 , wherein the arithmetic decoding initialization unit is configured to omit initialization of the context value for a syntax that bypasses updating of the context value.
5. 1. A mesh decoding method, comprising: Decoding the displacement bitstream to generate and output a displacement, The process comprises: A step A of generating coefficient level values by performing arithmetic decoding on the displacement bitstream; A step B of updating a context value using the coefficient level value; A step C of obtaining and storing the context values; A step D of initializing said context values for each frame; a step E of generating transform coefficients by performing inverse quantization on the coefficient level values; and F generating decoded displacements by performing an inverse transform on said transform coefficients.
6. A program for causing a computer to function as a mesh decoding device, comprising: The mesh decoding device comprises a displacement decoding unit configured to decode a displacement bitstream to generate and output a displacement, The displacement amount decoding unit 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 value; a context value buffer configured to obtain and store the context values; an arithmetic decoding initialization unit configured to initialize the context value for each frame; an inverse quantization unit configured to perform inverse quantization on the coefficient level values to generate transform coefficients; an inverse transform unit configured to generate a decoded displacement by performing an inverse transform on the transform coefficients.
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