US 12,294,705 B2
Vector quantization for prediction residual coding
Debargha Mukherjee, Cupertino, CA (US); Lester Lu, Los Angeles, CA (US); and Elliott Karpilovsky, Santa Clara, CA (US)
Assigned to GOOGLE LLC, Mountain View, CA (US)
Appl. No. 17/779,692
Filed by Google LLC, Mountain View, CA (US)
PCT Filed Dec. 23, 2019, PCT No. PCT/US2019/068274
§ 371(c)(1), (2) Date May 25, 2022,
PCT Pub. No. WO2021/107964, PCT Pub. Date Jun. 3, 2021.
Claims priority of provisional application 62/940,271, filed on Nov. 26, 2019.
Prior Publication US 2023/0011893 A1, Jan. 12, 2023
Int. Cl. H04N 19/126 (2014.01); H04N 19/119 (2014.01); H04N 19/12 (2014.01); H04N 19/176 (2014.01); H04N 19/42 (2014.01); H04N 19/463 (2014.01); H04N 19/60 (2014.01)
CPC H04N 19/126 (2014.11) [H04N 19/119 (2014.11); H04N 19/12 (2014.11); H04N 19/176 (2014.11); H04N 19/42 (2014.11); H04N 19/463 (2014.11); H04N 19/60 (2014.11)] 18 Claims
OG exemplary drawing
 
1. An apparatus for decoding a current block of video, comprising:
a memory; and
a processor, the processor configured to execute instructions stored in the memory to:
decode, from a compressed bitstream, a flag indicating whether a residual block for the current block is encoded using vector quantization (VQ);
in response to the flag indicating that the residual block is encoded using VQ, execute instructions to:
decode a parameter indicating an entry in a codebook wherein to decode the parameter indicating the entry in the codebook comprises to:
decode a gain index identifying a gain scalar from a gain codebook, wherein the gain scalar represents a magnitude of the residual block;
decode a shape index identifying a unit-norm vector from a shape codebook, wherein the unit-norm vector represents a directional pattern of the residual block; and
decode a sign bit value; and
decode the residual block using the entry, wherein to decode the residual block comprises to: decode the residual block by multiplying the sign bit value, the gain scalar, and the unit-norm vector;
in response to the flag indicating that the residual block is not encoded using VQ, execute instructions to:
decode the residual block based on a skip flag indicating whether the current block is encoded using transform skip; and
reconstruct the current block using the residual block.