WO2025152005A1 - 编解码方法及装置、编解码器、码流、设备、存储介质 - Google Patents
编解码方法及装置、编解码器、码流、设备、存储介质Info
- Publication number
- WO2025152005A1 WO2025152005A1 PCT/CN2024/072404 CN2024072404W WO2025152005A1 WO 2025152005 A1 WO2025152005 A1 WO 2025152005A1 CN 2024072404 W CN2024072404 W CN 2024072404W WO 2025152005 A1 WO2025152005 A1 WO 2025152005A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- mesh
- basic
- grid
- reconstructed
- vertices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
Definitions
- VDMC Video-based dynamic mesh coding
- MPEG Moving Picture Experts Group
- V3C Visual Volumetric Video-based Coding
- a coding device applied to an encoder, the device comprising: a basic mesh generation module, configured to process an original mesh of a current image to obtain a basic mesh; wherein the number of vertices of the basic mesh is less than the number of vertices of the original mesh; a first coding module, configured to generate a code stream according to the basic mesh; a mesh cleaning module, configured to perform mesh cleaning on the basic mesh to determine a first basic mesh; a subdivision module, configured to subdivide the first basic mesh to determine a second basic mesh; and a second coding module, configured to generate a code stream according to the second basic mesh.
- an electronic device comprising: a processor, adapted to execute a computer program; a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, wherein the computer program is executed by the processor
- the encoding method as described in any of the embodiments of the present application is implemented, or when the computer program is executed by the processor, the decoding method as described in any of the embodiments of the present application is implemented.
- a computer-readable storage medium stores a computer program, and when the computer program is executed, it implements the encoding method as described in any one of the embodiments of the present application, or implements the decoding method as described in any one of the embodiments of the present application.
- FIG2 is a partially enlarged schematic diagram of a three-dimensional grid image provided in an embodiment of the present application.
- FIG3 is a schematic diagram of a connection method of a three-dimensional grid provided in an embodiment of the present application.
- FIG4 is a second schematic diagram of a three-dimensional grid image provided in an embodiment of the present application.
- FIG7 is a schematic diagram of an encoding end framework of a coding and decoding framework of VDMC
- FIG12 is a schematic diagram of an implementation flow of a method for generating a displacement code stream provided in an embodiment of the present application
- FIG14 is a schematic diagram of a three-dimensional grid decoding framework based on subdivision deformation provided in an embodiment of the present application.
- FIG21 is a schematic diagram of texture map conversion
- first ⁇ second ⁇ third etc. involved in the embodiments of the present application do not represent a specific ordering of objects. It can be understood that “first ⁇ second ⁇ third” can be interchanged in a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
- a three-dimensional grid is a three-dimensional object surface composed of countless polygons in space.
- a polygon is composed of vertices and edges.
- FIG. 1 is an example of a three-dimensional grid image provided in an embodiment of the present application.
- FIG. 2 is a partial enlarged schematic diagram of a three-dimensional grid image provided in an embodiment of the present application. It can be seen from FIG. 1 and FIG. 2 that the grid surface is composed of closed polygons.
- FIG. 3 is an example diagram of the connection method of the three-dimensional grid provided in an embodiment of the present application. As shown in Figure 3, the same number of vertices and vertex positions, due to different connection methods, the surfaces formed are completely different.
- the texture information and material information of the three-dimensional mesh surface are usually represented by a two-dimensional image, wherein the mapping from the two-dimensional image to the three-dimensional surface is realized by UV coordinates.
- the three-dimensional mesh data generally includes geometric coordinate information (x, y, z), geometric connection information, UV coordinates, and attribute graphs.
- FIG. 4 is an example of a three-dimensional mesh image provided in an embodiment of the present application.
- FIG. 5 is a schematic diagram of a mesh data storage format provided in an embodiment of the present application. As shown in FIG. 5, it includes three-dimensional geometric position information (such as v 248 167 22, etc.), UV coordinates (such as vt934 1867, etc.) and connection information (such as f1/1, etc.).
- FIG. 6 is a schematic diagram of the attributes of a three-dimensional mesh image provided in an embodiment of the present application.
- VDMC Video-based dynamic mesh coding
- MPEG Moving Picture Experts Group
- V3C Visual Volumetric Video-based Coding
- Figure 7 is a schematic diagram of the encoding end framework of a coding and decoding framework of VDMC
- Figure 8 is a schematic diagram of the decoding end framework corresponding to Figure 7.
- a basic mesh and a corresponding subdivided mesh and a deformed mesh are first obtained through a basic mesh generation module 701.
- the input mesh is first obtained through a simplification module in the basic mesh generation module 701 to obtain a simplified mesh, and then a mesh parameterization module in the basic mesh generation module 701 generates new texture coordinates for the simplified mesh, and then the mesh parameterized mesh is subdivided and deformed, that is, a new vertex is inserted into the mesh according to a specific subdivision method to obtain a subdivided mesh, and the distance from the subdivided mesh vertex to the nearest neighbor of the input mesh is calculated, which is called displacement, and a corresponding deformed mesh (also referred to as a subdivided deformed mesh) is obtained, and the vertices of the deformed mesh are the vertices in the input mesh that are the nearest neighbors to the subdivided mesh vertices.
- the vertex positions of the mesh after mesh parameterization that is, the mesh before subdividing and deforming, are adjusted according to the displacement information, and the adjusted mesh is called a basic mesh, which is sent to a basic mesh encoding module (basic mesh compression module 702), and is compressed by a mesh encoder in the basic mesh compression module 702 to obtain a basic mesh code stream.
- a motion vector may be generated for each vertex of the base mesh according to the reference frame, and the base mesh compression module 702 only needs to compress the motion vector.
- the base mesh is reconstructed after encoding/compression, and then the displacement is calculated based on the reconstructed base mesh and the deformed mesh obtained in the base mesh generation stage. Subsequently, the displacement information is input to the displacement encoding module 704.
- the displacement coding module 704 transforms and quantizes the input displacement information, and then encodes the processed displacement through a video encoder or an entropy encoder to obtain a displacement code stream (i.e., a displacement video code stream).
- the reconstructed displacement information and the reconstructed basic grid are input to the deformed grid reconstruction module 705 to obtain a reconstructed deformed grid, that is, the reconstructed displacement information is applied to the subdivided basic grid (i.e., the subdivided grid) to obtain a reconstructed deformed grid, and the grid and the original input grid and its corresponding texture map are input to the corresponding texture map conversion module 706 to obtain a texture map corresponding to the reconstructed grid, and the texture map is also encoded using a video encoder (i.e., a texture map compression module 707) to obtain a texture map code stream (i.e., a texture map video code stream).
- a video encoder i.e., a texture map compression module 707
- the overall framework of the decoding end is shown in FIG8.
- the decoding end first demultiplexes each part of the code stream to obtain the basic grid code stream, the displacement code stream and the texture map code stream respectively.
- the basic grid code stream the basic grid is decoded by using the grid decoder corresponding to the encoding end (i.e., the basic grid decoding module 801), and the basic grid is obtained by the subdivision module 802.
- the displacement code stream and the texture map code stream are decoded by the video decoder.
- the displacement For the displacement code stream, after the video is decoded, the displacement needs to be taken out from the image through the displacement decoding module 803, and the displacement reconstruction module 804 performs inverse quantization, inverse transformation and other steps, and then applies it to the subdivided basic grid (i.e., the subdivided grid) through the deformation grid reconstruction module 805 to obtain the deformed grid reconstructed by the decoding end.
- the texture map code stream is decoded by the texture map decoding module 806 to obtain the texture map corresponding to the reconstructed deformed grid.
- the subsequent application or rendering module processes the reconstructed deformed grid and the decoded texture map as input.
- FIG9 is a schematic diagram of an implementation flow of the decoding method provided by the present application embodiment. As shown in FIG9 , the method includes the following steps 901 and 904:
- Step 901 decode the bitstream and determine the reconstructed base mesh
- Step 902 performing mesh cleaning on the reconstructed basic mesh to determine a first basic mesh
- step 901 the bitstream is decoded to determine the reconstructed base mesh.
- the decoding module corresponding to the encoding end is used to decode the bit stream to obtain the reconstructed basic grid. If the encoding end uses the basic grid encoder Draco to compress the basic grid, the decoding end uses the reverse processing flow of the basic grid encoder Draco to process the bit stream, thereby obtaining the reconstructed basic grid.
- the reconstructed base mesh includes geometric coordinates of vertices of the reconstructed base mesh and connection relationships of the vertices of the reconstructed base mesh.
- the first threshold and the second threshold are not limited and can be any predefined values.
- the first threshold is equal to 0, and the repeated vertex refers to a vertex with the same geometric coordinates as the current vertex.
- the second threshold is equal to 0, that is, mesh faces with an area of 0 in the reconstructed basic mesh are removed.
- duplicate vertices are removed, i.e., geometric vertex deduplication.
- the input of this module is the geometric coordinates of the reconstructed base mesh and the corresponding connection relationship, i.e., decBaseMesh.pointInput and decBaseMesh.triangleInput, including the corresponding number of geometric vertices pointCount and the number of triangles triangleCount.
- the output is the deduplicated geometric coordinates and the connection relationship after updating the index, i.e., decBaseMesh.pointOutput and decBaseMesh.triangleOutput.
- the geometric vertex deduplication process is as follows:
- the second basic mesh can also be understood as a subdivided mesh.
- step 904 a reconstructed grid is determined according to the second basic grid.
- the reconstructed mesh can also be understood as a reconstructed deformed mesh.
- the decoding method further includes: decoding a bit stream to determine a reconstructed texture map.
- the decoder can input this information into a corresponding application (such as a video conferencing application or a game application that provides immersive media interactive services), and the application renders the image content based on the reconstructed mesh and the reconstructed texture map.
- a corresponding application such as a video conferencing application or a game application that provides immersive media interactive services
- FIG10 is a schematic diagram of the implementation flow of the encoding method provided in the embodiment of the present application. As shown in FIG10, the method includes the following steps 1001 and 1005:
- Step 1001 processing the original mesh of the current image to obtain a base mesh; wherein the number of vertices of the base mesh is less than the number of vertices of the original mesh;
- Step 1003 performing mesh cleaning on the basic mesh to determine a first basic mesh
- Step 1103 dequantizing the quantized grid to obtain a dequantized grid
- removing duplicate vertices of the reconstructed base mesh includes: removing duplicate vertices of the reconstructed base mesh according to geometric coordinates of the vertices of the reconstructed base mesh and connection relationships of the vertices of the reconstructed base mesh, and determining a third base mesh.
- the first threshold is equal to 0, and the repeated vertex refers to a vertex with the same geometric coordinates as the current vertex.
- step 1004 the cleaned basic grid is subdivided to determine a second basic grid.
- step 1005 a code stream is generated according to the second basic grid.
- step 1005 may be implemented by the following steps 1201 to 1203:
- Step 1201 deform the second basic mesh according to the original mesh to obtain a deformed mesh.
- the nearest neighbor points of each vertex of the second basic mesh on the original mesh are found. These nearest neighbor points constitute the vertices of the deformed mesh, and their connection relationship is the same as that of the second basic mesh.
- Step 1202 Determine the displacement information between the deformed mesh and the second basic mesh.
- the distance between the geometric coordinates of each vertex of the second basic mesh and the geometric coordinates of the corresponding nearest neighbor point in the deformed mesh is calculated, so as to obtain the displacement information between the deformed mesh and the second basic mesh.
- Step 1203 Generate a bit stream according to the displacement information.
- the encoding method of the displacement information can be understood by referring to the introduction of the displacement encoding module by the encoding end in the exemplary application below, which will not be described in detail here.
- the encoding method further includes: decoding a bitstream to determine reconstructed displacement information; determining a reconstructed grid based on the reconstructed base grid and the reconstructed displacement information; performing texture map conversion on an original texture map based on the original grid and the reconstructed grid to obtain a converted texture map; and generating a bitstream based on the converted texture map.
- a three-dimensional mesh encoding and decoding framework based on subdivision deformation is provided.
- the encoding framework divides the input mesh (i.e., the original mesh) into a base mesh and a displacement, and the base mesh has fewer points or faces than the input original mesh, and the displacement is used to improve the quality of the reconstructed base mesh so that it is close to the original mesh.
- the base mesh encoder is allowed to encode the base mesh in a more flexible manner, avoiding the influence of the base mesh encoding on the subdivided mesh and the deformed mesh, while improving the quality of the mesh (i.e., the deformed mesh) after the reconstructed base mesh is deformed by subdivision.
- the base mesh generation module by simulating the reconstruction process (i.e., quantizing and dequantizing the simplified mesh before mesh parameterization), the input of the mesh parameterization is made the same as the reconstructed base mesh, and the texture coordinates of the reconstructed base mesh can also be guaranteed to correspond to its geometric coordinates, thereby improving the parameterization quality of the reconstructed mesh.
- FIG14 is a schematic diagram of a three-dimensional grid decoding framework based on subdivision deformation provided by the embodiment of the present application, as shown in FIG14.
- the basic grid code stream is decoded by the basic grid decoder 1401 corresponding to the encoding end.
- the grid cleaning module 1402 performs a grid cleaning step on the decoded basic grid, that is, removes duplicate points and degenerate surfaces (surfaces with an area of 0).
- the displacement code stream is decoded by the displacement decoding module 1403, and then the displacement is reconstructed by the displacement reconstruction module 1404, including steps such as inverse transformation and inverse quantization.
- the reconstructed displacement is applied to the subdivided basic grid (i.e., the subdivided grid, where the subdivided grid is obtained by subdividing the grid output by the subdivision module 1406) through the deformed grid reconstruction module 1405 to obtain a reconstructed deformed grid, i.e., a decoded grid or a reconstructed grid.
- the texture map code stream passes through the texture map decoding module 1407 to obtain a reconstructed texture map, i.e., a decoded texture map.
- the input of the module 1302 is the basic grid, and the output is the basic grid code stream and the reconstructed basic grid.
- the basic grid compression module 1302 is flexible, that is, the basic grid encoder used by the module is replaceable, and the encoding end only needs to specify the identifier of the basic grid encoder used for the decoding end to use the corresponding basic grid decoder for decoding.
- Draco an available basic grid encoder Draco.
- the main process of Draco encoding meshes includes: first, for the input mesh, a connection relationship is generated based on its geometric information, that is, the connection relationship of vertices in three-dimensional space. After constructing the connection relationship of the surface, the initial surface is selected to start traversing all the surfaces of the current mesh, that is, traversing and generating symbols.
- the traversal and generating symbols adopt the Edgebreaker algorithm, which divides it into five modes according to the state of the triangle surface when traversing to the current corner, as shown in Figure 17.
- connection relationship For the attribute information, i.e., texture coordinates, there is also a connection relationship.
- the difference between the connection relationship of the attribute information and the connection relationship of the geometric information is compared, and the difference between the two, also known as boundary information, is encoded.
- boundary information Similar to the encoding of geometric information, after obtaining the order of attribute information traversal, the attribute information is quantized, predicted, and entropy encoded in the same way to obtain the attribute information encoding stream. Finally, the various partial streams are mixed to obtain the final encoding stream.
- the mesh cleaning module 1303 has a reconstructed basic mesh as input and a cleaned basic mesh as output.
- the module 1303 is used to remove duplicate points of the basic mesh generated by encoding and other processes to ensure that the subdivision deformation module 1304 can work normally. It includes two modules: geometric vertex deduplication and degenerate surface removal. For detailed description, see the same process at the decoding end.
- Subdivision deformation module 1304
- the basic idea of the subdivision deformation module 1304 is shown in Figure 19, and the same concept is applied to the input 3D mesh to generate displacements.
- the input 2D curve represented by a 2D polyline
- the original curve is first downsampled to generate a basic curve/polyline, called the "simplified” curve.
- the subdivision scheme is then applied to the simplified polyline to generate the "subdivided” curve.
- the subdivided polyline is then deformed to obtain a better approximation of the original curve. That is, a displacement vector is calculated for each vertex of the subdivided mesh so that the shape of the displacement curve is as close as possible to the shape of the original curve.
- These displacement vectors are the displacement information output by this module.
- the basic grid decoding module 1401 selects a basic grid decoder corresponding to the encoding end to decode the basic grid code stream to obtain a reconstructed basic grid.
- performing grid cleaning on the basic grid to determine a first basic grid includes: decoding a code stream of the basic grid to determine a reconstructed basic grid; and performing grid cleaning on the reconstructed basic grid to determine a first basic grid.
- the first threshold is equal to 0, and the repeated vertex refers to a vertex with the same geometric coordinates as the current vertex.
- removing the degenerate surfaces of the reconstructed basic mesh includes: removing the degenerate surfaces of the third basic mesh.
- the second threshold is equal to zero.
- determining the basic grid according to the inverse quantized grid includes: performing grid parameterization on the inverse quantized grid to obtain the basic grid.
- the encoding device 230 also includes a deformed mesh reconstruction module, a texture map conversion module and a texture map compression module; wherein the second encoding module 2305 is also configured to decode the code stream to determine the reconstructed displacement information; the deformed mesh reconstruction module is configured to determine the reconstructed mesh based on the reconstructed basic mesh and the reconstructed displacement information; the texture map conversion module is configured to perform texture map conversion on the original texture map based on the original mesh and the reconstructed mesh to obtain a converted texture map; the texture map compression module is configured to generate a code stream based on the converted texture map.
- each functional unit in each embodiment of the present application can be integrated into a processing unit, or it can exist physically alone, or two or more units can be integrated into one unit.
- the above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. It can also be implemented in the form of a combination of software and hardware.
- the technical solution of the embodiments of the present application can essentially or in other words, the part that contributes to the relevant technology can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling an electronic device to execute all or part of the methods described in each embodiment of the present application.
- the aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a magnetic disk or an optical disk. In this way, the embodiments of the present application are not limited to any specific combination of hardware and software.
- An embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, it implements an encoding method such as an encoder side, or implements a decoding method such as a decoder side.
- the decoder 240 includes: a first communication interface 2401, a first memory 2402 and a first processor 2403; each component is coupled together through a first bus system 2404. It can be understood that the first bus system 2404 is used to achieve connection and communication between these components.
- the first bus system 2404 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as the first bus system 2404 in FIG24. Among them,
- a first memory 2402 used for storing a computer program that can be run on the first processor 2403;
- the first processor 2403 is used to execute the decoding method described in the embodiment of the present application when running the computer program.
- RAM random access memory
- DRAM dynamic random access memory
- SDRAM synchronous dynamic random access memory
- DDRSDRAM double data rate synchronous dynamic random access memory
- ESDRAM enhanced synchronous dynamic random access memory
- SLDRAM synchronous link dynamic random access memory
- DRRAM direct memory bus random access memory
- the first processor 2403 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the first processor 2403.
- the above-mentioned first processor 2403 can be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application-specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.
- DSP Digital Signal Processor
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- the methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed.
- the general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc.
- the steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to be executed, or the hardware and software modules in the decoding processor can be executed.
- the software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc.
- the storage medium is located in the first memory 2402, and the first processor 2403 reads the information in the first memory 2402 and completes the steps of the above method in combination with its hardware.
- the technology described in this application can be implemented by a module (such as a process, function, etc.) that performs the functions described in this application.
- the software code can be stored in a memory and executed by a processor.
- the memory can be implemented in the processor or outside the processor.
- the second communication interface 2501 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
- the embodiment of the present application provides an electronic device, including: a processor, adapted to execute a computer program; a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by the processor, the encoding method and/or decoding method described in the embodiment of the present application is implemented.
- the electronic device may be any type of device having grid encoding and/or grid decoding capabilities, for example, the electronic device is a mobile phone, a tablet computer, a laptop computer, a personal computer, a television, a projection device, or a monitoring device.
- An embodiment of the present application also provides a computer program product, including computer program instructions.
- object A and/or object B can represent three situations: object A exists alone, object A and object B exist at the same time, and object B exists alone.
- the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium.
- the technical solution of the embodiment of the present application can essentially or in other words, the part that contributes to the relevant technology can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling an electronic device to execute all or part of the methods described in each embodiment of the present application.
- the aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
- the methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain a new method embodiment.
- the features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain a new product embodiment.
- the features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain a new method embodiment or device embodiment.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
编解码方法及装置、编解码器、码流、设备、存储介质,其中,所述解码方法包括:解码码流,确定重建的基础网格;对所述重建的基础网格进行网格清理,确定第一基础网格;对所述第一基础网格进行细分,确定第二基础网格;根据所述第二基础网格,确定重建网格。
Description
本申请实施例涉及网格编解码技术领域,涉及但不限于编解码方法及装置、编解码器、码流、设备、存储介质。
基于视频的动态网格编码(Video-based dynamic mesh coding,VDMC)是运动图像专家组(Moving Picture Experts Group,MPEG)制定的用于压缩三维网格的标准,其主要思想是通过利用已有的基于视频的视觉体积编码(Visual Volumetric Video-based Coding,V3C)标准对三维网格进行压缩,由于三维网格的连接信息也需要编码,因此三维网格的编码流程与V3C略有不同,需要对V3C标准解码端的语法语义以及解码操作进行扩展以支持三维网格的解码重建。
发明内容
本申请实施例提供的编解码方法及装置、编解码器、码流、存储介质,能够提高解码端的解码效率;本申请实施例提供的编解码方法及装置、编解码器、码流、存储介质,是这样实现的:
根据本申请实施例的第一方面,提供一种解码方法,所述方法应用于解码器,所述方法包括:解码码流,确定重建的基础网格(reconstructed base mesh);对所述重建的基础网格进行网格清理(mesh clean),确定第一基础网格;对所述第一基础网格进行细分,确定第二基础网格;根据所述第二基础网格,确定重建网格。
可以理解,在本申请实施例提供的解码方法中,在对重建的基础网格进行细分之前,先对该重建的基础网格进行网格清理,然后对清理后的基础网格(即第一基础网格)进行细分;如此,使得解码端用于细分的网格与编码端用于细分的网格相同,从而使得解码端进行正确的解码,如果不进行细分,会导致出错,进而有益于提高解码端的解码效率。
根据本申请实施例的第二方面,提供一种编码方法,所述方法应用于编码器,所述方法包括:对当前图像的原始网格(original mesh)进行处理,得到基础网格(base mesh);其中,所述基础网格的顶点数小于所述原始网格的顶点数;根据所述基础网格生成码流;对所述基础网格进行网格清理(mesh clean),确定第一基础网格;对所述第一基础网格进行细分,确定第二基础网格;根据所述第二基础网格,生成码流。
可以理解,在本申请实施例提供的编码方法中,在对基础网格进行细分之前,先对该基础网格进行网格清理,然后再基于清理后的基础网格(即第一基础网格)进行细分;如此,通过网格清理去除基础网格因编码等过程产生的重复点,从而保证网格细分能够正常进行,同时提高网格的编码效率。
根据本申请实施例的第三方面,提供一种解码装置,应用于解码器,所述装置包括:解码模块,配置成解码码流,确定重建的基础网格;网格清理模块,配置成对所述重建的基础网格进行网格清理,确定第一基础网格;细分模块,配置成对所述第一基础网格进行细分,确定第二基础网格;重建模块,配置成根据所述第二基础网格,确定重建网格。
根据本申请实施例的第四方面,提供一种解码器,包括第一存储器和第一处理器;其中,所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;所述第一处理器,用于在运行所述计算机程序时,执行如本申请实施例所述的解码方法。
根据本申请实施例的第五方面,提供一种编码装置,应用于编码器,所述装置包括:基础网格生成模块,配置成对当前图像的原始网格进行处理,得到基础网格;其中,所述基础网格的顶点数小于所述原始网格的顶点数;第一编码模块,配置成根据所述基础网格生成码流;网格清理模块,配置成对所述基础网格进行网格清理,确定第一基础网格;细分模块,配置成对所述第一基础网格进行细分,确定第二基础网格;第二编码模块,配置成根据所述第二基础网格,生成码流。
根据本申请实施例的第六方面,提供一种编码器,包括第二存储器和第二处理器;其中,所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;所述第二处理器,用于在运行所述计算机程序时,执行如本申请实施例所述的编码方法。
根据本申请实施例的第七方面,提供一种码流,所述码流是通过本申请任一实施例所述的编码方法而得到的。
根据本申请实施例的第八方面,提供一种电子设备,包括:处理器,适于执行计算机程序;计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器
执行时,实现如本申请实施例任一所述的编码方法,或者所述计算机程序被所述处理器执行时,实现如本申请实施例任一所述的解码方法。
根据本申请实施例的第九方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如本申请实施例任一所述的编码方法、或者实现如本申请实施例任一所述的解码方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1为本申请实施例提供的三维网格图像示意图一;
图2为本申请实施例提供的三维网格图像的局部放大示意图;
图3为本申请实施例提供的三维网格的连接方式示意图;
图4为本申请实施例提供的三维网格图像示意图二;
图5为本申请实施例提供的网格数据存储格式示意图;
图6为本申请实施例提供的三维网格图像的属性示意图;
图7为VDMC的一种编解码框架的编码端框架示意图;
图8为与图7相适应的解码端框架示意图;
图9为本申请实施例提供的解码方法的实现流程示意图;
图10为本申请实施例提供的编码方法的实现流程示意图;
图11为本申请实施例提供的确定基础网格的实现流程示意图;
图12为本申请实施例提供的位移码流的生成方法的实现流程示意图;
图13为本申请实施例提供的基于细分变形的三维网格编码框架示意图;
图14为本申请实施例提供的基于细分变形的三维网格解码框架示意图;
图15为网格简化示例图;
图16为Draco编码框架示意图;
图17为Edgebreaker五种模式示意图;
图18为多种平行四边形预测方式示意图;
图19为位移计算方法示意图;
图20为细分示意图;
图21为纹理图转换示意图;
图22为本申请实施例提供的解码装置的结构示意图;
图23为本申请实施例提供的编码装置的结构示意图;
图24为本申请实施例提供的解码器的结构示意图;
图25为本申请实施例提供的编码器的结构示意图。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”等不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
本申请实施例描述的编码器、解码器的框架以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。本领域普通技术人员可知,随着编码器、解码器的演变以及新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
需要说明的是,可以允许在同一视频场景中解码和合成不同的数据格式比特流。其中,至少可以包括图像格式、点云(Point Cloud)格式、网格(Mesh)格式。通过这种方式,可以为具有不同来源的多个数据格式(例如,网格、点云、图像等等)提供实时沉浸式媒体交互服务。
在本申请实施例中,基于数据格式的方法可以允许以数据格式的比特流级进行独立性处理。即与视频编码中的瓦片(Tiles)或切片(Slices)一样,该场景中的不同数据格式可以以独立的方式编码,从而可以基于数据格式进行独立的编码和解码。
一般而言,三维动画内容采用基于关键帧的表示方法,即每帧是一个静态网格。不同时刻的静态网格具有相同的拓扑结构和不同的几何结构。但是,基于关键帧表示的三维动态网格的数据量特别大,因此如何能够有效的存储、传输和绘制成为三维动态网格发展所面临的问题。另外,针对不同的用户终端(电脑、笔记本、便携式设备、手机)需要支持网格的空间可伸缩性;不同的网格带宽(宽带、窄带、无线)需要支持网格的质量可伸缩性。因此,三维动态网格压缩是一个非常关键的问题。
三维网格是通过空间中的无数个多边形组成的三维物体表面,多边形由顶点和边组成,图1为本申请实施例提供的三维网格图像示例图一,图2为本申请实施例提供的三维网格图像的局部放大示意图。根据图1和图2可以看到网格表面是由闭合多边形所组成的。
二维图像在每一个像素点均有信息表达,分布规则,因此不需要额外记录其位置信息;然而网格中的顶点在三维空间中的分布具有随机性和不规则性,以及多边形的构成方式需要进行额外的规定,因此需要记录每一个顶点在空间中的位置,以及每个多边形的连接信息,才能完整地表达一幅网格图像。图3为本申请实施例提供的三维网格的连接方式示例图,如图3所示,同样的顶点数目和顶点位置,由于连接方式的不同,所形成的表面也完全不同。
三维网格表面的纹理信息以及材质信息等通常使用二维图像的方式来表示。其中,通过UV坐标来实现从二维图像到三维表面的映射。
与二维图像类似,采集过程中每一个位置可能会有对应的属性信息,通常为RGB颜色值,颜色值反映物体的色彩;对于三维网格来说,每一个顶点所对应的属性信息除了颜色以外,还有比较常见的是反射率(Reflectance)值,反射率值反映物体的表面材质。
因此,三维网格数据通常包括几何坐标信息(x,y,z)、几何连接信息、UV坐标,以及属性图。其中,图4为本申请实施例提供的三维网格图像示例图二,图5为本申请实施例提供的网格数据存储格式示意图,如图5所示,包括三维几何位置信息(如v 248 167 22等)、UV坐标(如vt934 1867等)和连接信息(如f1/1等),图6为本申请实施例提供的三维网格图像的属性示意图。
基于视频的动态网格编码(Video-based dynamic mesh coding,VDMC)是运动图像专家组(Moving Picture Experts Group,MPEG)制定的用于压缩三维网格的标准,其主要思想是通过利用已有的基于视频的视觉体积编码(Visual Volumetric Video-based Coding,V3C)标准对三维网格进行压缩,由于三维网格的连接信息也需要编码,因此三维网格的编码流程与V3C略有不同,需要对V3C标准解码端的语法语义以及解码操作进行扩展以支持三维网格的解码重建,图7为VDMC的一种编解码框架的编码端框架示意图,图8为与图7相适应的解码端框架示意图。
其中,如图7所示,对于输入网格(也可以称为原始网格或初始网格等),首先通过基础网格生成模块701得到基础网格以及对应的细分网格和变形网格。其中,输入网格首先通过基础网格生成模块701中的简化模块得到简化后的网格,然后通过基础网格生成模块701中的网格参数化模块为简化后的网格生成新的纹理坐标,随后对网格参数化后的网格进行细分和变形,即按照特定的细分方法在网格上插入新的顶点,得到细分网格,并计算细分网格顶点到输入网格最近邻点的距离——称为位移,并得到相应的变形网格(也可以称为细分变形网格),该变形网格的顶点是输入网格中与细分网格顶点最近邻的顶点。随后,根据位移信息调整网格参数化后的网格,即细分变形前的网格的顶点位置,并将调整后的网格称为基础网格,将其送入基础网格编码模块(基础网格压缩模块702),利用基础网格压缩模块702中的网格编码器对其进行压缩,得到基础网格码流。在帧间模式下,还可以根据参考帧为基础网格每个顶点生成运动向量,基础网格压缩模块702仅压缩运动向量即可。
如图7所示,基础网格在编码/压缩后进行重建,然后根据重建后的基础网格和基础网格生成阶段得到的变形网格输入至位移生成模块703计算位移。随后,将位移信息输入至位移编码模块704,
位移编码模块704将输入的位移信息进行变换、量化等处理,然后可以将处理后的位移通过视频编码器或熵编码器进行编码,得到位移码流(即位移视频码流)。另外,将重建的位移信息和重建的基础网格输入至变形网格重建模块705,得到重建的变形网格,即,将重建的位移信息应用于细分后的基础网格(即细分网格)得到重建的变形网格,将该网格以及原始输入网格及其对应的纹理图输入对应的纹理图转换模块706得到重建网格对应的纹理图,将该纹理图同样利用视频编码器(即纹理图压缩模块707)进行编码,得到纹理图码流(即纹理图视频码流)。
解码端整体框架如图8所示,对于接收到的码流,解码端首先将各部分码流解复用,分别得到基础网格码流、位移码流和纹理图码流。对于基础网格码流,通过使用与编码端对应的网格解码器(即基础网格解码模块801)解码得到基础网格,基础网格经由细分模块802得到细分网格。位移码流与纹理图码流通过视频解码器进行解码。对于位移码流,视频解码后还需要通过位移解码模块803将位移从图像中取出,并通过位移重建模块804进行反量化、反变换等步骤,然后将其通过变形网格重建模块805应用于细分后的基础网格(即细分网格),得到解码端重建的变形网格。纹理图码流经由纹理图解码模块806解码后即为重建的变形网格对应的纹理图。后续应用或渲染模块将重建的变形网格以及解码得到的纹理图作为输入进行处理。
在相关的编码方案中,预处理阶段基础网格生成模块701会得到基础网格以及与其对应的细分变形网格(即变形网格),该细分变形网格会与基于重建的基础网格得到的细分网格计算得到位移。然而,由于基础网格编码器的可替代性,无法保证重建的基础网格与预处理阶段的细分变形网格对应,即位移计算可能不正确。此外,由于编解码的影响,细分变形阶段计算得到的基础网格与重建的基础网格几何顶点存在变化,从而导致计算的位移存在偏差,在一定程度上降低了编码效率以及重建网格的质量。
基于上述分析,下面将结合附图对本申请各实施例进行详细说明。
本申请实施例提供一种解码方法,该方法可以应用于解码器,图9为本申请实施例提供的解码方法的实现流程示意图,如图9所示,该方法包括如下步骤901和步骤904:
步骤901,解码码流,确定重建的基础网格(reconstructed base mesh);
步骤902,对所述重建的基础网格进行网格清理(mesh clean),确定第一基础网格;
步骤903,对所述第一基础网格进行细分,确定第二基础网格;
步骤904,根据所述第二基础网格,确定重建网格。
在本申请实施例中,在对重建的基础网格进行细分之前,先对该重建的基础网格进行网格清理,然后对清理后的基础网格(即第一基础网格)进行细分;如此,使得解码端用于细分的网格与编码端用于细分的网格相同,从而使得解码端进行正确的解码,如果不进行细分,会导致出错,进而有益于提高解码端的解码效率。
以下分别对上述各个步骤的进一步的可选的实施方式以及相关名词等进行说明。
在步骤901中,解码码流,确定重建的基础网格(reconstructed base mesh)。
这里采用与编码端相对应的解码模块解码码流得到重建的基础网格。如编码端对基础网格压缩采用的是基础网格编码器Draco,则解码端采用与基础网格编码器Draco的逆向处理流程对码流进行处理,从而得到重建的基础网格。
在步骤902中,对所述重建的基础网格进行网格清理(mesh clean),确定第一基础网格;其中,第一基础网格也可以理解为清理后的基础网格。
在一些实施例中,所述对所述重建的基础网格进行网格清理,包括:去除所述重建的基础网格的重复顶点和/或退化面;其中,所述重复顶点是指与当前顶点的距离小于或等于第一阈值的顶点;所述退化面是指面积小于或等于第二阈值的网格面。
在一些实施例中,所述重建的基础网格包括所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系。
在一些实施例中,去除所述重建的基础网格的重复顶点,包括:根据所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系,去除所述重建的基础网格的重复顶点,确定第三基础网格。
进一步地,在一些实施例中,所述根据所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系,去除所述重建的基础网格的重复顶点,确定第三基础网格,包括:根据所述重建的基础网格的顶点的几何坐标,去除所述重建的基础网格中的重复顶点;根据所述重建的基础网格的顶点的连接关系,对去除重复顶点后的基础网格的连接关系进行更新,得到第三基础网格。
在一些实施例中,去除所述重建的基础网格的退化面,包括:对所述第三基础网格进行退化面的去除。也就是,先对重建的基础网格进行重复顶点的去除,然后在此基础上再进行退化面的去除。
在本申请实施例中,对于第一阈值和第二阈值的大小不做限定,可以是任意预定义的数值。示例性地,在一些实施例中,所述第一阈值等于0,所述重复顶点是指与当前顶点的几何坐标相同的顶点。
示例性地,在一些实施例中,所述第二阈值等于0,即去除重建的基础网格中面积为0的网格面。
在一种可能的实现方式中,去除重复顶点,即几何顶点去重,该模块的输入为重建的基础网格的几何坐标以及对应的连接关系,即decBaseMesh.pointInput以及decBaseMesh.triangleInput,包括相应的几何顶点数量pointCount以及三角面数量triangleCount。输出为去重后的几何坐标以及更新索引后的连接关系,即decBaseMesh.pointOutput以及decBaseMesh.triangleOutput。几何顶点去重过程如下所示:
在一种可能的实现方式中,用于去除所述重建的基础网格的退化面的模块,其输入为顶点去重后的网格decBaseMesh,输出为去除退化面后的网格cleanMesh(即第一基础网格)。其过程如下所示:
在步骤903中,对所述第一基础网格进行细分,确定第二基础网格。
需要说明的是,所述第二基础网格也可以理解为细分网格(subdivided mesh)。
对于步骤903而言,在一种可能的实现方式中,可以按照编码端的细分次数,执行与编码端相同的细分步骤,通过指示的插值方式在清理后的基础网格的边上插入新的顶点,得到细分网格。
在步骤904中,根据所述第二基础网格,确定重建网格。
在一些实施例中,所述解码方法还包括:解码码流,确定重建的位移信息。所述根据所述第二
基础网格,确定重建网格,包括:根据所述第二基础网格和所述重建的位移信息,确定重建网格。
在一种可能的实现方式中,将第二基础网格(也就是细分网格)的顶点几何坐标加上重建的位移信息中对应的位移,即可得到重建网格。
在本申请实施例中,重建网格也可以理解为重建的变形网格(deformed mesh)。
在一些实施例中,所述解码方法还包括:解码码流,确定重建的纹理图。
在一种可能的实现方式中,解码器在得到重建网格和重建的纹理图之后,可以将这些信息输入至对应的应用(如视频会议应用或游戏应用等提供沉浸式媒体交互服务的应用),应用基于重建网格和重建纹理图渲染出图像内容。
本申请实施例提供一种编码方法,该方法与解码端的处理流程相对应,该方法可以应用于编码器,图10为本申请实施例提供的编码方法的实现流程示意图,如图10所示,包括如下步骤1001和步骤1005:
步骤1001,对当前图像的原始网格(original mesh)进行处理,得到基础网格(base mesh);其中,所述基础网格的顶点数小于所述原始网格的顶点数;
步骤1002,根据所述基础网格生成码流;
步骤1003,对所述基础网格进行网格清理(mesh clean),确定第一基础网格;
步骤1004,对所述第一基础网格进行细分,确定第二基础网格;
步骤1005,根据所述第二基础网格,生成码流。
可以理解,在本申请实施例提供的编码方法中,在对基础网格进行细分之前,先对该基础网格进行网格清理,然后再基于清理后的基础网格(即第一基础网格)进行细分;如此,通过网格清理去除基础网格因编码等过程产生的重复点,从而保证网格细分能够正常进行,同时提高网格的编码效率。
以下分别对上述各个步骤的进一步的可选的实施方式以及相关名词等进行说明。
在步骤1001中,对当前图像的原始网格(original mesh)进行处理,得到基础网格(base mesh)。其中,所述基础网格的顶点数小于所述原始网格的顶点数。
在一些实施例中,可以对原始网格进行简化处理,得到简化网格;然后对简化网格进行网格参数化处理,从而得到基础网格。在另一些实施例中,基础网格也可以是原始网格经由简化处理、量化、反量化和网格参数化得到的网格。也就是说,对所述原始网格的处理依次包括网格简化和网格参数化,或者对所述原始网格的处理依次包括网格简化、量化、反量化和网格参数化。
具体地,在一些实施例中,如图11所示,所述对当前图像的原始网格进行处理,得到基础网格,包括如下步骤1101至步骤1104:
步骤1101,对所述原始网格进行网格简化,得到简化网格。
网格简化是指将原始网格简化到一个点数和面数相对较少的简化网格,并且尽可能地保证形状不发生大的变化。具体的处理流程可以参见下文的示例性应用中对网格简化模块的介绍,这里不再赘述。
步骤1102,对所述简化网格进行量化,得到量化后的网格;
步骤1103,对所述量化后的网格进行反量化,得到反量化后的网格;
对简化网格进行量化/反量化,可以理解为对简化网格的顶点几何坐标进行量化/反量化,反量化后的网格供后续的网格参数化模块使用,从而保证网格参数化模块输入的基础网格与解码端重建的基础网格几何坐标相同,进而有益于提高解码端重建的基础网格的参数化质量。
在一种可能的实现方式中,顶点几何坐标的量化过程如下所示:
scale=((1<<QP)-1.0)/((1<<bitDepth)-1.0)
qBaseV[i]=Clamp(Round(baseV[i]*scale),0.0,(1<<bitDepth)-1.0)
scale=((1<<QP)-1.0)/((1<<bitDepth)-1.0)
qBaseV[i]=Clamp(Round(baseV[i]*scale),0.0,(1<<bitDepth)-1.0)
其中,QP为预设的量化参数,bitDepth为输入网格几何坐标的比特位深,qBaseV[i]表示基础网格第i个顶点的几何坐标,clamp运算符如下所示,Round函数表示四舍五入。
顶点几何坐标反量化过程如下:
iscale=1.0/scale
rBaseV[i]=qBaseV[i]*iscale
iscale=1.0/scale
rBaseV[i]=qBaseV[i]*iscale
其中,rBaseV[i]表示反量化后网格第i个顶点的几何坐标。
步骤1104,根据所述反量化后的网格,确定所述基础网格。
在一些实施例中,所述根据所述反量化后的网格,确定所述基础网格,包括:对所述反量化后的网格进行网格参数化,得到所述基础网格。
可以理解,网格参数化用于将反量化后的网格生成相应的纹理坐标。在实现时可以采用Isochart算法或正交投影算法等算法来实现对反量化后的网格的网格参数化。这两个算法的相关介绍可以参见下文的示例性应用中对网格参数化模块的介绍,这里不再赘述。
在步骤1002中,根据所述基础网格生成码流。
在本申请实施例中,用于生成基础网格码流的基础网格编码器具有灵活性,是可以替换的,编码端只需要指定使用的基础网格编码器的标识符,以供解码端使用对应的基础网格解码器进行解码即可。示例性地,编码器使用基础网格编码器Draco对所述基础网格进行处理,生成相应的码流。关于基础网格编码器Draco,可以参见下文的示例性应用中对基础网格压缩模块的介绍,这里不再赘述。
在步骤1003中,对所述基础网格进行网格清理(mesh clean),确定第一基础网格。
在一些实施例中,解码所述基础网格的码流,确定重建的基础网格;对所述重建的基础网格进行网格清理,得到第一基础网格(即清理后的基础网格)。
可以理解,结合步骤1004来看,第一基础网格用于进行网格细分,而重建的基础网格可能存在重复顶点和/或退化面的情况,因此,为了确保步骤1004的正常进行,在对基础网格进行细分之前,先对基础网格进行清理,包括去除重复顶点和/或退化面。
另外,结合步骤1004来看,其与相关技术如前文图7所示的编码框架不同的是,本申请实施例是基于重建的基础网格,而非是编码之前的基础网格得到的第二基础网格。也就是,在本申请实施例中,解码基础网格的码流,确定重建的基础网格,对所述重建的基础网格进行网格清理,得到第一基础网格;然后,对所述第一基础网格进行细分,得到第二基础网格;如此,允许基础网格编码器可以以更灵活的方式对基础网格进行编码,避免了基础网格的编码对第二基础网格和重建网格的影响,同时有益于提高基于重建的基础网格得到的重建网格的质量。
需要说明的是,在本申请实施例中,第一基础网格也可以理解为清理后的基础网格,第二基础网格也可以理解为细分网格(subdivided mesh),最终得到的重建网格也可以理解为重建的变形网格(deformed mesh)。
在一些实施例中,所述对所述重建的基础网格进行网格清理,包括:去除所述重建的基础网格的重复顶点和/或退化面;其中,所述重复顶点是指与当前顶点的距离小于或等于第一阈值的顶点;所述退化面是指面积小于或等于第二阈值的网格面。
在一些实施例中,所述重建的基础网格包括所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系。
在一些实施例中,所述去除所述重建的基础网格的重复顶点,包括:根据所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系,去除所述重建的基础网格的重复顶点,确定第三基础网格。
进一步地,在一些实施例中,所述根据所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系,去除所述重建的基础网格的重复顶点,确定第三基础网格,包括:根据所述重建的基础网格的顶点的几何坐标,去除所述重建的基础网格中的重复顶点;根据所述重建的基础网格的顶点的连接关系,对去除重复顶点后的基础网格的连接关系进行更新,得到所述第三基础网格。
在一些实施例中,所述第一阈值等于0,所述重复顶点是指与当前顶点的几何坐标相同的顶点。
在一些实施例中,去除所述重建的基础网格的退化面,包括:对所述第三基础网格进行退化面的去除。
在一些实施例中,所述第二阈值等于0。
需要说明的是,编码端的网格清理的实现与解码端相同,因此可以参见上述对解码端的网格清理的介绍,这里不再赘述。
在步骤1004中,对所述清理后的基础网格进行细分,确定第二基础网格。
在本申请实施例中,第二基础网格也可以理解为细分网格(subdivided mesh)。
对于编码端进行网格细分的实现方法可以参加下文示例性应用中对编码端的细分变形模块的介绍,这里不再赘述。
在步骤1005中,根据所述第二基础网格,生成码流。
在一些实施例中,如图12所示,可以通过如下步骤1201至步骤1203实现步骤1005:
步骤1201,根据所述原始网格对所述第二基础网格进行变形,得到变形网格(deformed mesh)。
在一种可能的实现方式中,对于第二基础网格(即细分网格),寻找第二基础网格的每个顶点在原始网格上的最近邻点(包括原始网格的网格面上的点),这些最近邻点就构成了变形网格的顶点,其连接关系与第二基础网格的连接关系相同。
在本申请实施例中,对于寻找第二基础网格的每个顶点在原始网格上的最近邻点的方法不做限定,可以通过kdTree等数据结构加速查找。
步骤1202,确定所述变形网格与所述第二基础网格之间的位移信息。
在一种可能的实现方式中,计算第二基础网格的每一顶点的几何坐标分别与所述变形网格中对应的最近邻点的几何坐标之间的距离,即得到变形网格与第二基础网格之间的位移信息。
步骤1203,根据所述位移信息生成码流。
对于位移信息的编码方法可以参见下文示例性应用中编码端对于位移编码模块的介绍而理解,这里不再赘述。
在一些实施例中,所述编码方法还包括:解码码流,确定重建的位移信息;根据重建的基础网格和重建的位移信息,确定重建网格;根据所述原始网格和所述重建网格,对原始纹理图进行纹理图转换,得到转换后的纹理图;根据所述转换后的纹理图生成码流。
对于上述纹理图的编码流程可以参见如下示例性应用中对纹理图转换模块及纹理图压缩模块的相关介绍而理解,这里不再赘述。
还需要说明的是,上述编码方法与上述解码方法相对应,因此,对于编码方法中未披露的技术细节,请参照上述解码方法中相应说明和描述而理解。这里为了节约篇幅,避免重复描述,对于编码方法侧的一些技术细节不再说明和描述。另外,对于上述编码方法和解码方法中未披露的技术细节,也可以参照下文提供的示例性应用的相关说明和描述而理解。
下面将说明本申请实施例的示例性应用。
在本申请实施例中,提供了一种基于细分变形的三维网格编解码框架。具体来说,该编码框架将输入网格(即原始网格)分为基础网格与位移,基础网格相比输入的原始网格具有更少的点数或面数,位移用于提高重建的基础网格的质量以使其逼近原始网格。在本申请实施例中,通过对重建的基础网格进行细分和变形,允许基础网格编码器可以以更灵活的方式对基础网格进行编码,避免了基础网格编码对细分网格和变形网格的影响,同时提高了重建基础网格经由细分变形后的网格(即变形网格)的质量。此外,在基础网格生成模块中,通过模拟重建过程(即在将简化后的网格进行网格参数化之前先对该简化后的网格进行量化和反量化),使得网格参数化的输入与重建的基础网格相同,也可以保证重建基础网格的纹理坐标与其几何坐标相对应,提高了重建网格的参数化质量。
本申请实施例提供一种编码框架,图13为本申请实施例提供的基于细分变形的三维网格编码框架示意图,如图13所示,输入网格通过基础网格生成模块1301,得到点数与面数更少的基础网格。然后利用基础网格压缩模块1302(即基础网格编码器)对基础网格进行编码,得到基础网格码流以及重建的基础网格。通过网格清理模块1303对重建的基础网格进行网格清理,通过细分变形模块1304将清理后的网格进行细分和变形,得到与重建网格相对应的位移。随后通过位移编码模块1305对位移进行处理,包括变换、量化等,然后对处理后的位移进行编码并重建,变形网格重建模块1306利用重建位移以及重建的基础网格得到重建的变形网格。然后纹理图转换模块1307根据重建的变形网格进行纹理图转换,得到与其对应的纹理图,纹理图压缩模块1308对该纹理图编码得到纹理图码流。
本申请实施例提供一种解码框架,图14为本申请实施例提供的基于细分变形的三维网格解码框架示意图,如图14所示。通过与编码端对应的基础网格解码器1401对基础网格码流进行解码。通过网格清理模块1402对解码得到的基础网格进行网格清理步骤,即去除重复点以及退化面(面积为0的面)。通过位移解码模块1403对位移码流进行解码,随后通过位移重建模块1404对位移进行重建,包括反变换、反量化等步骤。随后通过变形网格重建模块1405将重建的位移应用于细分后的基础网格(即细分网格,其中细分网格是细分模块1406对网格清理输出的网格进行细分得到的),得到重建的变形网格,即解码网格或重建网格。纹理图码流经过纹理图解码模块1407后得到重建纹理图,即解码纹理图。接下来,对本申请实施例提供的三维网格编解码框架的主要模块进行具体的说明。
编码端:
(1)基础网格生成模块1301:
基础网格生成模块1301其输入是原始网格,输出是基础网格,该模块1301包括网格简化模块、可选的量化和反量化模块以及网格参数化模块。下面对各个模块进行介绍。
①网格简化模块
网格简化模块用于将当前输入的网格(即原始网格)简化到一个点数和面数相对较少的基础网格,并且尽可能地保证形状不发生大的变化。网格简化模块的重点在于简化的操作以及对应的误差能量函数。一种可行的网格简化操作如图15所示,将边两端的顶点v1和v2合并为一个顶点v并删除这两个顶点v1和v2间的连接。在整个网格中按照一定规则重复这一过程将网格的面数和顶点数减少到目标值。
在简化的过程中,可以选择某一误差度量来最优化简化的结果。例如,可以选取顶点所有相邻面的方程系数之和作为该顶点的误差度量,相应的边的误差度量即为边上两顶点的误差度量之和。换句话说,一条边合并产生的误差即为合并后顶点到边的原始两顶点相邻所有平面的距离平方之和。此外,误差度量也可以考虑基础网格与其细分后网格顶点之间的位移大小。
确定好简化操作以及对应的误差度量之后,就开始迭代进行网格简化。首先计算初始网格的顶点误差,从而得到每条边的误差。然后将每条边按误差从小到大排列,每次选取误差最小的边进行合并。同时,计算合并后的顶点位置,并更新所有与合并后的顶点相关的边的误差。即更新边排列的顺序,保证每次迭代都是基于全局的误差度量。通过迭代将网格的面简化到满足有损编码所需要的数量。
②量化和反量化模块
该步骤/模块为可选模块,用于对简化模块输出的网格的顶点几何坐标进行量化和反量化以供后续的网格参数化模块使用,从而保证网格参数化模块输入的基础网格与解码端重建的基础网格几何坐标相同,提高解码端重建的基础网格的参数化质量。
顶点量化过程如下所示:
scale=((1<<QP)-1.0)/((1<<bitDepth)-1.0)
qBaseV[i]=Clamp(Round(baseV[i]*scale),0.0,(1<<bitDepth)-1.0)
scale=((1<<QP)-1.0)/((1<<bitDepth)-1.0)
qBaseV[i]=Clamp(Round(baseV[i]*scale),0.0,(1<<bitDepth)-1.0)
其中,QP为预设的量化参数,bitDepth为输入网格几何坐标的比特位深,qBaseV[i]表示基础网格第i个顶点的几何坐标,clamp运算符如下所示,Round函数表示四舍五入。
顶点反量化过程如下:
iscale=1.0/scale
rBaseV[i]=qBaseV[i]*iscale
iscale=1.0/scale
rBaseV[i]=qBaseV[i]*iscale
其中,rBaseV[i]表示反量化后网格第i个顶点的几何坐标。
③网格参数化模块
网格参数化模块用于为网格生成相应的纹理坐标,输出为基础网格。目前已有许多算法用来对网格进行参数化,如Isochart算法,正交投影算法等。在该编码框架中,上述两种方案均可以用于对重建的基础网格进行参数化。下面对两种算法进行简要介绍。
1)Isochart算法
该算法使用谱分析实现拉伸驱动的三维网格参数化,将三维网格进行UV展开、分片并打包到二维纹理域。设定一个拉伸阈值,其算法概述如下a)至f):
a)计算表面谱分析,提供一个初始参数化;
b)执行拉伸优化的迭代;
c)如果此派生参数化的拉伸小于阈值,则停止;
d)执行表面谱聚类来将表面划分为charts;
e)使用graph cut算法优化chart边界;
f)迭代分割charts直到满足拉伸准则。
2)正交投影算法
orthoAtlas是一种基于投影的网格参数化方法,它通过正交投影为网格生成纹理坐标。它的主要过程包括如下a)至h):
a)计算网格属性,包括每个面的邻接面以及每个面的面积和法向量;
b)根据法向量,确定每个面的投影平面;
c)开始根据投影平面将所有面进行聚类构成一个连通区域,首先选取聚类的起始面;
d)从起始面开始迭代,确定加入连通区域的面的邻接面是否可以加入连通区域;
e)每个连通区域迭代完成后,获得多个连通区域;
f)根据误差度量确定是否合并邻接的连通区域;
g)检测投影时是否存在重叠区域,将重叠的面拆除并重新生成连通区域;
h)将投影后的所有区域排列到一张二维图像中。
(2)基础网格压缩模块1302:
该模块1302的输入是基础网格,输出是基础网格码流和重建的基础网格。在该编码框架中,基础网格压缩模块1302具有灵活性,即该模块使用的基础网格编码器是可以替换的,编码端只需要指定使用的基础网格编码器的标识符,以供解码端使用对应的基础网格解码器进行解码。下面介绍一种可用的基础网格编码器Draco。
Draco压缩静态网格的主要思路是以连接关系驱动的网格压缩,其根据特定的方式遍历网格的所有面,为每个面按特定的规则进行标记,将遍历所得的所有面的标记进行编码,即对网格连接关系进行了编码。随后按照遍历连接关系的顺序编码所有顶点坐标以及与顶点关联的属性信息。其编码框架如图16所示。
Draco编码网格的主要过程包括:首先对于输入的网格,根据其几何信息生成连接关系,即顶点在三维空间中的连接关系。构建面的连接关系后,选择初始面开始遍历当前网格的所有面,即遍历生成符号,此处遍历生成符号采用了Edgebreaker算法,该算法根据遍历到当前corner时所在三角面的状态将其分为了五种模式,如图17所示。
该五种模式也定义了在遍历到当前面后遍历下一个面的方向。根据以上遍历方式,为当前网格几何信息定义的每个面生成了对应的符号,然后将这些符号进行熵编码,得到当前网格几何信息定义的连接关系的码流。同时,遍历每个面也得到了遍历对应顶点的顺序,将该顶点顺序传递给几何信息编码器,将其按照遍历的顺序重新排列,并按照预定的量化参数进行量化,然后对其进行预测,预测采用平行四边形预测方法,如图18所示。预测方式包括单平行四边形预测(图18(a))、多平行四边形预测(图18(b))以及加权平行四边形预测(图18(c))。最后,对预测得到的几何坐标残差进行熵编码。
对于属性信息即纹理坐标,其同样存在连接关系,在遍历属性信息的连接关系时,比较属性信息的连接关系与几何信息连接关系的差异,将两者之间的差异,也称为边界信息进行编码。与几何信息的编码类似,得到属性信息遍历的顺序后,按照同样的方式对属性信息进行量化、预测、熵编码得到属性信息编码码流。最后,将各部分码流混合得到最终的编码码流。
(3)网格清理模块1303:
网格清理模块1303,输入是重建的基础网格,输出是清理后的基础网格,该模块1303用于去除基础网格因编码等过程产生的重复点,保证细分变形模块1304能正常工作,其包含两个模块,几何顶点去重以及退化面去除,详细说明见解码端相同过程。
(4)细分变形模块1304:
细分变形模块1304的基本思想如图19所示,相同的概念应用于输入3D网格以生成位移。在图19中,输入的2D曲线(由2D折线表示),称为“原始”曲线,首先进行下采样以生成基本曲线/折线,称为“简化”曲线。然后将细分方案应用于简化得到的多段线以生成“细分”曲线。随后对细分的多段线进行变形,以获得更好的原始曲线近似值。即为细分网格的每个顶点计算位移矢量,使位移曲线的形状尽可能接近原始曲线的形状。这些位移矢量就是该模块输出的位移信息。
该步骤将参数化后的网格作为输入,该步首先将输入网格进行细分,细分方案可以任意选取,一种可能的方案为中点细分方案,它在每次细分迭代中将每个三角形细分为四个子三角形,如图20所示。在每条边的中间引入新的顶点,几何信息与属性信息的细分是独立进行的,因为几何信息与属性信息的连接关系通常是不同的。
对于细分后的网格(即细分网格),寻找其每个点在原始输入网格上的最近邻点(包括原始网格面上的点),可以通过kdTree等数据结构加速查找。通过计算细分网格上的每个顶点和其在原始输入网格上的最近邻点几何坐标之间的距离得到细分网格每个顶点的几何坐标的位移。该模块可以得到基础网格以及对应的细分变形后的网格(即变形网格)。
(5)位移编码模块1305:
基础网格压缩模块1302对基础网格进行压缩后并进行重建,利用重建的基础网格进行细分,得到细分网格,根据原始网格对细分网格进行变形,得到变形网格,确定细分网格和变形网格之间的
相应的顶点的位移。
位移编码的方式可以有多种:一种方式可以考虑转换位移所在的坐标系,即将每个顶点的位移的坐标系转换到以该位移对应的顶点的法向量及与法向量相切的两个分量构建的坐标系中。然后对位移进行变换,如小波变换等。将变换后的系数进行量化,并按照扫描的顺序排列到图像中,对图像应用视频编码。此外,也可以对生成或处理后的位移直接使用熵编码进行编码。
(6)变形网格重建模块1306:
由于位移编码阶段量化等过程使位移产生了一定的损失,因此需要在编码端重建位移从而与解码端保持一致。获取重建的位移后,将重建的基础网格进行细分,得到细分网格,并根据相应的位移对细分网格进行变形,得到重建的细分变形后的网格(即重建的细分网格)。
(7)纹理图转换模块1307及纹理图压缩模块1308:
纹理图转换模块1307首先根据输入的原始网格、输入的原始纹理图以及细分变形后的网格(即重建的变形网格)进行纹理图转换,如图21所示。
纹理图转换的步骤如下a)至d):
a)计算待生成纹理图上每个像素的纹理坐标,如图21中像素A(i,j)对应的纹理坐标为P(u,v);
b)判断该纹理坐标是否在细分变形网格参数化后的某个三角面内。;
c)如果该纹理坐标不属于任何一个三角面,则将该像素标记为空像素,之后可以用填充算法进行填补;
d)如果该纹理坐标属于一个三角面,则
●将该像素标记为已填充;
●根据该纹理坐标计算其在当前三角面中的重心坐标;
●根据该重心坐标以及对应的三角面,将二维的纹理坐标映射到三维的几何坐标,即映射到该纹理坐标对应的细分变形网格上的点,如图21中的M(x,y,z)所示;
●在输入的原始网格上寻找距该三维坐标最近的点,如图21中M'(x,y,z)所示;
●将该三维坐标根据其所在三角面计算其重心坐标并将其映射到二维,计算其纹理坐标,即P'(u',v');
●通过该纹理坐标在输入的原始纹理图上进行采样,得到对应像素位置的值A'(i',j')(参见图21)。
●将该值赋值给要生成的纹理图上的对应像素A(i,j)(参见图21)。
对于空像素,可以使用已有的填充算法(如Push-Pull算法)对这些空像素进行填充。
解码端:
(1)基础网格解码模块1401:
基础网格解码模块1401选用与编码端对应的基础网格解码器对基础网格码流进行解码,得到重建的基础网格。
(2)网格清理模块1402及细分模块1406:
网格清理模块1402的输入为解码得到的基础网格,输出为清理后的基础网格。该步骤用于对解码得到的基础网格去除重复顶点以及退化面,重复顶点即几何坐标相同的顶点,退化面为面积为0的三角面。该模块是为了保证解码端用于细分的网格与编码端细分变形模块1304的输入网格相同。网格清理步骤不对纹理坐标进行处理。下面详细介绍网格清理的过程,主要分为两部分,几何顶点去重以及退化面去除。
几何顶点去重:
几何顶点去重模块的输入为解码基础网格的几何坐标以及对应的连接关系,即decBaseMesh.pointInput以及decBaseMesh.triangleInput,包括相应的几何顶点数量pointCount以及三角面数量triangleCount。输出为去重后的几何坐标以及更新索引后的连接关系,即decBaseMesh.pointOutput以及decBaseMesh.triangleOutput。顶点去重过程如下所示:
退化面去除:
退化面去除模块的输入为顶点去重后的网格decBaseMesh,输出为去除退化面后的网格
cleanMesh。其过程如下所示:
网格清理完成后,细分模块1406按照编码端的细分次数,执行与编码端相同的细分步骤(无变形),通过指示的插值方式得到细分后的基础网格。该网格几何顶点加上后续解码得到的位移即可得到解码端重建的变形网格。
(3)位移解码及重建(即位移解码模块1403和位移重建模块1404):
位移码流通过位移解码器(即位移解码模块1403)进行解码。若编码端通过视频编码的方式压缩位移,则解码端通过相应的视频解码器进行解码,并根据排列方案将其从二维图像中按照对应的顺序恢复出来。再通过位移重建模块1404对位移解码模块1403输出的信息执行反变换、反量化等操作使其恢复出与编码端一致的位移,即重建的位移信息。如采用熵编码的方式,则直接对其进行熵解码,再进行后续的反变换、反量化等重建步骤。
(4)变形网格重建模块1405:
变形网格重建模块1405用于将细分后的基础网格(即细分网格)的每个顶点按顺序加上重建的位移,得到重建的变形网格,即解码端最终输出的网格(也即重建网格)。
(5)纹理图解码模块1407:
纹理图解码模块1407负责将纹理图码流解码,纹理图解码模块1407采用视频解码器进行解码。对其进行可选的颜色空间转换得到与编码端输入纹理图一致的图像格式,得到最终解码输出的纹理图。
可以理解,在本申请实施例中:
(1)提出了一种基于细分变形的三维网格编解码框架,对重建的基础网格进行细分变形;
(2)可在网格参数化模块前应用量化/反量化模块,使得网格参数化模块输入与重建基础网格相同。
(3)解码端基础网格在细分前进行网格清理,包括几何顶点去重以及退化面去除。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等;或者,将不同实施例中步骤组合为新的技术方案。
基于前述的实施例,本申请实施例提供一种解码装置,应用于解码器,图22为本申请实施例提供的解码装置的结构示意图,如图22所示,解码装置220包括:
解码模块2201,配置成解码码流,确定重建的基础网格;
网格清理模块2202,配置成对所述重建的基础网格进行网格清理,确定第一基础网格;
细分模块2203,配置成对所述第一基础网格进行细分,确定第二基础网格;
重建模块2204,配置成根据所述第二基础网格,确定重建网格。
在一些实施例中,解码模块2201,还配置成解码码流,确定重建的位移信息。
在一些实施例中,所述根据所述第二基础网格,确定重建网格,包括:根据所述第二基础网格和所述重建的位移信息,确定重建网格。
在一些实施例中,解码模块2201,还配置成解码码流,确定重建的纹理图。
在一些实施例中,所述对所述重建的基础网格进行网格清理,包括:去除所述重建的基础网格的重复顶点和/或退化面;其中,所述重复顶点是指与当前顶点的距离小于或等于第一阈值的顶点;所述退化面是指面积小于或等于第二阈值的网格面。
在一些实施例中,所述重建的基础网格包括所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系。
在一些实施例中,所述去除所述重建的基础网格的重复顶点,包括:根据所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系,去除所述重建的基础网格的重复顶点,确定第三基础网格。
进一步地,在一些实施例中,所述根据所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系,去除所述重建的基础网格的重复顶点,确定第三基础网格,包括:根据所述重建的基础网格的顶点的几何坐标,去除所述重建的基础网格中的重复顶点;根据所述重建的基础网格的顶点的连接关系,对去除重复顶点后的基础网格的连接关系进行更新,得到所述第三基础网格。
在一些实施例中,所述第一阈值等于0,所述重复顶点是指与当前顶点的几何坐标相同的顶点。
在一些实施例中,去除所述重建的基础网格的退化面,包括:对所述第三基础网格进行退化面的去除。
在一些实施例中,所述第二阈值等于0。
本申请实施例提供一种编码装置,应用于编码器,图23为本申请实施例提供的编码装置的结构示意图,如图23所示,编码装置230包括:
基础网格生成模块2301,配置成对当前图像的原始网格进行处理,得到基础网格;其中,所述基础网格的顶点数小于所述原始网格的顶点数;
第一编码模块2302,配置成根据所述基础网格生成码流;
网格清理模块2303,配置成对所述基础网格进行网格清理,确定第一基础网格;
细分模块2304,配置成对所述第一基础网格进行细分,确定第二基础网格;
第二编码模块2305,配置成根据所述第二基础网格,生成码流。
在一些实施例中,所述根据所述第二基础网格,生成码流,包括:根据所述原始网格对所述第二基础网格进行变形,得到变形网格(deformed mesh);确定所述变形网格与所述第二基础网格之间的位移信息;根据所述位移信息生成码流。
在一些实施例中,对所述基础网格进行网格清理,确定第一基础网格,包括:解码所述基础网格的码流,确定重建的基础网格;对所述重建的基础网格进行网格清理,确定第一基础网格。
在一些实施例中,所述对所述重建的基础网格进行网格清理,包括:去除所述重建的基础网格的重复顶点和/或退化面;其中,所述重复顶点是指与当前顶点的距离小于或等于第一阈值的顶点;所述退化面是指面积小于或等于第二阈值的网格面。
在一些实施例中,所述重建的基础网格包括所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系。
在一些实施例中,所述去除所述重建的基础网格的重复顶点,包括:根据所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系,去除所述重建的基础网格的重复顶点,确定第三基础网格。
进一步地,在一些实施例中,所述根据所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系,去除所述重建的基础网格的重复顶点,确定第三基础网格,包括:根据所述重建的基础网格的顶点的几何坐标,去除所述重建的基础网格中的重复顶点;根据所述重建的
基础网格的顶点的连接关系,对去除重复顶点后的基础网格的连接关系进行更新,得到所述第三基础网格。
在一些实施例中,所述第一阈值等于0,所述重复顶点是指与当前顶点的几何坐标相同的顶点。
在一些实施例中,去除所述重建的基础网格的退化面,包括:对所述第三基础网格进行退化面的去除。
在一些实施例中,所述第二阈值等于0。
在一些实施例中,所述对当前图像的原始网格进行处理,得到基础网格,包括:对所述原始网格进行网格简化,得到简化网格;对所述简化网格进行量化,得到量化后的网格;对所述量化后的网格进行反量化,得到反量化后的网格;根据所述反量化后的网格,确定所述基础网格。
在一些实施例中,所述根据所述反量化后的网格,确定所述基础网格,包括:对所述反量化后的网格进行网格参数化,得到所述基础网格。
在一些实施例中,编码装置230还包括变形网格重建模块、纹理图转换模块和纹理图压缩模块;其中,第二编码模块2305,还配置成解码码流,确定重建的位移信息;变形网格重建模块,配置成根据重建的基础网格和重建的位移信息,确定重建网格;纹理图转换模块,配置成根据所述原始网格和所述重建网格,对原始纹理图进行纹理图转换,得到转换后的纹理图;纹理图压缩模块,配置成根据所述转换后的纹理图生成码流。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例所述的装置对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。也可以采用软件和硬件结合的形式实现。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如编码器侧的编码方法、或者实现如解码器侧的解码方法。
本申请实施例提供一种解码器,如图24所示,解码器240包括:第一通信接口2401、第一存储器2402和第一处理器2403;各个组件通过第一总线系统2404耦合在一起。可理解,第一总线系统2404用于实现这些组件之间的连接通信。第一总线系统2404除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图24中将各种总线都标为第一总线系统2404。其中,
第一通信接口2401,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第一存储器2402,用于存储能够在第一处理器2403上运行的计算机程序;
第一处理器2403,用于在运行所述计算机程序时,执行本申请实施例所述的解码方法。
可以理解,本申请实施例中的第一存储器2402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的第一存储器2402旨在包括但不限于这些和任意其它适合类型的存储器。
而第一处理器2403可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器2403中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器2403可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器2402,第一处理器2403读取第一存储器2402中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,第一处理器2403还配置为在运行所述计算机程序时,执行前述任一解码方法实施例。
本申请实施提供一种编码器,如图25所示,编码器250包括:第二通信接口2501、第二存储器2502和第二处理器2503;各个组件通过第二总线系器2504耦合在一起。可理解,第二总线系器2504用于实现这些组件之间的连接通信。第二总线系器2504除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图25中将各种总线都标为第二总线系器2504。其中,
第二通信接口2501,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第二存储器2502,用于存储能够在第二处理器2503上运行的计算机程序;
第二处理器2503,用于在运行所述计算机程序时,执行:
根据第一图像中的样本之间的差值对所述样本进行排序处理,得到第一列表;
根据所述样本在所述第一列表中的索引序号和第一分量的比特位深,得到第二图像中与所述样本具有相同位置坐标的第一分量的样本值。
可选地,作为另一个实施例,第二处理器2503还配置为在运行所述计算机程序时,执行前述编码方法实施例。
可以理解,第二存储器2502与第一存储器2402的硬件功能类似,第二处理器2503与第一处理器2403的硬件功能类似;这里不再详述。
本申请实施例提供一种电子设备,包括:处理器,适于执行计算机程序;计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现本申请实施例所述的编码方法和/或解码方法。该电子设备可以是各种类型的具有网格编码和/或网格解码能力的设备,例如,该电子设备为手机、平板电脑、笔记本电脑、个人计算机、电视机、投影设备或监控设备等。
本申请实施例还提供了一种码流,所述码流是通过上述实施例描述的编码方法生成的。
本申请实施例还提供了一种计算机程序产品,包括计算机程序指令。
可选的,该计算机程序产品可应用于本申请实施例中的编码器或解码器,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中由编码器或解码器实现的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序。
可选的,该计算机程序可应用于本申请实施例中的编码器或解码器,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中由编码器或解码器实现的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,
能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
这里需要指出的是:以上编码器、解码器、码流、计算机程序产品、计算机程序、存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质、存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如对象A和/或对象B,可以表示:单独存在对象A,同时存在对象A和对象B,单独存在对象B这三种情况。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网格单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (31)
- 一种解码方法,所述方法应用于解码器,所述方法包括:解码码流,确定重建的基础网格;对所述重建的基础网格进行网格清理,确定第一基础网格;对所述第一基础网格进行细分,确定第二基础网格;根据所述第二基础网格,确定重建网格。
- 根据权利要求1所述的方法,其中,所述方法还包括:解码码流,确定重建的位移信息。
- 根据权利要求2所述的方法,其中,所述根据所述第二基础网格,确定重建网格,包括:根据所述第二基础网格和所述重建的位移信息,确定重建网格。
- 根据权利要求1所述的方法,其中,所述方法还包括:解码码流,确定重建的纹理图。
- 根据权利要求1-4任一项所述的方法,其中,所述对所述重建的基础网格进行网格清理,包括:去除所述重建的基础网格的重复顶点和/或退化面;其中,所述重复顶点是指与当前顶点的距离小于或等于第一阈值的顶点;所述退化面是指面积小于或等于第二阈值的网格面。
- 根据权利要求5所述的方法,其中,所述重建的基础网格包括所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系。
- 根据权利要求6所述的方法,其中,去除所述重建的基础网格的重复顶点,包括:根据所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系,去除所述重建的基础网格的重复顶点,确定第三基础网格。
- 根据权利要求7所述的方法,其中,根据所述重建的基础网格的顶点的几何坐标,去除所述重建的基础网格中的重复顶点;根据所述重建的基础网格的顶点的连接关系,对去除重复顶点后的基础网格的连接关系进行更新,得到所述第三基础网格。
- 根据权利要求5-8任一项所述的方法,其中,所述第一阈值等于0,所述重复顶点是指与当前顶点的几何坐标相同的顶点。
- 根据权利要求8任一项所述的方法,其中,去除所述重建的基础网格的退化面,包括:对所述第三基础网格进行退化面的去除。
- 根据权利要求5-10任一项所述的方法,其中,所述第二阈值等于0。
- 一种编码方法,所述方法应用于编码器,所述方法包括:对当前图像的原始网格(original mesh)进行处理,得到基础网格(base mesh);其中,所述基础网格的顶点数小于所述原始网格的顶点数;根据所述基础网格生成码流;对所述基础网格进行网格清理(mesh clean),确定第一基础网格;对所述第一基础网格进行细分,确定第二基础网格;根据所述第二基础网格,生成码流。
- 根据权利要求12所述的方法,其中,所述根据所述第二基础网格,生成码流,包括:根据所述原始网格对所述第二基础网格进行变形,得到变形网格(deformed mesh);确定所述变形网格与所述第二基础网格之间的位移信息;根据所述位移信息生成码流。
- 根据权利要求12所述的方法,其中,对所述基础网格进行网格清理,确定第一基础网格,包括:解码所述基础网格的码流,确定重建的基础网格;对所述重建的基础网格进行网格清理,确定第一基础网格。
- 根据权利要求12所述的方法,其中,所述对所述重建的基础网格进行网格清理,包括:去除所述重建的基础网格的重复顶点和/或退化面;其中,所述重复顶点是指与当前顶点的距离小于或等于第一阈值的顶点;所述退化面是指面积小于或等于第二阈值的网格面。
- 根据权利要求15所述的方法,其中,所述重建的基础网格包括所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系。
- 根据权利要求16所述的方法,其中,去除所述重建的基础网格的重复顶点,包括:根据所述重建的基础网格的顶点的几何坐标和所述重建的基础网格的顶点的连接关系,去除所述重建的基础网格的重复顶点,确定第三基础网格。
- 根据权利要求17所述的方法,其中,根据所述重建的基础网格的顶点的几何坐标,去除所述重建的基础网格中的重复顶点;根据所述重建的基础网格的顶点的连接关系,对去除重复顶点后的基础网格的连接关系进行更新,得到所述第三基础网格。
- 根据权利要求15-18任一项所述的方法,其中,所述第一阈值等于0,所述重复顶点是指与当前顶点的几何坐标相同的顶点。
- 根据权利要求18所述的方法,其中,去除所述重建的基础网格的退化面,包括:对所述第三基础网格进行退化面的去除。
- 根据权利要求15-20任一项所述的方法,其中,所述第二阈值等于0。
- 根据权利要求12所述的方法,其中,所述对当前图像的原始网格进行处理,得到基础网格,包括:对所述原始网格进行网格简化,得到简化网格;对所述简化网格进行量化,得到量化后的网格;对所述量化后的网格进行反量化,得到反量化后的网格;根据所述反量化后的网格,确定所述基础网格。
- 根据权利要求22所述的方法,其中,所述根据所述反量化后的网格,确定所述基础网格,包括:对所述反量化后的网格进行网格参数化,得到所述基础网格。
- 根据权利要求14所述的方法,其中,所述方法还包括:解码码流,确定重建的位移信息;根据重建的基础网格和重建的位移信息,确定重建网格;根据所述原始网格和所述重建网格,对原始纹理图进行纹理图转换,得到转换后的纹理图;根据所述转换后的纹理图生成码流。
- 一种解码装置,应用于解码器,所述装置包括:解码模块,配置成解码码流,确定重建的基础网格;网格清理模块,配置成对所述重建的基础网格进行网格清理,确定第一基础网格;细分模块,配置成对所述第一基础网格进行细分,确定第二基础网格;重建模块,配置成根据所述第二基础网格,确定重建网格。
- 一种解码器,包括第一存储器和第一处理器;其中,所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;所述第一处理器,用于在运行所述计算机程序时,执行如权利要求1至11任一项所述的方法。
- 一种编码装置,应用于编码器,所述装置包括:基础网格生成模块,配置成对当前图像的原始网格进行处理,得到基础网格;其中,所述基础网格的顶点数小于所述原始网格的顶点数;第一编码模块,配置成根据所述基础网格生成码流;网格清理模块,配置成对所述基础网格进行网格清理,确定第一基础网格;细分模块,配置成对所述第一基础网格进行细分,确定第二基础网格;第二编码模块,配置成根据所述第二基础网格,生成码流。
- 一种编码器,包括第二存储器和第二处理器;其中,所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;所述第二处理器,用于在运行所述计算机程序时,执行如权利要求12至24任一项所述的方法。
- 一种码流,所述码流是通过权利要求12至24任一项编码方法而得到的。
- 一种电子设备,包括:处理器,适于执行计算机程序;计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至11中任一项所述的方法,或者所述计算机程序被所述处理器执 行时,实现如权利要求12至24中任一项所述的方法。
- 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1至11任一项所述的方法、或者实现如权利要求12至24任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2024/072404 WO2025152005A1 (zh) | 2024-01-15 | 2024-01-15 | 编解码方法及装置、编解码器、码流、设备、存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2024/072404 WO2025152005A1 (zh) | 2024-01-15 | 2024-01-15 | 编解码方法及装置、编解码器、码流、设备、存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025152005A1 true WO2025152005A1 (zh) | 2025-07-24 |
Family
ID=96470579
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2024/072404 Pending WO2025152005A1 (zh) | 2024-01-15 | 2024-01-15 | 编解码方法及装置、编解码器、码流、设备、存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025152005A1 (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113470179A (zh) * | 2020-03-15 | 2021-10-01 | 英特尔公司 | 用于移位的网格压缩的装置和方法 |
| WO2023172457A1 (en) * | 2022-03-11 | 2023-09-14 | Apple Inc. | Remeshing for efficient compression |
| WO2023172509A1 (en) * | 2022-03-11 | 2023-09-14 | Apple Inc. | V-mesh bitstream structure including syntax elements and decoding process with reconstruction |
| CN117044209A (zh) * | 2021-04-02 | 2023-11-10 | 现代自动车株式会社 | 用于动态网格编码的装置和方法 |
-
2024
- 2024-01-15 WO PCT/CN2024/072404 patent/WO2025152005A1/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113470179A (zh) * | 2020-03-15 | 2021-10-01 | 英特尔公司 | 用于移位的网格压缩的装置和方法 |
| CN117044209A (zh) * | 2021-04-02 | 2023-11-10 | 现代自动车株式会社 | 用于动态网格编码的装置和方法 |
| WO2023172457A1 (en) * | 2022-03-11 | 2023-09-14 | Apple Inc. | Remeshing for efficient compression |
| WO2023172509A1 (en) * | 2022-03-11 | 2023-09-14 | Apple Inc. | V-mesh bitstream structure including syntax elements and decoding process with reconstruction |
Non-Patent Citations (1)
| Title |
|---|
| MAMMOU KHALED; KIM JUNGSUN; TOURAPIS ALEXIS M.; PODBORSKI DIMITRI; FLYNN DAVID: "Video and Subdivision based Mesh Coding", 2022 10TH EUROPEAN WORKSHOP ON VISUAL INFORMATION PROCESSING (EUVIP), IEEE, 11 September 2022 (2022-09-11), pages 1 - 6, XP034212156, DOI: 10.1109/EUVIP53989.2022.9922888 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12217465B2 (en) | Method and apparatus for point cloud coding | |
| CN116997935A (zh) | 用于网格压缩的块压缩 | |
| JP7537033B2 (ja) | メッシュ展開のための方法、装置、およびコンピュータプログラム | |
| JP4350504B2 (ja) | メッシュを導入した画像の符号化及び復号のための方法及び装置とそれに対応するプログラム | |
| CN117242480B (zh) | 使用几何信息和语义信息的曼哈顿布局估计 | |
| JP7589904B2 (ja) | メッシュ圧縮のためのパッチ時間的位置合わせの符号化 | |
| WO2025152607A1 (zh) | 一种三维网格编解码方法、及其装置 | |
| WO2025002021A1 (zh) | 三维网格帧间预测编码方法、解码方法、装置及电子设备 | |
| JP7529923B2 (ja) | 非マニホールドメッシュにおける境界ループの検出のための方法、装置、およびコンピュータプログラム | |
| CN120077411A (zh) | 用于多边形网格压缩的改善的基于双度的编码算法 | |
| WO2025152005A1 (zh) | 编解码方法及装置、编解码器、码流、设备、存储介质 | |
| WO2024193487A1 (zh) | 三维网格位移信息编码方法、解码方法、装置及终端 | |
| WO2024148573A1 (zh) | 编解码方法、编码器、解码器以及存储介质 | |
| WO2025152015A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025151992A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024255912A1 (en) | Encoding method, decoding method, bitstream, encoder, decoder, medium and program product | |
| WO2024213067A1 (en) | Decoding method, encoding method, bitstream, decoder, encoder and storage medium | |
| Dvořák et al. | Survey of Inter‐Prediction Methods for Time‐Varying Mesh Compression | |
| WO2025067513A1 (en) | Encoding and decoding methods, encoder, decoder and storage medium | |
| WO2025152014A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| US20240282011A1 (en) | Fix-point implementation of mesh codec | |
| WO2025076790A1 (zh) | 编解码方法及装置、编解码器、码流、存储介质 | |
| WO2025000342A1 (zh) | 编解码方法、编码器、解码器以及存储介质 | |
| WO2024187380A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024174092A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24917633 Country of ref document: EP Kind code of ref document: A1 |