IP Library Granted Patent US 9,106,933
Granted Patent B1
US 9,106,933 · App. 13/110,278 · Granted Aug 11, 2015

Apparatus and method for encoding video using different second-stage transform

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,106,933
App. No.
13/110,278
Granted
Aug 11, 2015
Kind
B1
Abstract

A system, apparatus, and method of encoding a video stream having a plurality of frames, each frame having a plurality of blocks is disclosed. The method includes selecting a group of blocks from a current frame of the plurality of frames, determining a plurality of first stage transform coefficient matrices for the group of blocks using a first transform technique, determining a DC second stage transform coefficient matrix for the group of blocks based on at least some of the plurality of first stage transform coefficient matrices and using a second transform technique on a processor, and encoding the group of blocks into an encoding format using the DC second stage coefficient matrix and the first stage coefficient matrices.

Claims (42)

1. A method comprising:

identifying a current block of a current frame of an input video stream;

generating an encoded block from the current block by encoding, by a processor in response to instructions stored on a non-transitory computer readable medium, the current block, wherein encoding the current block includes:

generating a first order transform block including a plurality of transform coefficients based on at least a portion of the current block using a first transform technique,

identifying a plurality of average intensity coefficients from the plurality of transform coefficients, wherein each average intensity coefficient from the plurality of average intensity coefficients represents an average intensity of a respective subblock of the first order transform block,

determining whether to encode the current block using a second transform technique, and

generating a second order transform block based on the plurality of average intensity coefficients using the second transform technique;

including the encoded block in an output bitstream; and

storing or transmitting the output bitstream.

2. The method of claim 1 , wherein the first transform technique is a discrete cosine transform technique.

3. The method of claim 1 , wherein the second transform technique is a Walsh-Hadamard transform technique.

4. The method of claim 1 , wherein encoding the current block includes using the second transform technique on a condition that encoding the current block includes using a prediction mode other than a split mode.

5. The method of claim 1 , wherein encoding the current block includes using the second transform technique on a condition that encoding the current block includes using a prediction mode other than a mode wherein each subblock is independently predicted.

6. The method of claim 1 , wherein generating the first order transform block includes generating a plurality of subblocks.

7. The method of claim 6 , wherein each subblock from the plurality of subblocks includes a respective average intensity coefficient.

8. The method of claim 7 , wherein identifying the plurality of average intensity coefficients includes generating another subblock that includes the plurality of average intensity coefficients.

9. A method comprising:

identifying a current block of a current frame of an input video stream;

generating an encoded block from the current block by encoding, by a processor in response to instructions stored on a non-transitory computer readable medium, the current block, wherein encoding the current block includes:

generating a first order transform block including a plurality of transform coefficients based on at least a portion of the current block using a first transform technique, wherein generating the first order transform block includes generating a plurality of subblocks, wherein each subblock from the plurality of subblocks includes a respective average intensity coefficient that represents an average intensity of the respective subblock,

generating a constructed subblock that includes the respective average intensity coefficient from each subblock from the plurality of subblocks,

determining whether to encode the current block using a second transform technique, and

generating a second order transform block based on the constructed subblock using the second transform technique;

including the encoded block in an output bitstream; and

storing or transmitting the output bitstream.

10. The method of claim 9 , wherein the first transform technique is a discrete cosine transform technique.

11. The method of claim 9 , wherein the second transform technique is a Walsh-Hadamard transform technique.

12. The method of claim 9 , wherein encoding the current block includes using the second transform technique on a condition that encoding the current block includes using a prediction mode other than a split mode.

13. The method of claim 9 , wherein encoding the current block includes using the second transform technique on a condition that encoding the current block includes using a prediction mode other than a mode wherein each subblock is independently predicted.

14. A method comprising:

identifying a current block of a current frame of an input video stream;

generating an encoded block from the current block by encoding, by a processor in response to instructions stored on a non-transitory computer readable medium, the current block, wherein encoding the current block includes:

generating a first order transform block including a plurality of transform coefficients based on at least a portion of the current block using a first transform technique, wherein generating the first order transform block includes generating a plurality of subblocks, wherein each subblock from the plurality of subblocks includes a respective average intensity coefficient that represents an average intensity of the respective subblock,

generating a constructed subblock that includes the respective average intensity coefficient from each subblock from the plurality of subblocks,

determining whether to encode the current block using a second transform technique, and

generating a second order transform block based on the constructed subblock using the second transform technique;

including the encoded block in an output bitstream; and

storing or transmitting the output bitstream.

15. The method of claim 9 , wherein the first transform technique is a discrete cosine transform technique.

16. The method of claim 9 , wherein the second transform technique is a Walsh-Hadamard transform technique.

17. The method of claim 9 , wherein encoding the current block includes using the second transform technique on a condition that encoding the current block includes using a prediction mode other than a split mode.

18. The method of claim 9 , wherein encoding the current block includes using the second transform technique on a condition that encoding the current block includes using a prediction mode other than a mode wherein each subblock is independently predicted.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2011
From: BANKOSKI, JAMES; WILKINS, PAUL; XU, YAOWU
To: GOOGLE INC.
Reel/Frame 026300/0864 →