IP Library Granted Patent US 9,756,346
Granted Patent B2
US 9,756,346 · App. 14/873,688 · Granted Sep 5, 2017

Edge-selective intra coding

Inventors: Qunshan Gu (Hayward, CA); Yaowu Xu (Sunnyvale, CA)
Assignee: GOOGLE INC.
H04N19/176H04N19/11H04N19/14
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,756,346
App. No.
14/873,688
Granted
Sep 5, 2017
Kind
B2
Abstract

Edge-selective intra coding may include encoding a first input block, generating a first reconstructed block by decoding the first encoded block, determining a reconstruction error block based on a difference between the first input block and the first reconstructed block, identifying a second input block from the first input frame, and determining a plurality of refined context pixels. Determining a plurality of refined context pixels may include identifying a plurality of context pixels from the reconstruction error block, generating a plurality of encoded context pixels by encoding the plurality of context pixels, generating a plurality of reconstructed context pixels by decoding the plurality of encoded context pixels, and adding at least a portion of the reconstruction error block and the plurality of reconstructed context pixels. The method may include generating a second encoded block by encoding the second input block based on the plurality of refined context pixels.

Claims (78)

1. A method comprising:

generating a first encoded block by encoding a first input block from a first input frame from an input video stream;

generating a first reconstructed block by decoding the first encoded block;

determining a reconstruction error block based on a difference between the first input block and the first reconstructed block;

identifying a second input block from the first input frame;

determining a plurality of refined context pixels by:

identifying a plurality of context pixels from the reconstruction error block,

generating a plurality of encoded context pixels by encoding the plurality of context pixels,

generating a plurality of reconstructed context pixels by decoding the plurality of encoded context pixels, and

adding at least a portion of the reconstruction error block and the plurality of reconstructed context pixels;

generating, by a processor in response to instructions stored on a non-transitory computer readable medium, a second encoded block by encoding the second input block based on the plurality of refined context pixels;

including the second encoded block in an output bitstream; and

transmitting or storing the output bitstream.

2. The method of claim 1 , wherein encoding the first input block includes:

identifying a prediction block based on the first input block;

generating a residual block based on a difference between the first input block and the prediction block;

determining a transform block by transforming the residual block, the transform block including a plurality of transform coefficients; and

generating a quantized block by quantizing the transform block.

3. The method of claim 2 , wherein decoding the first encoded block includes:

generating a dequantized block by dequantizing the quantized block;

generating an inverse-transform block by inverse-transforming the dequantized block; and

generating the reconstructed block based on a sum of the inverse-transform block and the prediction block.

4. The method of claim 1 , wherein encoding the plurality of context pixels includes:

generating a plurality of quantized context pixels by quantizing the plurality of context pixels.

5. The method of claim 4 , wherein decoding the plurality of encoded context pixels includes:

dequantizing the plurality of quantized context pixels.

6. The method of claim 1 , wherein encoding the first input block includes intra-prediction coding the first input block.

7. The method of claim 1 , wherein encoding the first input block includes using a first quantization value and encoding the plurality of context pixels includes using a second quantization value.

8. The method of claim 1 , wherein encoding the first input block includes using transform domain quantization and encoding the plurality of context pixels includes using spatial domain quantization.

9. The method of claim 1 , wherein identifying the plurality of context pixels includes:

identifying the right most column of the reconstruction error block as the plurality of context pixels, on a condition that encoding the first input block includes using horizontal intra prediction; and

identifying the bottom most row of the reconstruction error block as the plurality of context pixels, on a condition that encoding the first input block includes using vertical intra prediction.

10. The method of claim 1 , wherein encoding the second input block include intra-coding the second input block.

11. A method comprising:

identifying a first input block from a first input frame from an input video stream;

generating a first encoded block by:

identifying a prediction block based on the first input block,

generating a residual block based on a difference between the first input block and the prediction block,

generating a transform block by transforming the residual block, the transform block including a plurality of transform coefficients, and

generating a quantized block by quantizing the transform block using a transform domain quantization value;

generating a first reconstructed block by decoding the first encoded block;

determining a reconstruction error block based on a difference between the first input block and the first reconstructed block;

identifying a second input block from the first input frame;

determining a plurality of refined context pixels by:

identifying a plurality of context pixels from the reconstruction error block,

generating a plurality of encoded context pixels by quantizing the plurality of context pixels using a spatial domain quantization value,

generating a plurality of reconstructed context pixels by decoding the plurality of encoded context pixels, and

adding at least a portion of the reconstruction error block and the plurality of reconstructed context pixels;

generating, by a processor in response to instructions stored on a non-transitory computer readable medium, a second encoded block by encoding the second input block based on the plurality of refined context pixels;

including the second encoded block in an output bitstream; and

transmitting or storing the output bitstream.

12. The method of claim 11 , wherein decoding the first encoded block includes:

generating a dequantized block by dequantizing the quantized block;

generating an inverse-transform block by inverse-transforming the dequantized block; and

generating the reconstructed block based on a sum of the inverse-transform block and the prediction block.

13. The method of claim 11 , wherein decoding the plurality of encoded context pixels includes:

dequantizing the plurality of quantized context pixels.

14. The method of claim 11 , wherein encoding the first input block includes intra-prediction coding the first input block.

15. The method of claim 11 , wherein identifying the plurality of context pixels includes:

identifying the right most column of the reconstruction error block as the plurality of context pixels, on a condition that encoding the first input block includes using horizontal intra prediction; and

identifying the bottom most row of the reconstruction error block as the plurality of context pixels, on a condition that encoding the first input block includes using vertical intra prediction.

16. The method of claim 11 , wherein encoding the second input block include intra-coding the second input block.

17. A method comprising:

identifying a current input block from a first input frame from an input video stream;

generating, by a processor in response to instructions stored on a non-transitory computer readable medium, a current encoded block by encoding the current input block, wherein encoding the current input block includes identifying a prediction block based on the current input block and a plurality of refined context pixels;

including the current encoded block in an output bitstream; and

transmitting or storing the output bitstream.

18. The method of claim 17 , identifying the prediction block includes:

generating a reconstructed block by decoding an encoded block;

generating a reconstruction error block for the reconstructed block;

identifying a plurality of context pixels from the reconstruction error block;

generating a plurality of encoded context pixels by encoding the plurality of context pixels;

generating a plurality of reconstructed context pixels by decoding the plurality of encoded context pixels; and

identifying the plurality of refined context pixels by adding at least a portion of the reconstruction error block and the plurality of reconstructed context pixels.

19. The method of claim 18 , wherein decoding the encoded block includes using a transform domain quantization value and decoding the plurality of encoded context pixels includes using a spatial domain quantization value.

20. The method of claim 18 , wherein identifying the plurality of context pixels includes:

identifying the right most column of the reconstruction error block as the plurality of context pixels, on a condition that encoding the first input block includes using horizontal intra prediction; and

identifying the bottom most row of the reconstruction error block as the plurality of context pixels, on a condition that encoding the first input block includes using vertical intra prediction.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044097/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2015
From: GU, QUNSHAN; XU, YAOWU
To: GOOGLE INC.
Reel/Frame 036765/0888 →
Continuity (2)
Division 13647080 · Oct 8, 2012
Related Publication 20160029034A1 · Jan 28, 2016