US 9,813,721 B2
Layer-based video encoding
Steffen Schulze, Dresden (DE)
Assigned to GetGo, Inc., Boston, MA (US)
Filed by GetGo, Inc., Boston, MA (US)
Filed on Nov. 20, 2014, as Appl. No. 14/548,642.
Prior Publication US 2016/0150235 A1, May 26, 2016
Int. Cl. H04N 7/12 (2006.01); H04N 19/30 (2014.01); H04N 19/132 (2014.01); H04N 19/44 (2014.01); H04N 19/50 (2014.01); H04N 19/513 (2014.01); H04N 19/119 (2014.01); H04N 19/61 (2014.01); H04N 19/463 (2014.01); H04N 19/157 (2014.01); H04N 19/187 (2014.01); H04N 19/625 (2014.01); H04N 19/29 (2014.01)
CPC H04N 19/30 (2014.11) [H04N 19/119 (2014.11); H04N 19/132 (2014.11); H04N 19/157 (2014.11); H04N 19/187 (2014.11); H04N 19/44 (2014.11); H04N 19/463 (2014.11); H04N 19/50 (2014.11); H04N 19/513 (2014.11); H04N 19/61 (2014.11); H04N 19/625 (2014.11); H04N 19/29 (2014.11)] 19 Claims
OG exemplary drawing
 
1. A method of encoding video signals, the method comprising:
operating electronic encoding circuitry to express a portion of a video signal as a set of blocks, each of the set of blocks including a two-dimensional array of pixels of the video signal;
for each current block of the set of blocks,
(i) generating multiple layers, each layer including a two-dimensional array of pixels and providing a rendition of the current block,
(ii) for each layer generated for the current block, generating an associated mask that identifies (a) one set of pixels that are to be used in reconstructing the current block and (b) another set of pixels that are not to be used in reconstructing the current block, and
(iii) compressing each of the layers using a lossy compression procedure, and
providing the compressed layers and a set of the masks for each of the set of blocks to a video decoder for reconstructing the portion of the video signal,
wherein compressing each of the layers for the current block includes (i) calculating a residual block for each layer generated for the current block, each residual block representing a difference between the current block and a prediction of the current block, and (ii) applying the lossy compression procedure to each residual block,
wherein the mask generated for each layer is a pixel-wise, 1-bit mask that has a first value for each pixel of the respective layer to be used in reconstructing the current block and a second value for each pixel of the respective layer not to be used in reconstructing the current block,
wherein, for each residual block, applying the lossy compression procedure to the residual block includes performing a DCT (Discrete Cosine Transform) operation on the residual block,
wherein the DCT operation (i) receives, as input, the residual block and the mask for that residual block and (ii) generates, as output, a set of DCT coefficients that are based on both the residual block and the mask,
wherein performing the DCT operation on each residual block includes performing multiple radix-2 butterfly operations, each radix-2 butterfly operation receiving a pair of inputs and generating a pair of outputs,
wherein, for one of the radix-2 butterfly operations, the pair of inputs represents a pair of pixels of the residual block, and
wherein, when generating the pair of outputs from the pair of pixels, the radix-2 butterfly operation performs the acts of:
(i) detecting that both of the pair of pixels are masked pixels, and
(ii) in response to detecting, providing zeros for both of the pair of outputs.