IP Library Granted Patent US 9,369,732
Granted Patent B2
US 9,369,732 · App. 13/647,089 · Granted Jun 14, 2016

Lossless intra-prediction video coding

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,369,732
App. No.
13/647,089
Granted
Jun 14, 2016
Kind
B2
Abstract

Blocks of a frame of a video stream can be encoded using lossless intra-prediction encoding. The compression ratio of lossless intra-prediction encoding can be improved by performing lossy encoding on the intra-predicted residual. The encoded residual is then decoded and the reconstructed residual is subtracted from the original residual. The resulting difference residual is encoded using lossless encoding and included in the output bitstream along with the lossy encoded residual, permitting the block to be decoded with no loss at a decoder.

Claims (45)

1. A method for encoding a digital video stream including a plurality of frames, the method comprising:

selecting a block of a frame of the plurality of frames, the block being one of a plurality of blocks of the frame;

performing, using a processor, intra-prediction on the block to calculate a first residual block;

encoding the first residual block to form an encoded residual block by:

transforming the first residual block to form a transformed residual block;

selecting an optimized quantization value for quantizing the transformed residual block, wherein selecting the optimized quantization value comprises:

for each quantization value of a plurality of quantization values:

quantizing the transformed residual block using the quantization value to form a quantized first residual block;

de-quantizing the quantized first residual block to form a transformed second residual block;

inverse transforming the transformed second residual block to form a second residual block;

subtracting the second residual block from the first residual block to form a third residual block; and

calculating a bit cost of the quantized first residual block and the third residual block; wherein the optimized quantization value is based on a comparison of the bit cost for each of the quantization values of the plurality of quantization values; and

quantizing the transformed residual block to form the encoded residual block using the optimized quantization value;

entropy coding the encoded residual block to include in an encoded video bitstream;

decoding the encoded residual block to form a fourth residual block by:

de-quantizing the transformed residual block to form a de-quantized residual block; and

inverse transforming the de-quantized residual block to form the fourth residual block;

subtracting the fourth residual block from the first residual block to form a difference residual block;

entropy coding the difference residual block to form an encoded difference residual block; and

including the encoded difference residual block in the encoded video bitstream.

2. The method of claim 1 , further comprising:

adding bits to a header in the encoded video bitstream to indicate that the encoded difference residual block is included in the encoded video bitstream.

3. An apparatus for encoding a video stream including a plurality of frames, comprising:

a memory; and

a processor configured to execute instructions stored in the memory to:

select a block of a frame of the plurality of frames, the block being one of a plurality of blocks of the frame;

perform intra-prediction on the block to calculate a first residual block;

encode the first residual block to form an encoded residual block by:

transforming the first residual block to form a transformed residual block; and

quantizing the transformed residual block to form the encoded residual block using an optimized quantization value determined by, for each quantization value of a plurality of quantization values:

quantizing the transformed residual block using the quantization value to form a quantized first residual block;

de-quantizing the quantized first residual block to form a transformed second residual block;

inverse transforming the transformed second residual block to form a second residual block;

subtracting the second residual block from the first residual block to form a third residual block;

calculating a bit cost of the quantized first residual block and the third residual block; and

selecting the optimized quantization value to quantize the first residual block based on a comparison of the bit cost for each of the quantization values of the plurality of quantization values;

entropy code the encoded residual block to include in an encoded video bitstream;

decode the encoded residual block to form a fourth residual block by:

de-quantizing the transformed residual block to form a de-quantized residual block; and

inverse transforming the de-quantized residual block to form the fourth residual block;

subtract the fourth residual block from the first residual block to form a difference residual block;

entropy code the difference residual block to form an encoded difference residual block; and

include the encoded difference residual block in the encoded video bitstream.

4. The apparatus of claim 3 wherein a quantization value is optimized for each respective block of the plurality of blocks.

5. The apparatus of claim 4 wherein the processor is configured to add bits to a header in the encoded video bitstream to indicate that the difference residual block is included in the encoded video bitstream.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2012
From: GU, QUNSHAN; XU, YAOWU
To: GOOGLE INC.
Reel/Frame 029102/0427 →