Fix-point implementation of mesh codec
Systems, devices, and methods for fixed point implementation of a subdivision processing for video decoding are provided, which may include obtaining two vertices associated with an encoded mesh, determining a first normal vector and a second normal vector with integer components. It may also include determining a first normalized normal vector based on the first normal vector and a second normalized normal vector based on the second normal vector using an inverse square root function and determining a middle normalized normal vector associated with a middle-point based on the combination of the fix-point number with the first pre-defined number of digits, the right-shift operation by the second pre-defined number, and the components of the middle-point. It may also include decoding the encoded mesh based on the first normalized normal vector, the second normalized normal vector, and the middle normalized normal vector.
1 . A method for fixed point implementation of a subdivision processing for video decoding, the method being performed by at least one processor, the method comprising:
obtaining, from a coded bitstream, two vertices associated with an encoded mesh, the two vertices having integer components;
determining a first normal vector associated with a first vertex and a second normal vector associated with a second vertex, wherein components of the first normal vector and the second normal vector are integers;
determining a first normalized normal vector based on the first normal vector and a second normalized normal vector based on the second normal vector using an inverse square root function, a normalized normal vector is determined using a combination of a fix-point number with a first pre-defined number of digits, a right-shift operation by a second pre-defined number, and the components of the respective normal vector;
determining a middle normalized normal vector associated with a middle-point, the components of the middle-point are determined based on a combination of the components of the first normal vector and the second normal vector and the right-shift operation by a third pre-defined number, and the middle normalized normal vector is determined using the combination of the fix-point number with the first pre-defined number of digits, the right-shift operation by the second pre-defined number, and the components of the middle-point;
determining higher precision integer components for the two vertices based on a left-shift operation by a fourth pre-defined number; and
decoding the encoded mesh based on the first normalized normal vector, the second normalized normal vector, and the middle normalized normal vector.
2 . The method of claim 1 , wherein the fix-point number is used to represent a fractional part of the normalized normal vector.
3 . The method of claim 1 , wherein the first normalized normal vector and the second normalized normal vector are determined based on the higher precision integer components.
4 . The method of claim 1 , wherein the components of the middle-point are determined based on the higher precision integer components for the two vertices.
5 . The method of claim 1 , wherein the middle normalized normal vector is determined based on the higher precision integer components for the two vertices.
6 . An apparatus for fixed point implementation of a subdivision processing for video decoding, the apparatus comprising:
at least one memory configured to store program code; and
at least one processor configured to read the program code and operate as instructed by the program code, the program code including:
first obtaining code configured to cause the at least one processor to obtain, from a coded bitstream, two vertices associated with an encoded mesh, the two vertices have integer components;
second determining code configured to cause the at least one processor to determine a first normal vector associated with a first vertex and a second normal vector associated with a second vertex, wherein components of the first normal vector and the second normal vector are integers;
third determining code configured to cause the at least one processor to determine a first normalized normal vector based on the first normal vector and a second normalized normal vector based on the second normal vector using an inverse square root function, a normalized normal vector is determined using a combination of a fix-point number with a first pre-defined number of digits, a right-shift operation by a second pre-defined number, and the components of the respective normal vector;
fourth determining code configured to cause the at least one processor to determine a middle normalized normal vector associated with a middle-point, the components of the middle-point are determined based on a combination of the components of the first normal vector and the second normal vector and the right-shift operation by a third pre-defined number, and the middle normalized normal vector is determined using the combination of the fix-point number with the first pre-defined number of digits, the right-shift operation by the second pre-defined number, and the components of the middle-point;
fifth determining code configured to cause the at least one processor to determine higher precision integer components for the two vertices based on a left-shift operation by a fourth pre-defined number; and
decoding code configured to cause the at least one processor to decode the encoded mesh based on the first normalized normal vector, the second normalized normal vector, and the middle normalized normal vector.
7 . The apparatus of claim 6 , wherein the fix-point number is used to represent a fractional part of the normalized normal vector.
8 . The apparatus of claim 6 , wherein the first normalized normal vector and the second normalized normal vector are determined based on the higher precision integer components.
9 . The apparatus of claim 6 , wherein the components of the middle-point are determined based on the higher precision integer components for the two vertices.
10 . The apparatus of claim 6 , wherein the middle normalized normal vector is determined based on the higher precision integer components for the two vertices.
11 . A non-transitory computer-readable medium storing instructions, the instructions comprising: one or more instructions that, when executed by one or more processors of a device for fixed point implementation of a subdivision processing for video decoding, cause the one or more processors to:
obtain, from a coded bitstream, two vertices associated with an encoded mesh, the two vertices have integer components;
determine a first normal vector associated with a first vertex and a second normal vector associated with a second vertex, wherein components of the first normal vector and the second normal vector are integers;
determine a first normalized normal vector based on the first normal vector and a second normalized normal vector based on the second normal vector using an inverse square root function, a normalized normal vector is determined using a combination of a fix-point number with a first pre-defined number of digits, a right-shift operation by a second pre-defined number, and the components of the respective normal vector;
determine a middle normalized normal vector associated with a middle-point, the components of the middle-point are determined based on a combination of the components of the first normal vector and the second normal vector and the right-shift operation by a third pre-defined number, and the middle normalized normal vector is determined using the combination of the fix-point number with the first pre-defined number of digits, the right-shift operation by the second pre-defined number, and the components of the middle-point;
determine higher precision integer components for the two vertices based on a left-shift operation by a fourth pre-defined number; and
decode the encoded mesh based on the first normalized normal vector, the second normalized normal vector, and the middle normalized normal vector.
12 . The non-transitory computer-readable medium of claim 11 , wherein the fix-point number is used to represent a fractional part of the normalized normal vector.
13 . The non-transitory computer-readable medium of claim 11 , wherein the first normalized normal vector and the second normalized normal vector are determined based on the higher precision integer components.
14 . The non-transitory computer-readable medium of claim 11 , wherein the middle normalized normal vector is determined based on the higher precision integer components for the two vertices.