V-DMC displacement vector integer quantization
A device for decoding encoded mesh data determines, based on the encoded mesh data, a base mesh; determine, based on the encoded mesh data, a set of coefficients; receives in the encoded mesh data a quantization parameter value; determines an inverse scaling factor based on the quantization parameter value; performs an inverse scaling, based on the inverse scaling factor and using integer precision arithmetic, on the set of coefficients to determine a set of de-quantized coefficients; determines a displacement vector based on the set of de-quantized coefficients; deforms the base mesh based on the displacement vector to determine a decoded mesh; and outputs the decoded mesh.
1 . A device for decoding encoded mesh data, the device comprising:
one or more memory units;
one or more processing units implemented in circuitry, coupled to the one or more memory units, and configured to:
determine, based on the encoded mesh data, a base mesh;
determine, based on the encoded mesh data, a set of coefficients;
receive in the encoded mesh data a quantization parameter value;
determine an inverse scaling factor based on the quantization parameter value, wherein to determine the inverse scaling factor based on the quantization parameter value, the one or more processing units are configured to determine the inverse scaling factor according to the equation:
iscale
[
d
]
=
qp
>=
0
?
irtable
[
r
]
*
pow
(
2
,
bitDepth
+
q
-
16
)
:
0
wherein:
iscale represents the inverse scaling factor,
qp represents a quantization value,
bitDepth represents a bit depth of a displacement vector,
q represents a quotient value after dividing (qp−x)/y, wherein x and y are integer values,
r represents a remainder value after dividing (qp−x)/y,
irtable[r] represents a value determined from a lookup table based on the remainder value, and
pow(M,E) represents a function of M to power E;
perform an inverse scaling, based on the inverse scaling factor and using integer precision arithmetic, on the set of coefficients to determine a set of de-quantized coefficients;
determine the displacement vector based on the set of de-quantized coefficients;
deform the base mesh based on the displacement vector to determine a decoded mesh; and
output the decoded mesh.
2 . The device of claim 1 , wherein to determine the displacement vector based on the set of de-quantized coefficients, the one or more processing units are configured to apply an inverse transform using the integer precision arithmetic to the set of de-quantized coefficients.
3 . The device of claim 1 , wherein the quantization parameter value has a minimum value of 4 and a maximum value of 100.
4 . The device of claim 1 , wherein x equals 4 and y equals 6.
5 . The device of claim 1 , wherein irtable[r] includes values 128/128, 144/128, 161/128, 181/128, 203/128, and 228/128.
6 . The device of claim 1 , wherein irtable[r] includes values 2048/2048, 2299/2048, 2580/2048, 2896/2048, 3251/2048, 3649/2048.
7 . The device of claim 1 , further comprising:
a display configured to display the decoded mesh.
8 . The device of claim 1 , wherein to determine the displacement vector based on the set of de-quantized coefficients, the one or more processing units are configured to apply an inverse transform using the integer precision arithmetic to the set of de-quantized coefficients.
9 . The device of claim 1 , wherein to determine the inverse scaling factor based on the quantization parameter value, the one or more processing units are configured to determine the inverse scaling factor according to the equation:
iscale
[
d
]
=
qp
>=
0
?
irtable
[
r
]
*
pow
(
2
,
bitDepth
+
q
-
16
)
:
0
wherein
iscale represents the inverse scaling factor,
qp represents a quantization value,
bitDepth represents a bit depth of the displacement vector,
q represents a quotient value after dividing (qp−x)/y, wherein x and y are integer values,
r represents a remainder value after dividing (qp−x)/y,
irtable[r] represents a value determined from a lookup table based on the remainder value, and
pow(M,E) represents a function of M to power E.
10 . The device of claim 9 , wherein x equals 4 and y equals 6.
11 . The device of claim 9 , wherein irtable[r] includes values 128/128, 144/128, 161/128, 181/128, 203/128, and 228/128.
12 . The device of claim 9 , wherein irtable[r] includes values 2048/2048, 2299/2048, 2580/2048, 2896/2048, 3251/2048, 3649/2048.
13 . The device of claim 9 , further comprising:
a display configured to display the decoded mesh.
14 . A method of decoding encoded mesh data, the method comprising:
determining, based on the encoded mesh data, a base mesh;
determining, based on the encoded mesh data, a set of coefficients;
receiving in the encoded mesh data a quantization parameter value;
determining an inverse scaling factor based on the quantization parameter value, wherein determining the inverse scaling factor based on the quantization parameter value comprises determining the inverse scaling factor according to the equation:
iscale
[
d
]
=
qp
>=
0
?
irtable
[
r
]
*
pow
(
2
,
bitDepth
+
q
-
16
)
:
0.
wherein:
iscale represents the inverse scaling factor,
qp represents a quantization value,
bitDepth represents a bit depth of a displacement vector,
q represents a quotient value after dividing (qp−x)/y, wherein x and y are integer values,
r represents a remainder value after dividing (qp−x)/y,
irtable[r] represents a value determined from a lookup table based on the remainder value, and
pow(M,E) represents a function of M to power E;
performing an inverse scaling, based on the inverse scaling factor and using integer precision arithmetic, on the set of coefficients to determine a set of de-quantized coefficients;
determining the displacement vector based on the set of de-quantized coefficients;
deforming the base mesh based on the displacement vector to determine a decoded mesh; and
outputting the decoded mesh.
15 . The method of claim 14 , wherein determining the displacement vector based on the set of de-quantized coefficients comprises applying an inverse transform using the integer precision arithmetic to the set of de-quantized coefficients.
16 . The method of claim 14 , wherein the quantization parameter value has a minimum value of 4 and a maximum value of 100.
17 . The method of claim 14 , wherein x equals 4 and y equals 6.
18 . The method of claim 14 , wherein irtable[r] includes values 128/128, 144/128, 161/128, 181/128, 203/128, and 228/128.
19 . The method of claim 14 , wherein irtable[r] includes values 2048/2048, 2299/2048, 2580/2048, 2896/2048, 3251/2048, 3649/2048.
20 . A device for decoding encoded mesh data, the device comprising:
one or more memory units;
one or more processing units implemented in circuitry, coupled to the one or more memory units, and configured to:
determine, based on the encoded mesh data, a base mesh;
determine, based on the encoded mesh data, a set of coefficients;
receive in the encoded mesh data a quantization parameter value, wherein the quantization parameter value has a minimum value of 4 and a maximum value of 100;
determine an inverse scaling factor based on the quantization parameter value;
perform an inverse scaling, based on the inverse scaling factor and using integer precision arithmetic, on the set of coefficients to determine a set of de-quantized coefficients;
determine a displacement vector based on the set of de-quantized coefficients;
deform the base mesh based on the displacement vector to determine a decoded mesh; and
output the decoded mesh.