Method to generate for global displacement transformation in mesh compression
A method of encoding a mesh includes determining a symmetry plane that divides the mesh into a first side and a second side opposite the first side, the mesh comprising a plurality of vertices, the first side comprising a first set of vertices, the second side comprising a second set of vertices; determining, for each vertex in the first set, a predicted vertex on the second side that is symmetric to a corresponding vertex in the first set; determining a transformation function that transforms each predicted vertex on the second side, the transformation function determined in accordance with a loss function; applying the transformation function that transforms each predicted vertex on the second side; determining a displacement vector between each transformed predicted vertex and a corresponding vertex in the second set; and generating a bitstream that comprises each encoded vertex in the first set and each displacement vector.
1 . A method of encoding a mesh, comprising:
determining a symmetry plane that divides the mesh into a first side and a second side opposite the first side, the mesh comprising a plurality of vertices, the first side comprising a first set of vertices, the second side comprising a second set of vertices;
determining, for each vertex in the first set, a predicted vertex on the second side that is symmetric to a corresponding vertex in the first set;
determining, from a plurality of transformation functions, a transformation function that transforms each predicted vertex on the second side, the transformation function determined in accordance with a loss function;
applying the transformation function that transforms each predicted vertex on the second side;
determining a displacement vector between each transformed predicted vertex and a corresponding vertex in the second set, wherein the transformation function minimizes a number of bits for encoding each displacement vector; and
generating a bitstream that comprises each encoded vertex in the first set and each displacement vector.
2 . The method according to claim 1 , wherein the determining the transformation process comprises performing a registration process between the first set of vertices and the second set of vertices.
3 . The method according to claim 2 , wherein the registration process outputs, as the transformation function, a rotation function that rotates each predicted vertex on the second side.
4 . The method according to claim 3 , wherein the registration process outputs, as the transformation function, a translation function that translates each predicted vertex on the second side.
5 . The method according to claim 2 , wherein the loss function comprises (i) a mean square error function that minimizes the displacement vector between each transformed predicted vertex and the corresponding vertex in the second set and (ii) a cost function that minimizes the number of bits used to encode the displacement vector between each transformed predicted vertex and the corresponding vertex in the second set.
6 . The method according to claim 5 , wherein the mean square error function is weighted higher than the cost function.
7 . The method according to claim 5 , wherein the cost function is weighted higher than the mean square error function.
8 . The method according to claim 1 , further comprising:
performing a decimation on the mesh to reduce the number of vertices in the mesh,
wherein the transformation function is applied to the decimated mesh.
9 . A method of encoding a mesh, comprising:
generating a bitstream that comprises a portion of the mesh,
wherein a symmetry plane is determined that divides the mesh into a first side and a second side opposite the first side, the mesh comprising a plurality of vertices, the first side comprising a first set of vertices, the second side comprising a second set of vertices,
wherein, for each vertex in the first set, a predicted vertex on the second side that is symmetric to a corresponding vertex in the first set is determined,
wherein a transformation function is determined, from a plurality of transformation functions, that transforms each predicted vertex on the second side, the transformation function determined in accordance with a loss function;
wherein the transformation function that transforms each predicted vertex on the second side is applied,
wherein a displacement vector between each transformed predicted vertex and a corresponding vertex in the second set is determined, wherein the transformation function minimizes a number of bits for encoding each displacement vector, and
wherein the portion of the mesh in the bitstream comprises each vertex in the first set and each displacement vector.
10 . The method according to claim 9 , wherein the transformation process comprises a registration process between the first set of vertices and the second set of vertices.
11 . The method according to claim 10 , wherein the registration process outputs, as the transformation function, a rotation function that rotates each predicted vertex on the second side.
12 . The method according to claim 11 , wherein the registration process outputs, as the transformation function, a translation function that translates each predicted vertex on the second side.
13 . The method according to claim 10 , wherein the loss function comprises (i) a mean square error function that minimizes the displacement vector between each transformed predicted vertex and the corresponding vertex in the second set and (ii) a cost function that minimizes the number of bits used to encode the displacement vector between each transformed predicted vertex and the corresponding vertex in the second set.
14 . The method according to claim 13 , wherein the mean square error function is weighted higher than the cost function.
15 . The method according to claim 13 , wherein the cost function is weighted higher than the mean square error function.
16 . A method decoding an encoded mesh, comprising:
receiving a bitstream comprising the encoded mesh,
wherein the mesh is divided by a symmetry plane that divides the mesh into a first side and a second side opposite the first side, the mesh comprising a plurality of vertices, the first side comprising a first set of vertices, the second side comprising a second set of vertices,
wherein, for each vertex in the first set, a predicted vertex on the second side that is symmetric to a corresponding vertex in the first set is determined,
wherein a transformation function is determined, from a plurality of transformation functions, that transforms each predicted vertex on the second side, the transformation function determined in accordance with a loss function,
wherein the transformation function that transforms each predicted vertex on the second side is applied,
wherein a displacement vector between each transformed predicted vertex and a corresponding vertex in the second set is determined, wherein the transformation function minimizes a number of bits for encoding each displacement vector, and
wherein the bitstream comprises each encoded vertex in the first set and each displacement vector.