WO2025152176A1 - 编解码方法、编解码器、码流以及存储介质 - Google Patents
编解码方法、编解码器、码流以及存储介质Info
- Publication number
- WO2025152176A1 WO2025152176A1 PCT/CN2024/073342 CN2024073342W WO2025152176A1 WO 2025152176 A1 WO2025152176 A1 WO 2025152176A1 CN 2024073342 W CN2024073342 W CN 2024073342W WO 2025152176 A1 WO2025152176 A1 WO 2025152176A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- symbol
- mapping relationship
- symbols
- binary value
- binary
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Definitions
- the present application relates to the field of three-dimensional mesh coding and decoding technology, and in particular to a coding and decoding method, a codec, a bit stream and a storage medium.
- V-DMC Video dynamic mesh coding
- the embodiments of the present application provide a coding and decoding method, a codec, a bit stream and a storage medium.
- the following introduces various aspects involved in the present application.
- a decoding method is provided, which is applied to a decoder, comprising: performing a debinarization operation on binary values in a code stream to determine a symbol string, where the symbol string is used to represent connection information of a three-dimensional grid; and reconstructing the three-dimensional grid according to the symbol string.
- a coding method is provided, which is applied to an encoder, including: performing a binarization operation on a symbol string to determine a binary value, wherein the symbol string is used to represent connection information of a three-dimensional grid; and encoding the binary value.
- a decoder comprising: a first decoding unit configured to perform a debinarization operation on binary values in a code stream to determine a symbol string, wherein the symbol string is used to represent connection information of a three-dimensional grid; and a second decoding unit configured to reconstruct the three-dimensional grid based on the symbol string.
- a decoder comprising: a memory for storing a computer program; and a processor for executing the method according to the first aspect when running the computer program.
- an encoder comprising: a first encoding unit, configured to perform a binarization operation on a symbol string to determine a binary value, wherein the symbol string is used to represent connection information of a three-dimensional grid; and a second encoding unit, configured to encode the binary value.
- an encoder comprising: a memory for storing a computer program; and a processor for executing the method of the second aspect when running the computer program.
- a computer-readable storage medium stores a computer program, and when the computer program is executed, the method of the first aspect or the second aspect is implemented.
- a non-volatile computer-readable storage medium for storing a bit stream, wherein the bit stream is generated by an encoding method using an encoder, or the bit stream is decoded by a decoding method using a decoder, wherein the decoding method is the method of the first aspect, and the encoding method is the method of the second aspect.
- a code stream comprising a code stream generated according to the method of the second aspect.
- connection information of the three-dimensional grid is represented based on a symbol string, and if the number of bits used to represent the binary value of the symbol string is too large, the coding efficiency of the connection information will be limited.
- the embodiment of the present application is based on the symbol string characteristics (the symbol encoded after the symbol C is not the symbol L or the symbol E), or uses syntax elements to indicate some symbols to reduce the number of bits of the binary value corresponding to the symbol string, thereby helping to improve the coding efficiency of the connection information.
- FIG. 1A is a schematic diagram of a three-dimensional grid image.
- FIG. 1B is a partial enlarged view of the three-dimensional grid image.
- step S1010 includes: determining whether the current symbol is the first symbol; then, if the current symbol is not the first symbol, binarizing the current symbol according to a fifth mapping relationship between symbols and binary values.
- the fifth mapping relationship does not include a mapping relationship between the first symbol and the binary value.
- the second identification information may include multiple identification information
- the first symbol may include multiple symbols, that is, the first symbol may be multiple symbols in ⁇ C, L, E, R, S ⁇ , and the multiple identification information respectively indicates whether it is a corresponding symbol.
- the first symbol may be symbol C and symbol R, and the multiple identification information respectively indicates whether the current symbol is symbol C or symbol R.
- the binary value corresponding to symbol S may be 00
- the binary value corresponding to symbol L may be 01
- the binary value corresponding to symbol E may be 11.
- the number of bits of the binary value of the symbol in the fifth mapping relationship may be 1 or 2.
- the binary value corresponding to symbol S may be 0, the binary value corresponding to symbol L may be 10, and the binary value corresponding to symbol E may be 11.
- the binary value corresponding to symbol S may be 1
- the binary value corresponding to symbol L may be 00
- the binary value corresponding to symbol E may be 01.
- step S1010 includes: determining whether the current symbol is the second symbol according to the number of bits of the binary value; and then, if the current symbol is not the second symbol, performing a binarization operation on the current symbol according to a sixth mapping relationship between symbols and binary values.
- the sixth mapping relationship does not include a mapping relationship between the second symbol and the binary value.
- the number of bits of the binary values corresponding to the symbols in the sixth mapping relationship is less than or equal to 4.
- the number of bits of the binary values corresponding to the symbols in the sixth mapping relationship may include 3 and 4.
- the second symbol may include multiple symbols, and the number of bits of the binary values corresponding to the multiple symbols is less than or equal to 2.
- the number of bits of the binary value corresponding to the second symbol may include 1 and 2.
- the second symbol includes symbols C and R, wherein the binary value corresponding to symbol C is 0 and the binary value corresponding to symbol R is 10, then the binary value corresponding to symbol S may be 110, the binary value corresponding to symbol L may be 1110, and the binary value corresponding to symbol E may be 1111.
- the above schemes 1, 2, and 3 may be used in combination, or schemes 1, 2, and 3 may be used separately, and the embodiments of the present application do not specifically limit this.
- connection information of the three-dimensional mesh is represented based on a symbol string. If the number of bits used to represent the binary value of the symbol string is too large, the encoding efficiency of the connection information will be limited.
- the embodiments of the present application utilize the characteristics of the CLERS symbol string to design a binarization/debinarization method with higher coding and decoding efficiency for the coding and decoding of the connection information of the three-dimensional grid.
- a syntax element of whether it is a specific symbol (or whether it is not a specific symbol) is introduced, and the binarization/debinarization method of the remaining symbols is redesigned accordingly to improve the entropy coding/entropy decoding efficiency of the three-dimensional grid connection information.
- the following are three examples provided by the present application.
- the binarization method of the five symbols can be improved as follows:
- the binarization/debinarization algorithm for the current symbol is one of the following five symbols: C: one binary bit; S: three binary bits; R: three binary bits; L: three binary bits; E: three binary bits.
- the binarization/debinarization algorithm for the current symbol is one of the following three symbols: C: one binary bit; S: two binary bits; R: two binary bits. For example: C:0 S:10 R:11
- symbol C is not necessarily the most frequently appearing symbol.
- the shortest binary bit is still assigned to it and long binary bits are assigned to other symbols, it is obviously not the best binarization/debinarization scheme. Therefore, the encoding and decoding efficiency can be improved by adjusting the ownership of the shortest binary bit symbol.
- the binarization method is:
- the highest frequency symbol is C:0
- the highest frequency symbol is L:110
- 0 indicates that the highest frequency symbol is C
- 1 indicates that the highest frequency symbol is L
- 2 indicates that the highest frequency symbol is E
- 3 indicates that the highest frequency symbol is R
- 4 indicates that the highest frequency symbol is S.
- the binarization method is:
- the highest frequency symbol is S:100
- the highest frequency symbol is R:011
- the highest frequency symbol is L:001
- Whether the encoding is a symbol C syntax element (e.g., a value of 0 indicates that it is a symbol C, a value of 1 indicates that it is not a symbol C; or a value of 1 indicates that it is a symbol C, a value of 0 indicates that it is not a symbol C). If the current symbol is not C, execute step b.
- a symbol C syntax element e.g., a value of 0 indicates that it is a symbol C, a value of 1 indicates that it is not a symbol C; or a value of 1 indicates that it is a symbol C, a value of 0 indicates that it is not a symbol C.
- step c Whether the encoding is a symbol R syntax element (e.g., a value of 0 indicates that it is a symbol R, and a value of 1 indicates that it is not a symbol R; or a value of 1 indicates that it is a symbol R, and a value of 0 indicates that it is not a symbol R). If the current symbol is not R, execute step c;
- each "1/2 binary bits" can only represent a unique symbol.
- each "2 binary bits" can only represent a unique symbol.
- Each "1/2 binary bits" can only represent a unique symbol.
- one of the remaining three symbols is represented by 1 binary bit, and two are represented by 2 binary bits:
- the first encoding unit 1310 is configured to perform a binarization operation on a symbol string to determine a binary value, wherein the symbol string is used to represent connection information of a three-dimensional grid.
- the second encoding unit 1320 is configured to encode the binary value.
- the encoder 1300 also includes a third encoding unit 1330, configured to encode the previous symbol of the current symbol in the symbol string; if the previous symbol is symbol C, the current symbol is binarized according to a first mapping relationship between symbols and binary values, and the first mapping relationship does not include a mapping relationship between symbol L and/or symbol E and binary values.
- a third encoding unit 1330 configured to encode the previous symbol of the current symbol in the symbol string; if the previous symbol is symbol C, the current symbol is binarized according to a first mapping relationship between symbols and binary values, and the first mapping relationship does not include a mapping relationship between symbol L and/or symbol E and binary values.
- the number of bits of the binary values corresponding to different symbols are not exactly the same.
- the first mapping relationship includes a mapping relationship between symbol C, symbol R, and symbol S and binary values, and the first mapping relationship satisfies one of the following: the binary value corresponding to symbol C is 0, the binary value corresponding to symbol R is 10, and the binary value corresponding to symbol S is 11; or, the binary value corresponding to symbol C is 0, the binary value corresponding to symbol R is 11, and the binary value corresponding to symbol S is 10.
- the encoder 1300 further includes a fifth encoding unit 1350 configured to write first identification information into a bitstream, where the first identification information is used to indicate the target symbol.
- the fifth encoding unit 1350 is configured to perform a binarization operation on the first identification information according to a third mapping relationship between symbols and binary values, in which the number of bits of the binary values corresponding to different symbols is the same.
- the number of bits of the binary values corresponding to different symbols in the third mapping relationship is 3.
- the encoder 1300 also includes a sixth encoding unit 1360, configured to determine whether the current symbol is a first symbol; if the current symbol is not the first symbol, binarizing the current symbol according to a fifth mapping relationship between symbols and binary values, and the fifth mapping relationship does not include a mapping relationship between the first symbol and the binary value.
- a sixth encoding unit 1360 configured to determine whether the current symbol is a first symbol; if the current symbol is not the first symbol, binarizing the current symbol according to a fifth mapping relationship between symbols and binary values, and the fifth mapping relationship does not include a mapping relationship between the first symbol and the binary value.
- whether the current symbol is the second symbol is determined based on the number of bits of the binary value; if the current symbol is not the second symbol, the current symbol is binarized based on a sixth mapping relationship between symbols and binary values, and the sixth mapping relationship does not include a mapping relationship between the second symbol and the binary value.
- the communication interface 1410 is used to receive and send signals during the process of sending and receiving information with other external network elements;
- Memory 1420 used for storing computer programs
- the embodiments described herein may be implemented by hardware, software, firmware, middleware, microcode, or a combination thereof.
- the processing unit can be implemented in one or more ASICs, DSPs, DSPDs, PLDs, FPGAs, general purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in the present application, or combinations thereof.
- the techniques described in the present application can be implemented by modules (e.g., procedures, functions, etc.) that perform the functions described in the present 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 processor 1430 is further configured to execute the encoding method described in any one of the aforementioned embodiments when running the computer program.
- An embodiment of the present application also provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium for storing a bit stream.
- the bit stream can be generated by an encoding method using an encoder, or the bit stream can be decoded by a decoding method using a decoder, wherein the decoding method can be the decoding method described in any of the preceding embodiments, and the encoding method can be the encoding method described in any of the preceding embodiments.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请实施例提供了一种编解码方法、编解码器、码流以及存储介质。所述解码方法包括:对码流中的二进制值进行反二值化操作,确定符号串,所述符号串用于表示三维网格的连接信息;根据所述符号串,重建所述三维网格。
Description
本申请涉及三维网格编解码技术领域,尤其涉及一种编解码方法、编解码器、码流以及存储介质。
视频动态网格编码(video dynamic mesh coding,V-DMC)需要对三维网格的连接信息进行编码。如何提高连接信息的编码效率,是需要解决的问题。
发明内容
本申请实施例提供一种编解码方法、编解码器、码流以及存储介质。下面对本申请涉及的各个方面进行介绍。
第一方面,提供一种解码方法,应用于解码器,包括:对码流中的二进制值进行反二值化操作,确定符号串,符号串用于表示三维网格的连接信息;根据符号串,重建三维网格。
第二方面,提供一种编码方法,应用于编码器,包括:对符号串进行二值化操作,确定二进制值,符号串用于表示三维网格的连接信息;对二进制值进行编码。
第三方面,提供一种解码器,包括:第一解码单元,配置为对码流中的二进制值进行反二值化操作,确定符号串,符号串用于表示三维网格的连接信息;第二解码单元,配置为根据符号串,重建三维网格。
第四方面,提供一种解码器,解码器包括:存储器,用于存储计算机程序;处理器,用于在运行计算机程序时,执行如第一方面的方法。
第五方面,提供一种编码器,包括:第一编码单元,配置为对符号串进行二值化操作,确定二进制值,符号串用于表示三维网格的连接信息;第二编码单元,配置为对二进制值进行编码。
第六方面,提供一种编码器,编码器包括:存储器,用于存储计算机程序;处理器,用于在运行计算机程序时,执行如第二方面的方法。
第七方面,提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,计算机程序被执行时实现如第一方面或第二方面的方法。
第八方面,提供一种存储比特流的非易失性计算机可读存储介质,比特流通过利用编码器的编码方法而生成,或者,比特流通过利用解码器的解码方法而解码,其中,解码方法为如第一方面的方法、编码方法为如第二方面的方法。
第九方面,提供一种码流,包括根据第二方面的方法生成的码流。
在相关技术中,三维网格的连接信息基于符号串表示,而如果用于表示符号串的二进制值的位数太多,会限制连接信息的编码效率。本申请实施例基于符号串特性(符号C之后编码的符号不为符号L或符号E),或者用语法元素指示部分符号,以减少符号串对应的二进制值的位数,从而有助于提高连接信息的编码效率。
图1A为三维网格图像的示意图。
图1B为三维网格图像的局部放大图。
图2为三维网格的连接方式示意图。
图3A为三维网格图像的示意图。
图3B为网格数据存储格式的示意图。
图3C为三维网格图像的属性图。
图4A为网格预处理流程的示意图。
图4B为移位系数的生成方式的示意图。
图5A为帧内编码方式的示意图。
图5B为帧内解码方式的示意图。
图6A为帧间编码方式的示意图。
图6B为帧间解码方式的示意图。
图7A为顶点的连接方式的一个示意图。
图7B为顶点的连接方式的另一个示意图。
图7C为顶点的连接方式的另一个示意图。
图7D为顶点的连接方式的另一个示意图。
图8为三角形网格的连接信息的示例图。
图9为本申请实施例提供的解码方法的流程示意图。
图10为本申请实施例提供的编码方法的流程示意图。
图11为本申请一实施例提供的解码器的结构示意图。
图12为本申请另一实施例提供的解码器的结构示意图。
图13为本申请一实施例提供的编码器的结构示意图。
图14为本申请另一实施例提供的编码器的结构示意图。
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
一般而言,三维动画内容采用基于关键帧的表示方法,即每帧是一个静态网格。不同时刻的静态网格具有相同的拓扑结构和不同的几何结构。但是,基于关键帧表示的三维动态网格的数据量特别大,因此如何能够有效的存储、传输和绘制成为三维动态网格发展所面临的问题。另外针对不同的用户终端(电脑、笔记本、便携式设备、手机)需要支持网格的空间可伸缩性;不同的网络带宽(宽带、窄带、无线)需要支持网格的质量可伸缩性。因此,三维动态网格压缩是一个非常关键的问题。
三维网格是通过空间中的若干个多边形组成的三维物体表面。多边形可以由顶点和边组成。图1A展示了三维网格图像,图1B展示了三维网格图像的局部放大图。从图1A和图1B可以看出,网格表面通常是由闭合的多个多边形构成。
二维图像的像素点分布规则,因此不需要额外记录其几何信息(或称位置信息)。然而,网格中的顶点在三维空间中的分布具有随机性和不规则性,以及多边形的构成方式需要进行额外的记录。因此,针对三维网格,不但需要记录网格中的顶点在空间中的位置,而且需要记录网格中的多边形的连接信息,才能完整地表达一幅网格图像。如图2所示,同样的顶点数目和顶点位置,由于连接方式的不同,所形成的表面也完全不同。
除了以上信息之外,由于三维网格图像通常采用已有的二维图像/视频编码方式进行编码,因此需要将三维网格图像进行从三维空间到二维空间的转化。三维网格编码通常采用UV坐标定义这一转化过程。
与二维图像类似,每一个顶点可能会有对应的属性信息。属性信息通常为RGB颜色值,以反映物体的色彩。对于三维网格图像来说,每一个顶点所对应的属性信息除了颜色以外,还有比较常见的是反射率(reflectance)值,反射率值反映物体的表面材质。三维网格图像的属性信息可以通过二维图像进行存储,其从二维到三维的映射由UV坐标规定。
因此,三维网格数据通常包括三维几何位置信息(x,y,z)、几何位置信息三角面片的连接关系、纹理坐标(u,v)以及纹理坐标的连接关系,以及属性图。图3A为一幅三维网格图像,图3B所示的网格数据存储格式包括三维几何位置信息、纹理坐标和连接信息,图3C为对应的属性图。
目前的三维动态网格压缩方法有基于空间-时间的预测方法,通过消除空间和时间相关性来提高压缩效率;基于主成分分析(principal components analysis,PCA)的技术,在特征向量空间进行投影,使能量集中;基于小波的方法,支持空间可伸缩和质量可伸缩。
图4A为二维曲线预处理流程的示意图。图4B为移位系数的生成示意图。目前在运动图像专家组(moving picture experts group,MPEG)的动态网格编码(dynamic mesh coding)中,在编码端,首先通过预处理生成基础网格和移位系数。三维网格的预处理过程可类比二维曲线预处理过程。在编码端主要分为预处理(pre-processing)和编码(encoding)两部分。首先,可以通过预处理生成基础网格和移位系数。预处理流程包括:首先对原始网格(original mesh)进行下采样,生成顶点数量大幅减少的简化网格(decimated mesh),或称基础网格/基本网格(base mesh)。然后对简化网格进行细分,在简化网格的边上插入新生成的顶点,得到细分网格(subdivided mesh)或称初始网格。最后对于细分网格中
的每个顶点,寻找原始网格中与其距离最近的点,并计算这两个点的移位系数(displacement value)。在经过预处理后,将简化网格和移位系数输入编码器,生成码流。由于只要确定了细分算法和细分迭代次数,细分网格就可以在编解码端自动生成,因此经过预处理之后,原始网格只需表示为简单的基础网格和一系列移位系数,这样可以大大降低数据量,且不影响解码端的重建。
目前的V-DMC编码主要分为两种编码测试条件:帧内编解码和帧间编解码(低时延,目前没有RA的测试环境),下文对这两种编解码方式进行详细的介绍。
图5A为帧内编码的示意图,如图5A所示,在帧内编码器中,可以采用常见的静态网格编码器(static mesh encoder)对简化网格进行编码,生成对应的码流(compressed base mesh bitstream)。接下来,用重构的简化网格更新移位系数(update displacement)。对更新后的移位系数进行小波变换(wavelet transform)和量化(quantization)后得到移位系数。并进行图像打包(image packing)和二维映射后采用高效率视频编码(high efficiency video coding,HEVC)进行编码,生成移位系数的码流(compressed displacements bitstream)。对于属性图(attribute map)编码,首先根据重构的几何信息与原始几何信息间的差异对特征图进行变换(texture transfer),然后将其进行填补(padding)、颜色空间转换(color space conversion)后用视频编码器(video coding)编码形成属性码流(compressed attribute bitstream)。图5B为帧内解码的示意图,在解码端,基础网格码流经过解码之后生成解码基础网格,移位系数经过HEVC解码、反二维映射、反量化、反变换后生成解码移位系数,然后解码基础网格和解码移位系数一起生成重建三维网格几何,属性码流经过HEVC解码之后生成重建属性图。
图6A为帧间编码的示意图,如图6A所示,在编码端,帧间编码器与帧内编码器流程大致相同,由于采用帧间模式,对于基础网格部分,不需要编码其连接信息,只需要编码当前帧的顶点几何坐标与参考帧的顶点几何坐标之间的运动矢量,其余模块与帧内编码一致,并生成相应的运动矢量的码流(compressed motion bitstream)。图6B为帧间解码的示意图,如图6B所示,在解码端,从码流中解码出运动矢量,与参考帧的连接信息结合得到基础网格,其余模块与帧内解码一致。
MPEG DMC的通用测试条件
1)MPEG DMC的测试条件共2种:
条件1:lossless all intra几何无损、属性无损;
条件2:lossy all intra几何有损、属性有损;
条件3:lossy random access几何有损、属性有损。
2)通用测试序列包括Cat1-A,Cat1-B和Cat1-C共五类,均包含几何和颜色属性信息。
接下来对V-DMC的基础网格的连接关系编码进行更为详细的介绍。
在得到基础网格之后,会利用编码器来对基础网格的几何信息进行编码。其中,几何信息主要包括:几何位置信息与几何位置信息的连接关系。整个编码的流程按照:首先完成连接关系的编码,其次基于几何位置的连接关系对点的几何位置信息进行编码。连接信息定义了由点构成面的规则,相同的顶点可以因为不同的连接信息构成完全不一样的表面。示例性地,图7A和图7B均由点0、1、2、3组成,图7A的连接信息为(0,1,2,3),呈现出正方形。图7B的连接信息为(0,2,1,3),呈现出蝶形。图7C和图7D均由点0、1、2、3、4组成。图7C的连接信息为图7D的连接信息为二者的表面呈现不一样的法线方向。对网格的连接关系编码采用的是“EdgebreakerCoding”方案。EdgeBreaker算法定义五个操作符,分别为{C,L,E,R,S},将三角形网格的每个三角形用五个操作符中的一个来表达,从而简化三维网格的连接信息的表达。其中,每个符号表示的含义如下所示:
i.C:与当前顶点连接的三角面片没有一个完成编码;
ii.L:与当前顶点连接的左边的三角面片完成编码;
iii.R:与当前顶点连接的右边的三角面片完成编码;
iv.S:与当前顶点连接的左边和右边的三角面片都没有完成编码;
v.E:与当前顶点连接的左边和右边的三角面片都已经完成编码。
按照一定的顺序,对每个顶点的类型以及顶点的处理顺序进行编码。解码端按照顶点的处理顺序以及顶点的类型来恢复网格的几何连接关系。如图8所示的三角形网格,其连接信息可以表示为:
若上述三角形网格不做任何处理,需要编解码的内容为连接信息中的所有数字。而如果使用EdgeBreaker算法对其进行处理后,图8中三角形网格的连接信息可以表示为一串符号,即(CCRRRSLCRSERRELCRRRCRRRE),最终需要编解码的内容即为这串符号。
对于上述五种符号,采用定长编码时,表达每个符号需要三个二进制位。为了提高编解码效率,可以利用符号C在整个符号串中出现频率较高的特性,仅用一个二进制位表示符号C,剩余的四种符号分别用不同的三个二进制位来表达。作为示例,一种具体的二值化方式如下所示:
C:0
S:100
R:101
L:110
E:111
C:0
S:100
R:101
L:110
E:111
上文详细介绍了基于EdgeBreaker的连接信息的二值化过程。根据上文的介绍可知,在相关技术中,三维网格的连接信息基于符号串表示,而如果用于表示符号串的二进制值的位数太多,会限制连接信息的编码效率。
针对上述问题,本申请实施例提供一种编码方法,包括:对符号串进行二值化操作,确定二进制值,所述符号串用于表示三维网格的连接信息;对所述二进制值进行编码。
本申请实施例还提供一种解码方法,包括:对码流中的二进制值进行反二值化操作,确定符号串,所述符号串用于表示三维网格的连接信息;根据所述符号串,重建所述三维网格。
本申请实施例基于符号串特性(符号C之后编码的符号不为符号L或符号E),或者用语法元素指示部分符号,以减少符号串对应的二进制值的位数,从而有助于提高连接信息的编码效率。
下文将结合附图对本申请实施例提供的解码方法进行详细说明。
图9为本申请实施例提供的解码方法的流程图。图9的方法可以由解码器执行。该解码器可以是支持V-DMC的解码器。
参见图9,在步骤S910,对码流中的二进制值进行反二值化操作,确定符号串。符号串用于表示三维网格的连接信息。
符号串可以基于EdgeBreaker确定,而符号串可以由{C,L,E,R,S}中的符号表示。
上文提及的三维网格的连接信息可以称为三维网格中的三角面片的连接信息,或者,也可以称为三维网格的顶点的连接信息。
在步骤S920中,根据符号串,重建三维网格。
在一些实现方式中,可以根据符号串确定三维网格(基础网格)的连接信息;然后,根据连接信息和点的几何位置信息确定三维网格的重建网格。
本申请实施例对码流中的二进制值进行反二值化操作的方式不作具体限定。下面详细介绍三种本申请实施例提供的方案。
方案一
在一些实现方式中,步骤S910包括:确定符号串中的当前符号的上一符号;如果上一符号为符号C,则根据符号与二进制值之间的第一映射关系进行反二值化操作,确定当前符号。
第一映射关系不包括符号L和/或符号E与二进制值之间的映射关系,或者说,第一映射关系可以
包括符号C、符号S以及符号R与二进制值之间的映射关系。
在一些实现方式中,第一映射关系中的符号对应的二进制值的位数均小于或等于2。第一映射关系中的不同符号对应的二进制值的位数可以完全相同,也可以不完全相同。例如,第一映射关系中的一个符号对应的二进制值的位数可以是1,而其他符号对应的二进制值的位数可以是2。
作为一示例,符号C对应的二进制值为0,符号R对应的二进制值为10,符号S对应的二进制值为11。
作为另一示例,所述符号C对应的二进制值为0,符号R对应的二进制值为11,符号S对应的二进制值为10。
又如,第一映射关系中的符号对应的二进制值的位数可以均为2。
作为一示例,符号C对应的二进制值为00,符号R对应的二进制值为10,符号S对应的二进制值为11。
作为另一示例,符号C对应的二进制值为01,符号R对应的二进制值为10,符号S对应的二进制值为11。
在方案一中,可以基于上述第一映射关系将二进制值进行反二值化操作,从而转化为对应的符号。
本申请实施例基于符号串中的符号C之后编码的符号不为符号L或符号E的特性,减少符号C之后编码的符号的二进制值的位数,从而有助于提高连接信息的编码效率。
方案二
在一些实现方式中,步骤S910包括:解析第一标识信息,第一标识信息用于指示符号串中出现频率最高的目标符号;然后,根据符号与二进制值之间的第二映射关系进行反二值化操作,确定当前符号。
第二映射关系可以包括符号L和/或符号E与二进制值之间的映射关系,或者说,第二映射关系可以包括符号C、符号L、符号E、符号S以及符号R与二进制值之间的映射关系。
目标符号在第二映射关系中对应的二进制值的位数最小。例如,目标符号对应的二进制值的位数为1,那么其他符号(4个符号)对应的二进制值的位数为3。
例如,如果目标符号为符号C,则符号C对应的二进制值为0,符号S对应的二进制值为100,符号R对应的二进制值为101,符号L对应的二进制值为110,符号E对应的二进制值为111。
又如,如果目标符号为符号R,则符号R对应的二进制值为0,符号S对应的二进制值为100,符号C对应的二进制值为101,符号L对应的二进制值为110,符号E对应的二进制值为111。
又如,如果目标符号为符号L,则符号L对应的二进制值为0,符号S对应的二进制值为100,符号R对应的二进制值为101,符号C对应的二进制值为110,符号E对应的二进制值为111。
又如,如果目标符号为符号E,则符号E对应的二进制值为0,符号S对应的二进制值为100,符号R对应的二进制值为101,符号L对应的二进制值为110,符号C对应的二进制值为111。
又如,如果目标符号为符号S,则符号S对应的二进制值为0,符号C对应的二进制值为100,符号R对应的二进制值为101,符号L对应的二进制值为110,符号E对应的二进制值为111。
在编码端,通过遍历符号串中的所有符号,将符号串中出现频率最高的符号作为目标符号,并将指示该目标符号的第一标识信息写入码流。在解码端,通过解析码流得到的第一标识信息确定目标符号。由于目标符号为符号串中出现频率最高的符号,将目标符号对应的二进制值的位数设置为小于其他符号的二进制位数,能够减少符号串对应的二进制值的位数,从而有助于提高连接信息的编码效率。
如前文介绍,第一标识信息用于指示符号串中出现频率最高的目标符号,而目标符号可能是{C,L,E,R,S}中的任意一种。因此,需要在映射关系中设置不同二进制值以表示不同的目标符号。
本申请实施例对目标符号的二进制值的设置方式不作具体限定。在一些实现方式中,可以设置第三映射关系,在该映射关系中,不同的目标符号对应的二进制值的位数相同。例如,第三映射关系中的不同符号对应的二进制值的位数均为3。例如,目标符号C对应的二进制值为000,目标符号S对应的二进制值为100,目标符号R对应的二进制值为011,目标符号L对应的二进制值为001,目标符号E对应的二进制值为010。
在另一些实现方式中,可以设置第四映射关系,在该映射关系中,不同的目标符号对应的二进制值的位数不完全相同。例如,符号C对应的二进制值的位数为1,除符号C之外的其余符号对应的二进制值的位数为3。例如,目标符号C对应的二进制值为0,目标符号S对应的二进制值为100,目标符号R对应的二进制值为101,目标符号L对应的二进制值为110,目标符号E对应的二进制值为111。
方案三
在一些实现方式中,步骤S910包括:解析第二标识信息,第二标识信息用于指示当前符号是否为第一符号;然后,如果当前符号不是第一符号,则根据符号与二进制值之间的第五映射关系进行反二值化操作,确定当前符号。第五映射关系不包括第一符号与二进制值之间的映射关系。
第二标识信息可以包括多个标识信息,第一符号可以包括多个符号,也就是说,第一符号可以为{C,L,E,R,S}中的多种符号,多个标识信息分别指示是否为对应的符号。例如,第一符号可以为符号C和符号R,多个标识信息分别指示当前符号是否为符号C或符号R。
第二标识信息的取值可以有多种,其中,不同的取值结果可以表示是否为第一符号。例如,第二标识信息的取值可以是0或1。
作为一示例,第二标识信息可以指示当前符号是否为符号C,如果第二标识信息的取值为0,则表示当前符号为符号C;如果第二标识信息的取值为1,则表示当前符号不为符号C。
作为另一示例,第二标识信息可以指示当前符号是否为符号R,如果第二标识信息的取值为0,则表示当前符号为符号R;如果第二标识信息的取值为1,则表示当前符号不为符号R。
在上文的介绍中,第二标识信息可以指示多种符号,因此,在{C,L,E,R,S}中,剩余符号可以以较小位数的二进制值表示,或者说,第五映射关系中的符号对应的二进制值的位数可以均小于或等于2。这样能够进一步减少符号串对应的二进制值的位数,从而有助于提高连接信息的编码效率。
例如,第五映射关系中的符号的二进制值的位数可以均为2。
作为示例,如果第一符号包括符号C和R,那么符号S对应的二进制值可以为00,符号L对应的二进制值可以为01,符号E对应的二进制值可以为11。
又如,第五映射关系中的符号的二进制值的位数可以为1和2。
作为一示例,如果第一符号包括符号C和R,那么符号S对应的二进制值可以为0,符号L对应的二进制值可以为10,符号E对应的二进制值可以为11。
作为另一示例,如果第一符号包括符号C和R,那么符号S对应的二进制值可以为1,符号L对应的二进制值可以为00,符号E对应的二进制值可以为01。
在一些实现方式中,步骤S910包括:根据二进制值的位数,确定当前符号是否为第二符号;然后,如果当前符号不是第二符号,则根据符号与二进制值之间的第六映射关系进行反二值化操作,确定当前符号。第六映射关系不包括第二符号与二进制值之间的映射关系。
第六映射关系中的符号对应的二进制值的位数均小于或等于4。例如,第六映射关系中的符号对应的二进制值的位数可以包括3和4。
第二符号可以包括多个符号,多个符号对应的二进制值的位数小于或等于2。例如,第二符号对应的二进制值的位数可以包括1和2。
作为示例,如果第二符号包括符号C和R,其中,符号C对应的二进制值为0,符号R对应的二进制值为10,那么符号S对应的二进制值可以为110,符号L对应的二进制值可以为1110,符号E对应的二进制值可以为1111。需理解的是,上文中的方案一、方案二和方案三可以结合使用,或者,方案一、方案二和方案三也可以单独使用,本申请实施例对此不作具体限定。
采用相关测试条件,对方案一和方案三进行测试。以无损压缩测试环境为例,方案一可以节省基础网格0.1%的码字;方案三可以节省基础网格0.1%的码字。
上文结合图9,详细描述了本申请实施例提供的解码方法。下面结合图10,详细描述本申请实施例提供的编码方法。
图10为本申请实施例提供的编码方法的流程图。图10的方法可以由编码器执行。该编码器可以是支持V-DMC的编码器。
参见图10,在步骤S1010中,对符号串进行二值化操作,确定二进制值。符号串用于表示三维网格的连接信息。
符号串可以基于EdgeBreaker确定,而符号串可以由{C,L,E,R,S}中的符号表示。
上文提及的三维网格的连接信息可以称为三维网格中的三角面片的连接信息,或者,也可以称为三维网格的点的连接信息。
在步骤S1020中,对二进制值进行编码。
在一些实现方式中,可以通过初始三维网格,确定三维网格(基础网格);然后,基于三维网格的连接信息,确定符号串;接着,对符号串进行二值化,确定符号串对应的二进制值,并将二进制值编入码流。
本申请实施例对符号串进行二值化操作的方式不作具体限定。下面详细介绍三种本申请实施例提供的方案。
方案一
在一些实现方式中,步骤S1010包括:对符号串中的当前符号的上一符号进行编码;然后,如果上一符号为符号C,则根据符号与二进制值之间的第一映射关系对当前符号进行二值化操作。
第一映射关系不包括符号L和/或符号E与二进制值之间的映射关系,或者说,第一映射关系可以
包括符号C、符号S以及符号R与二进制值之间的映射关系。
在一些实现方式中,第一映射关系中的符号对应的二进制值的位数均小于或等于2。第一映射关系中的不同符号对应的二进制值的位数可以完全相同,也可以不完全相同。例如,第一映射关系中的一个符号对应的二进制值的位数可以是1,而其他符号对应的二进制值的位数可以是2。
作为一示例,符号C对应的二进制值为0,符号R对应的二进制值为10,符号S对应的二进制值为11。
作为另一示例,所述符号C对应的二进制值为0,符号R对应的二进制值为11,符号S对应的二进制值为10。
又如,第一映射关系中的符号对应的二进制值的位数可以均为2。
作为一示例,符号C对应的二进制值为00,符号R对应的二进制值为10,符号S对应的二进制值为11。
作为另一示例,符号C对应的二进制值为01,符号R对应的二进制值为10,符号S对应的二进制值为11。
在方案一中,可以基于上述第一映射关系对当前符号进行二值化操作,从而得到当前符号对应的二进制值。
本申请实施例基于符号串中的符号C之后编码的符号不为符号L或符号E的特性,减少符号C之后编码的符号的二进制值的位数,从而有助于提高连接信息的编码效率。
方案二
在一些实现方式中,步骤S1010包括:确定符号串中出现频率最高的目标符号;然后,根据符号与二进制值之间的第二映射关系对当前符号进行二值化操作,确定当前符号对应的二进制值。
第二映射关系可以包括符号L和/或符号E与二进制值之间的映射关系,或者说,第二映射关系可以包括符号C、符号L、符号E、符号S以及符号R与二进制值之间的映射关系。
目标符号在第二映射关系中对应的二进制值的位数最小。例如,目标符号对应的二进制值的位数为1,那么其他符号(4个符号)对应的二进制值的位数为3。
例如,如果目标符号为符号C,则符号C对应的二进制值为0,符号S对应的二进制值为100,符号R对应的二进制值为101,符号L对应的二进制值为110,符号E对应的二进制值为111。
又如,如果目标符号为符号R,则符号R对应的二进制值为0,符号S对应的二进制值为100,符号C对应的二进制值为101,符号L对应的二进制值为110,符号E对应的二进制值为111。
又如,如果目标符号为符号L,则符号L对应的二进制值为0,符号S对应的二进制值为100,符号R对应的二进制值为101,符号C对应的二进制值为110,符号E对应的二进制值为111。
又如,如果目标符号为符号E,则符号E对应的二进制值为0,符号S对应的二进制值为100,符号R对应的二进制值为101,符号L对应的二进制值为110,符号C对应的二进制值为111。
又如,如果目标符号为符号S,则符号S对应的二进制值为0,符号C对应的二进制值为100,符号R对应的二进制值为101,符号L对应的二进制值为110,符号E对应的二进制值为111。
在编码端,通过遍历符号串中的所有符号,将符号串中出现频率最高的符号作为目标符号,并将指示该目标符号的第一标识信息写入码流。将目标符号对应的二进制值的位数设置为小于其他符号的二进制位数,能够减少符号串对应的二进制值的位数,从而有助于提高连接信息的编码效率。
如前文介绍,第一标识信息用于指示符号串中出现频率最高的目标符号,而目标符号可能是{C,L,E,R,S}中的任意一种。因此,需要在映射关系中设置不同二进制值以表示不同的目标符号。
本申请实施例对目标符号的二进制值的设置方式不作具体限定。在一些实现方式中,可以设置第三映射关系,在该映射关系中,不同的目标符号对应的二进制值的位数相同。例如,第三映射关系中的不同符号对应的二进制值的位数均为3。例如,目标符号C对应的二进制值为000,目标符号S对应的二进制值为100,目标符号R对应的二进制值为011,目标符号L对应的二进制值为001,目标符号E对应的二进制值为010。
在另一些实现方式中,可以设置第四映射关系,在该映射关系中,不同的目标符号对应的二进制值的位数不完全相同。例如,符号C对应的二进制值的位数为1,除符号C之外的其余符号对应的二进制值的位数为3。例如,目标符号C对应的二进制值为0,目标符号S对应的二进制值为100,目标符号R对应的二进制值为101,目标符号L对应的二进制值为110,目标符号E对应的二进制值为111。
方案三
在一些实现方式中,步骤S1010包括:确定当前符号是否为第一符号;然后,如果当前符号不是第一符号,则根据符号与二进制值之间的第五映射关系对当前符号进行二值化操作。第五映射关系不包括第一符号与二进制值之间的映射关系。
在一些实现方式中,可以将第二标识信息写入码流。第二标识信息用于指示当前符号是否为第一符号。
第二标识信息可以包括多个标识信息,第一符号可以包括多个符号,也就是说,第一符号可以为{C,L,E,R,S}中的多种符号,多个标识信息分别指示是否为对应的符号。例如,第一符号可以为符号C和符号R,多个标识信息分别指示当前符号是否为符号C或符号R。
第二标识信息的取值方式可以有多种,其中,不同的取值结果可以表示是否为第一符号。例如,第二标识信息的取值可以是0或1。
作为一示例,第二标识信息可以指示当前符号是否为符号C,如果第二标识信息的取值为0,则表示当前符号为符号C;如果第二标识信息的取值为1,则表示当前符号不为符号C。
作为另一示例,第二标识信息可以指示当前符号是否为符号R,如果第二标识信息的取值为0,则表示当前符号为符号R;如果第二标识信息的取值为1,则表示当前符号不为符号R。
在上文的介绍中,方案三可以通过语法元素(标识信息)指示多种符号,因此,在{C,L,E,R,S}中,剩余符号可以以较小位数的二进制值表示,或者说,第五映射关系中的符号对应的二进制值的位数可以均小于或等于2。这样能够进一步减少符号串对应的二进制值的位数,从而有助于提高连接信息的编码效率。
例如,第五映射关系中的符号的二进制值的位数可以均为2。
作为示例,如果第一符号包括符号C和R,那么符号S对应的二进制值可以为00,符号L对应的二进制值可以为01,符号E对应的二进制值可以为11。
又如,第五映射关系中的符号的二进制值的位数可以为1和2。
作为一示例,如果第一符号包括符号C和R,那么符号S对应的二进制值可以为0,符号L对应的二进制值可以为10,符号E对应的二进制值可以为11。
作为另一示例,如果第一符号包括符号C和R,那么符号S对应的二进制值可以为1,符号L对应的二进制值可以为00,符号E对应的二进制值可以为01。
在一些实现方式中,在一些实现方式中,步骤S1010包括:根据二进制值的位数,确定当前符号是否为第二符号;然后,如果当前符号不是第二符号,则根据符号与二进制值之间的第六映射关系对当前符号进行二值化操作。第六映射关系不包括第二符号与二进制值之间的映射关系。
第六映射关系中的符号对应的二进制值的位数均小于或等于4。例如,第六映射关系中的符号对应的二进制值的位数可以包括3和4。
第二符号可以包括多个符号,多个符号对应的二进制值的位数小于或等于2。例如,第二符号对应的二进制值的位数可以包括1和2。
作为示例,如果第二符号包括符号C和R,其中,符号C对应的二进制值为0,符号R对应的二进制值为10,那么符号S对应的二进制值可以为110,符号L对应的二进制值可以为1110,符号E对应的二进制值可以为1111。需理解的是,上文中的方案一、方案二和方案三可以结合使用,或者,方案一、方案二和方案三也可以单独使用,本申请实施例对此不作具体限定。
下面结合具体例子,更加详细地描述本申请实施例。应注意,下文中的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的下文中的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
在相关技术中,三维网格的连接信息基于符号串表示,而如果用于表示符号串的二进制值的位数太多,会限制连接信息的编码效率。
针对上述问题,本申请实施例利用CLERS符号串的特性,针对三维网格的连接信息的编解码,设计编解码效率更高的二值化/反二值化方法。另外,引入是否为特定的符号(或者是否不为特定的符号)的语法元素,并据此重新设计剩余符号的二值化/反二值化方法,提高三维网格连接信息的熵编码/熵解码效率。下面介绍三种本申请提供的示例。
示例1:
利用符号C的下一个符号不可能为符号L或符号E的特性,可以将五种符号的二值化方式改进如下:
(1)当上一个符号不是C,或当前符号为CLERS符号串中的第一个符号时,当前符号为以下五种符号的其中之一的二值化/反二值化算法为:C:一个二进制位;S:三个二进制位;R:三个二进制位;L:三个二进制位;E:三个二进制位。例如:
C:0
S:100
R:101
L:110
E:111
C:0
S:100
R:101
L:110
E:111
(2)当上一个符号是C时,当前符号为以下三种符号的其中之一的二值化/反二值化算法为:C:一个二进制位;S:二个二进制位;R:二个二进制位。例如:
C:0
S:10
R:11
C:0
S:10
R:11
又或:
C:0
S:11
R:10
C:0
S:11
R:10
示例2:
在一些CLERS符号串中,符号C不一定为出现频率最高的符号,此时若仍然为其分配最短二进制位,为其它符号分配长二进制位,显然不是最好的二值化/反二值化方案,因此可以通过调整最短二进制位符号的归属,提升编解码效率。
编码端:
(1)在编码CLERS符号串之前统计每种符号出现的频率,定义一个语法元素指示出现频率最高的符号,并将该语法元素写入码流;
(2)为上述语法元素所指示的最高频率符号分配最短二进制位,其余符号分配长于最高频率符号的二进制位,例如:
i.若该语法元素表示最高频率符号为C,则用一个二进制位二值化符号C,二个或二个以上个二进制位二值化其它符号,举例如下:
C:0
S:100
R:101
L:110
E:111
C:0
S:100
R:101
L:110
E:111
ii.若该语法元素表示最高频率符号为C,则用一个二进制位二值化符号C,二个或二个以上个二进制位二值化其它符号,举例如下:
当上一个符号不是C,或当前符号为CLERS符号串中的第一个符号时:
C:0
S:100
R:101
L:110
E:111
C:0
S:100
R:101
L:110
E:111
当上一个符号是C时:
C:0
S:10
R:11
C:0
S:10
R:11
又或:
C:0
S:11
R:10
C:0
S:11
R:10
iii.若该语法元素表示最高频率符号为R,则用一个二进制位二值化符号R,二个或二个以上个二进制位二值化其它符号,举例如下:
R:0
S:100
C:101
L:110
E:111
R:0
S:100
C:101
L:110
E:111
iv.若该语法元素表示最高频率符号为L,则用一个二进制位二值化符号L,二个或二个以上个二进制位二值化其它符号,举例如下:
L:0
S:100
R:101
C:110
E:111
L:0
S:100
R:101
C:110
E:111
v.若该语法元素表示最高频率符号为E,则用一个二进制位二值化符号E,二个或二个以上个二进制位二值化其它符号,举例如下:
E:0
S:100
R:101
L:110
C:111
E:0
S:100
R:101
L:110
C:111
vi.若该语法元素表示最高频率符号为S,则用一个二进制位二值化符号S,二个或二个以上个二进制位二值化其它符号,举例如下:
S:0
C:100
R:101
L:110
E:111
S:0
C:100
R:101
L:110
E:111
解码端:
(1)解析指示当前CLERS符号串中出现频率最高的符号的语法元素;
(2)为上述语法元素所指示的最高频率符号分配最短二进制位,其余符号分配长于最高频率符号的二进制位,例如:
i.若该语法元素表示最高频率符号为C,则用一个二进制位反二值化符号C,二个或二个以上个二进制位反二值化其它符号,举例如下:
C:0
S:100
R:101
L:110
E:111
C:0
S:100
R:101
L:110
E:111
ii.若该语法元素表示最高频率符号为C,则用一个二进制位反二值化符号C,二个或二个以上个二进制位反二值化其它符号,举例如下:
当上一个符号不是C,或当前符号为CLERS符号串中的第一个符号时:
C:0
S:100
R:101
L:110
E:111
C:0
S:100
R:101
L:110
E:111
当上一个符号是C时:
C:0
S:10
R:11
C:0
S:10
R:11
又或:
C:0
S:11
R:10
C:0
S:11
R:10
iii.若该语法元素表示最高频率符号为R,则用一个二进制位反二值化符号R,二个或二个以上个二进制位反二值化其它符号,举例如下:
R:0
S:100
C:101
L:110
E:111
R:0
S:100
C:101
L:110
E:111
iv.若该语法元素表示最高频率符号为L,则用一个二进制位反二值化符号L,二个或二个以上个二进制位反二值化其它符号,举例如下:
L:0
S:100
R:101
C:110
E:111
L:0
S:100
R:101
C:110
E:111
v.若该语法元素表示最高频率符号为E,则用一个二进制位反二值化符号E,二个或二个以上个二进制位反二值化其它符号,举例如下:
E:0
S:100
R:101
L:110
C:111
E:0
S:100
R:101
L:110
C:111
vi.若该语法元素表示最高频率符号为S,则用一个二进制位反二值化符号S,二个或二个以上个二进制位反二值化其它符号,举例如下:
S:0
C:100
R:101
L:110
E:111
S:0
C:100
R:101
L:110
E:111
示例2中提到的语法元素可以基于以下方式表示:
0表示最高频率符号为C,6表示最高频率符号为L,7表示最高频率符号为E,5表示最高频率符号为R,4表示最高频率符号为S。
二值化方法为:
最高频率符号为C:0
最高频率符号为S:100
最高频率符号为R:101
最高频率符号为L:110
最高频率符号为E:111
或者:
0表示最高频率符号为C,1表示最高频率符号为L,2表示最高频率符号为E,3表示最高频率符号为R,4表示最高频率符号为S。
二值化方法为:
最高频率符号为C:000
最高频率符号为S:100
最高频率符号为R:011
最高频率符号为L:001
最高频率符号为E:010
示例3:
编码端,对于每个待编码符号:
(1)编码是否为符号C语法元素(如:值为0表示是符号C,值为1表示不是符号C;或者:值为1表示是符号C,值为0表示不是符号C),若当前符号不是C,执行步骤b;
(2)编码是否为符号R语法元素(如:值为0表示是符号R,值为1表示不是符号R;或者,值为1表示是符号R,值为0表示不是符号R),若当前符号不是R,执行步骤c;
(3)编码对应符号的二进制位(二值化方法举例如下)。
剩余三种符号用固定长度的2个二进制位表示:
00表示S或L或E
01表示S或L或E
10表示S或L或E
11表示S或L或E
其中,每种“2个二进制位”只能表示唯一一种符号。
剩余三种符号中的一种用1个二进制位表示,两种用2个二进制位表示:
0表示S或L或E
10表示S或L或E
11表示S或L或E
其中,每种“1个/2个二进制位”只能表示唯一一种符号。
剩余三种符号中的一种用1个二进制位表示,两种用2个二进制位表示:
1表示S或L或E
00表示S或L或E
01表示S或L或E
其中,每种“1个/2个二进制位”只能表示唯一一种符号。
解码端:对于每个待解码符号:
(1)解码是否为符号C语法元素(编解码端采用相同的定义。如:值为0表示是符号C,值为1表示不是符号C;或者:值为1表示是符号C,值为0表示不是符号C),若语法元素表示当前符号不是C,执行步骤b;
(2)解码是否为符号R语法元素(编解码端采用相同的定义。如:值为0表示是符号R,值为1表示不是符号R;或者,值为1表示是符号R,值为0表示不是符号R),若语法元素表示当前符号不是R,执行步骤c;
(3)根据二进制位解码对应符号(编解码端采用相同的二值化/反二值化方法。反二值化方法举例如下)。
剩余三种符号用固定长度的2个二进制位表示:
00表示S或L或E
01表示S或L或E
10表示S或L或E
11表示S或L或E
其中,每种“2个二进制位”只能表示唯一一种符号。
剩余三种符号中的一种用1个二进制位表示,两种用2个二进制位表示:
0表示S或L或E
10表示S或L或E
11表示S或L或E
每种“1个/2个二进制位”只能表示唯一一种符号。
其中,剩余三种符号中的一种用1个二进制位表示,两种用2个二进制位表示:
1表示S或L或E
00表示S或L或E
01表示S或L或E
其中,每种“1个/2个二进制位”只能表示唯一一种符号。
上文结合图1至图10,详细描述了本申请的方法实施例,下面结合图11至图14,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图11是本申请一个实施例提供的解码器的结构示意图。如图11所示,解码器1100可以包括第一解码单元1110和第二解码单元1120。
第一解码单元1110,配置为对码流中的二进制值进行反二值化操作,确定符号串,所述符号串用于表示三维网格的连接信息。
第二解码单元1120,配置为根据所述符号串,重建所述三维网格。
在一些实现方式中,所述解码器1100包括:第三解码单元1130,配置为确定所述符号串中的当前符号的上一符号;如果所述上一符号为符号C,则根据符号与二进制值之间的第一映射关系进行反二值化操作,确定所述当前符号,所述第一映射关系不包括符号L和/或符号E与二进制值之间的映射关系。
在一些实现方式中,所述第一映射关系中的符号对应的二进制值的位数均小于或等于2。
在一些实现方式中,所述第一映射关系中,不同符号对应的二进制值的位数不完全相同。
在一些实现方式中,述第一映射关系包括符号C、符号R和符号S与二进制值之间的映射关系,且所述第一映射关系满足以下中的一项:所述符号C对应的二进制值为0,符号R对应的二进制值为10,符号S对应的二进制值为11;或者,所述符号C对应的二进制值为0,符号R对应的二进制值为11,符号S对应的二进制值为10。
在一些实现方式中,所述解码器1100包括:第四解码单元1140,配置为解析第一标识信息,所述第一标识信息用于指示所述符号串中出现频率最高的目标符号;根据符号与二进制值之间的第二映射关系进行反二值化操作,确定所述当前符号,所述第二映射关系包括所述符号L和/或所述符号E与二进制值之间的映射关系,所述目标符号在所述第二映射关系中对应的二进制值的位数最小。
在一些实现方式中,在所述第二映射关系中,所述目标符号对应的二进制值的位数为1,除所述目标符号之外的其余符号对应的二进制值的位数为3。
在一些实现方式中,所述解码器1100包括:第五解码单元1150,配置为根据符号与二进制值之间的第三映射关系进行反二值化操作,确定所述第一标识信息,在所述第三映射关系中,不同符号对应的二进制值的位数相同。
在一些实现方式中,所述第三映射关系中的不同符号对应的二进制值的位数均为3。
在一些实现方式中,所述解码器1100包括:第六解码单元1160,配置为根据符号与二进制值之间的第四映射关系进行反二值化操作,确定所述第一标识信息,在所述第四映射关系中,不同符号对应的二进制值的位数不完全相同。
在一些实现方式中,在所述第四映射关系中,符号C对应的二进制值的位数为1,除所述符号C之外的其余符号对应的二进制值的位数为3。
在一些实现方式中,所述解码器1100还包括第七解码单元1170,配置为解析第二标识信息,所述第二标识信息用于指示所述当前符号是否为第一符号;如果所述当前符号不是所述第一符号,则根据符号与二进制值之间的第五映射关系进行反二值化操作,确定所述当前符号,所述第五映射关系不包括所述第一符号与二进制值之间的映射关系。
在一些实现方式中,所述第五映射关系中的符号对应的二进制值的位数均小于或等于2。
在一些实现方式中,所述第二标识信息包括多个标识信息,所述第一符号包括多个符号,所述多个标识信息分别指示是否为对应的符号。
在一些实现方式中,根据二进制值的位数,确定所述当前符号是否为第二符号;如果所述当前符号不是所述第二符号,则根据符号与二进制值之间的第六映射关系进行反二值化操作,确定所述当前符号,所述第六映射关系不包括所述第二符号与二进制值之间的映射关系。
在一些实现方式中,所述第六映射关系中的符号对应的二进制值的位数均小于或等于4。
在一些实现方式中,所述第二符号包括多个符号,所述多个符号对应的二进制值的位数小于或等于2。
可以理解,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种计算机可读存储介质,应用于解码器1100,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例中任一项所述的解码方法。
基于上述解码器1100的组成以及计算机可读存储介质,参见图12,其示出了本申请实施例提供的编码器1200的具体硬件结构示意图。如图12所示,编码器1200可以包括:通信接口1210、存储器1220和处理器1230;各个组件通过总线系统1240耦合在一起。可理解,总线系统1240用于实现这些组件之间的连接通信。总线系统1240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线系统1240。其中,
通信接口1210,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
存储器1220,用于存储计算机程序;
处理器1230,用于在运行所述计算机程序时,执行:
对码流中的二进制值进行反二值化操作,确定符号串,所述符号串用于表示三维网格的连接信息;根据所述符号串,重建所述三维网格。
可以理解,本申请实施例中的存储器1220可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)。本申请描述的系统和方法的存储器1220旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器1230可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1230中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1230可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1220,处理器1230读取存储器1220中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(application specific integrated circuits,ASIC)、数字信号处理器(digital signal processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(programmable logic device,PLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,处理器1230还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的解码方法。
图13是本申请一个实施例提供的编码器的结构示意图。如图13所示,编码器1300包括第一编码单元1310、第二编码单元1320。
第一编码单元1310,配置为对符号串进行二值化操作,确定二进制值,所述符号串用于表示三维网格的连接信息。
第二编码单元1320,配置为对所述二进制值进行编码。
在一些实现方式中,所述编码器1300还包括第三编码单元1330,配置为对符号串中的当前符号的上一符号进行编码;如果所述上一符号为符号C,则根据符号与二进制值之间的第一映射关系对所述当前符号进行二值化操作,所述第一映射关系不包括符号L和/或符号E与二进制值之间的映射关系。
在一些实现方式中,所述第一映射关系中的符号对应的二进制值的位数均小于或等于2。
在一些实现方式中,所述第一映射关系中,不同符号对应的二进制值的位数不完全相同。
在一些实现方式中,所述第一映射关系包括符号C、符号R和符号S与二进制值之间的映射关系,且所述第一映射关系满足以下中的一项:所述符号C对应的二进制值为0,符号R对应的二进制值为10,符号S对应的二进制值为11;或者,所述符号C对应的二进制值为0,符号R对应的二进制值为11,符号S对应的二进制值为10。
在一些实现方式中,所述编码器1300还包括第四编码单元1340,配置为确定所述符号串中出现频率最高的目标符号;根据符号与二进制值之间的第二映射关系对所述当前符号进行二值化操作,所述第二映射关系包括所述符号L和/或所述符号E与二进制值之间的映射关系,所述目标符号在所述第二映射关系中对应的二进制值的位数最小。
在一些实现方式中,在所述第二映射关系中,所述目标符号对应的二进制值的位数为1,除所述目标符号之外的其余符号对应的二进制值的位数为3。
在一些实现方式中,所述编码器1300还包括第五编码单元1350,配置为将第一标识信息写入码流,所述第一标识信息用于指示所述目标符号。
在一些实现方式中,所述第五编码单元1350,配置为根据符号与二进制值之间的第三映射关系对所述第一标识信息进行二值化操作,在所述第三映射关系中,不同符号对应的二进制值的位数相同。
在一些实现方式中,所述第三映射关系中的不同符号对应的二进制值的位数均为3。
在一些实现方式中,所述第五编码单元1350,配置为根据符号与二进制值之间的第四映射关系对所述第一标识信息进行二值化操作,在所述第四映射关系中,不同符号对应的二进制值的位数不完全相同。
在一些实现方式中,在所述第四映射关系中,符号C对应的二进制值的位数为1,除所述符号C之
外的其余符号对应的二进制值的位数为3。
在一些实现方式中,所述编码器1300还包括第六编码单元1360,配置为确定所述当前符号是否为第一符号;如果所述当前符号不是所述第一符号,则根据符号与二进制值之间的第五映射关系对所述当前符号进行二值化操作,所述第五映射关系不包括所述第一符号与二进制值之间的映射关系。
在一些实现方式中,所述编码器1300还包括第七编码单元1370,配置为将所述第二标识信息写入码流,所述第二标识信息用于指示所述当前符号是否为所述第一符号。
在一些实现方式中,所述第二标识信息包括多个标识信息,所述第一符号包括多个符号,所述多个标识信息分别指示是否为对应的符号。
在一些实现方式中,所述第五映射关系中的符号对应的二进制值的位数均小于或等于2。
在一些实现方式中,根据二进制值的位数,确定所述当前符号是否为第二符号;如果所述当前符号不是所述第二符号,则根据符号与二进制值之间的第六映射关系对所述当前符号进行二值化操作,所述第六映射关系不包括所述第二符号与二进制值之间的映射关系。
在一些实现方式中,所述第六映射关系中的符号对应的二进制值的位数均小于或等于4。
在一些实现方式中,所述第二符号包括多个符号,所述多个符号对应的二进制值的位数小于或等于2。
可以理解,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种计算机可读存储介质,应用于编码器1300,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例中任一项所述的解码方法。
基于上述编码器1300的组成以及计算机可读存储介质,参见图14,其示出了本申请实施例提供的编码器1400的具体硬件结构示意图。如图14所示,编码器1400可以包括:通信接口1410、存储器1420和处理器1430;各个组件通过总线系统1440耦合在一起。可理解,总线系统1440用于实现这些组件之间的连接通信。总线系统1440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图14中将各种总线都标为总线系统1440。其中,
通信接口1410,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
存储器1420,用于存储计算机程序;
处理器1430,用于在运行所述计算机程序时,执行:
对符号串进行二值化操作,确定二进制值,所述符号串用于表示三维网格的连接信息;对所述二进制值进行编码。
可以理解,本申请实施例中的存储器1420可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、PROM、EPROM、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM、DRAM、SDRAM、DDRSDRAM、ESDRAM、SLDRAM和DRRAM。本申请描述的系统和方法的存储器1420旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器1430可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1430中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1430可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1420,处理器1430读取存储器1420中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。
对于硬件实现,处理单元可以实现在一个或多个ASIC、DSP、DSPD、PLD、FPGA、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,处理器1430还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的编码方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质为存储比特流的非易失性计算机可读存储介质,所述比特流可以通过利用编码器的编码方法而生成,或者,所述比特流通过利用解码器的解码方法而解码,其中,所述解码方法可以为前文任一实施例所述的解码方法、所述编码方法可以为前文任一实施例所述的编码方法。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (43)
- 一种解码方法,应用于解码器,包括:对码流中的二进制值进行反二值化操作,确定符号串,所述符号串用于表示三维网格的连接信息;根据所述符号串,重建所述三维网格。
- 根据权利要求1所述的方法,其中,所述对码流中的二进制值进行反二值化操作,确定符号串,包括:确定所述符号串中的当前符号的上一符号;如果所述上一符号为符号C,则根据符号与二进制值之间的第一映射关系进行反二值化操作,确定所述当前符号,所述第一映射关系不包括符号L和/或符号E与二进制值之间的映射关系。
- 根据权利要求2所述的方法,其中,所述第一映射关系中的符号对应的二进制值的位数均小于或等于2。
- 根据权利要求2或3所述的方法,其中,所述第一映射关系中,不同符号对应的二进制值的位数不完全相同。
- 根据权利要求4所述的方法,其中,所述第一映射关系包括符号C、符号R和符号S与二进制值之间的映射关系,且所述第一映射关系满足以下中的一项:所述符号C对应的二进制值为0,符号R对应的二进制值为10,符号S对应的二进制值为11;或者,所述符号C对应的二进制值为0,符号R对应的二进制值为11,符号S对应的二进制值为10。
- 根据权利要求1所述的方法,其中,所述对码流中的二进制值进行反二值化操作,确定符号串,包括:解析第一标识信息,所述第一标识信息用于指示所述符号串中出现频率最高的目标符号;根据符号与二进制值之间的第二映射关系进行反二值化操作,确定所述当前符号,所述第二映射关系包括所述符号L和/或所述符号E与二进制值之间的映射关系,所述目标符号在所述第二映射关系中对应的二进制值的位数最小。
- 根据权利要求6所述的方法,其中,在所述第二映射关系中,所述目标符号对应的二进制值的位数为1,除所述目标符号之外的其余符号对应的二进制值的位数为3。
- 根据权利要求6或7所述的方法,其中,所述方法还包括:根据符号与二进制值之间的第三映射关系进行反二值化操作,确定所述第一标识信息,在所述第三映射关系中,不同符号对应的二进制值的位数相同。
- 根据权利要求8所述的方法,其中,所述第三映射关系中的不同符号对应的二进制值的位数均为3。
- 根据权利要求6或7所述的方法,其中,所述方法还包括:根据符号与二进制值之间的第四映射关系进行反二值化操作,确定所述第一标识信息,在所述第四映射关系中,不同符号对应的二进制值的位数不完全相同。
- 根据权利要求10所述的方法,其中,所述第四映射关系中,符号C对应的二进制值的位数为1,除所述符号C之外的其余符号对应的二进制值的位数为3。
- 根据权利要求1所述的方法,其中,所述对码流中的二进制值进行反二值化操作,确定符号串,包括:解析第二标识信息,所述第二标识信息用于指示所述当前符号是否为第一符号;如果所述当前符号不是所述第一符号,则根据符号与二进制值之间的第五映射关系进行反二值化操作,确定所述当前符号,所述第五映射关系不包括所述第一符号与二进制值之间的映射关系。
- 根据权利要求12所述的方法,其中,所述第五映射关系中的符号对应的二进制值的位数均小于或等于2。
- 根据权利要求12或13所述的方法,其中,所述第二标识信息包括多个标识信息,所述第一符号包括多个符号,所述多个标识信息分别指示是否为对应的符号。
- 根据权利要求1所述的方法,其中,所述对码流中的二进制值进行反二值化操作,确定符号串,包括:根据二进制值的位数,确定所述当前符号是否为第二符号;如果所述当前符号不是所述第二符号,则根据符号与二进制值之间的第六映射关系进行反二值化操作,确定所述当前符号,所述第六映射关系不包括所述第二符号与二进制值之间的映射关系。
- 根据权利要求15所述的方法,其中,所述第六映射关系中的符号对应的二进制值的位数均小于或等于4。
- 根据权利要求15或16所述的方法,其中,所述第二符号包括多个符号,所述多个符号对应的二进制值的位数小于或等于2。
- 一种编码方法,应用于编码器,包括:对符号串进行二值化操作,确定二进制值,所述符号串用于表示三维网格的连接信息;对所述二进制值进行编码。
- 根据权利要求18所述的方法,其中,所述对符号串进行二值化操作,确定二进制值,包括:对符号串中的当前符号的上一符号进行编码;如果所述上一符号为符号C,则根据符号与二进制值之间的第一映射关系对所述当前符号进行二值化操作,所述第一映射关系不包括符号L和/或符号E与二进制值之间的映射关系。
- 根据权利要求19所述的方法,其中,所述第一映射关系中的符号对应的二进制值的位数均小于或等于2。
- 根据权利要求19或20所述的方法,其中,所述第一映射关系中,不同符号对应的二进制值的位数不完全相同。
- 根据权利要求21所述的方法,其中,所述第一映射关系包括符号C、符号R和符号S与二进制值之间的映射关系,且所述第一映射关系满足以下中的一项:所述符号C对应的二进制值为0,符号R对应的二进制值为10,符号S对应的二进制值为11;或者,所述符号C对应的二进制值为0,符号R对应的二进制值为11,符号S对应的二进制值为10。
- 根据权利要求18所述的方法,其中,所述对符号串进行二值化操作,确定二进制值,包括:确定所述符号串中出现频率最高的目标符号;根据符号与二进制值之间的第二映射关系对所述当前符号进行二值化操作,所述第二映射关系包括所述符号L和/或所述符号E与二进制值之间的映射关系,所述目标符号在所述第二映射关系中对应的二进制值的位数最小。
- 根据权利要求23所述的方法,其中,在所述第二映射关系中,所述目标符号对应的二进制值的位数为1,除所述目标符号之外的其余符号对应的二进制值的位数为3。
- 根据权利要求23或24所述的方法,其中,所述方法还包括:将第一标识信息写入码流,所述第一标识信息用于指示所述目标符号。
- 根据权利要求25所述的方法,其中,所述将第一标识信息写入码流,包括:根据符号与二进制值之间的第三映射关系对所述第一标识信息进行二值化操作,在所述第三映射关系中,不同符号对应的二进制值的位数相同。
- 根据权利要求26所述的方法,其中,所述第三映射关系中的不同符号对应的二进制值的位数均为3。
- 根据权利要求25所述的方法,其中,所述将第一标识信息写入码流,包括:根据符号与二进制值之间的第四映射关系对所述第一标识信息进行二值化操作,在所述第四映射关系中,不同符号对应的二进制值的位数不完全相同。
- 根据权利要求28所述的方法,其中,所述第四映射关系中,符号C对应的二进制值的位数为1,除所述符号C之外的其余符号对应的二进制值的位数为3。
- 根据权利要求18所述的方法,其中,所述对符号串进行二值化操作,确定二进制值,包括:确定所述当前符号是否为第一符号;如果所述当前符号不是所述第一符号,则根据符号与二进制值之间的第五映射关系对所述当前符号进行二值化操作,所述第五映射关系不包括所述第一符号与二进制值之间的映射关系。
- 根据权利要求30所述的方法,其中,所述方法还包括:将第二标识信息写入码流,所述第二标识信息用于指示所述当前符号是否为所述第一符号。
- 根据权利要求31所述的方法,其中,所述第二标识信息包括多个标识信息,所述第一符号包括多个符号,所述多个标识信息分别指示是否为对应的符号。
- 根据权利要求30至32中任一项所述的方法,其中,所述第五映射关系中的符号对应的二进制值的位数均小于或等于2。
- 根据权利要求18所述的方法,其中,所述对符号串进行二值化操作,确定二进制值,包括:根据二进制值的位数,确定所述当前符号是否为第二符号;如果所述当前符号不是所述第二符号,则根据符号与二进制值之间的第六映射关系对所述当前符 号进行二值化操作,所述第六映射关系不包括所述第二符号与二进制值之间的映射关系。
- 根据权利要求34所述的方法,其中,所述第六映射关系中的符号对应的二进制值的位数均小于或等于4。
- 根据权利要求34或35所述的方法,其中,所述第二符号包括多个符号,所述多个符号对应的二进制值的位数小于或等于2。
- 一种解码器,包括:第一解码单元,配置为对码流中的二进制值进行反二值化操作,确定符号串,所述符号串用于表示三维网格的连接信息;第二解码单元,配置为根据所述符号串,重建所述三维网格。
- 一种解码器,包括:存储器,用于存储计算机程序;处理器,用于在运行所述计算机程序时,执行如权利要求1至17中任一项所述的方法。
- 一种编码器,包括:第一编码单元,配置为对符号串进行二值化操作,确定二进制值,所述符号串用于表示三维网格的连接信息;第二编码单元,配置为对所述二进制值进行编码。
- 一种编码器,包括:存储器,用于存储计算机程序;处理器,用于在运行所述计算机程序时,执行如权利要求18至36中任一项所述的方法。
- 一种存储比特流的非易失性计算机可读存储介质,所述比特流通过利用编码器的编码方法而生成,或者,所述比特流通过利用解码器的解码方法而解码,其中,所述解码方法为如权利要求1至17中任一项所述的方法、所述编码方法为如权利要求18至36中任一项所述的方法。
- 一种码流,所述码流包括如权利要求18至36中任一项所述的方法生成的码流。
- 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1至17,或18至36中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2024/073342 WO2025152176A1 (zh) | 2024-01-19 | 2024-01-19 | 编解码方法、编解码器、码流以及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2024/073342 WO2025152176A1 (zh) | 2024-01-19 | 2024-01-19 | 编解码方法、编解码器、码流以及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025152176A1 true WO2025152176A1 (zh) | 2025-07-24 |
Family
ID=96470631
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2024/073342 Pending WO2025152176A1 (zh) | 2024-01-19 | 2024-01-19 | 编解码方法、编解码器、码流以及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025152176A1 (zh) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113518222A (zh) * | 2021-06-07 | 2021-10-19 | 同济大学 | 不同类型串采用不同长度二值化方案的编解码方法及装置 |
| CN114079780A (zh) * | 2020-08-20 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 视频解码方法、视频编码方法、装置、设备及存储介质 |
| CN115086664A (zh) * | 2021-03-13 | 2022-09-20 | 腾讯科技(深圳)有限公司 | 未匹配像素的解码方法、编码方法、解码器以及编码器 |
-
2024
- 2024-01-19 WO PCT/CN2024/073342 patent/WO2025152176A1/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114079780A (zh) * | 2020-08-20 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 视频解码方法、视频编码方法、装置、设备及存储介质 |
| WO2022037464A1 (zh) * | 2020-08-20 | 2022-02-24 | 腾讯科技(深圳)有限公司 | 视频解码方法、视频编码方法、装置、设备及存储介质 |
| CN115086664A (zh) * | 2021-03-13 | 2022-09-20 | 腾讯科技(深圳)有限公司 | 未匹配像素的解码方法、编码方法、解码器以及编码器 |
| WO2022193868A1 (zh) * | 2021-03-13 | 2022-09-22 | 腾讯科技(深圳)有限公司 | 未匹配像素的解码方法、编码方法、解码器以及编码器 |
| CN113518222A (zh) * | 2021-06-07 | 2021-10-19 | 同济大学 | 不同类型串采用不同长度二值化方案的编解码方法及装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108810571A (zh) | 编码和解码二维点云的方法和设备 | |
| CN118414830A (zh) | 用于点云编解码的方法、装置和介质 | |
| WO2021012278A1 (zh) | 一种数据的处理方法、系统、编码器及解码器 | |
| WO2025152176A1 (zh) | 编解码方法、编解码器、码流以及存储介质 | |
| US20250225679A1 (en) | System and method for geometry point cloud coding | |
| WO2024148573A1 (zh) | 编解码方法、编码器、解码器以及存储介质 | |
| WO2025208498A1 (zh) | 编解码方法、编解码器、码流以及存储介质 | |
| CN118369921A (zh) | 用于几何点云编码的自适应属性编码 | |
| WO2025076656A1 (zh) | 编解码方法、编解码器以及存储介质 | |
| WO2025217937A1 (zh) | 编解码方法及装置、编解码器、码流、设备、存储介质 | |
| WO2025148072A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025145325A1 (zh) | 编解码方法、编解码器以及存储介质 | |
| WO2025076795A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025076790A1 (zh) | 编解码方法及装置、编解码器、码流、存储介质 | |
| WO2025000342A1 (zh) | 编解码方法、编码器、解码器以及存储介质 | |
| CN119318147B (zh) | 编解码方法、编码器、解码器以及存储介质 | |
| WO2026085837A1 (zh) | 编解码方法、编解码器、码流以及存储介质 | |
| WO2024213067A1 (en) | Decoding method, encoding method, bitstream, decoder, encoder and storage medium | |
| US20260105641A1 (en) | Efficient Coding of Corner and Vertex Attributes | |
| WO2024149203A1 (en) | Method, apparatus, and medium for point cloud coding | |
| WO2025007270A1 (zh) | 编解码方法、编码器、解码器、码流以及存储介质 | |
| WO2025000429A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025152005A1 (zh) | 编解码方法及装置、编解码器、码流、设备、存储介质 | |
| WO2025227794A1 (zh) | 编解码方法和装置 | |
| WO2025151992A1 (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: 24917799 Country of ref document: EP Kind code of ref document: A1 |