IP Library Granted Patent US 10,230,988
Granted Patent B2
US 10,230,988 · App. 15/219,356 · Granted Mar 12, 2019

Fast integer transform with adjusted DC coefficients

Inventor: Malcolm Ian Taylor (Palmerston North, NZ)
Assignee: OTOY, INC.
H04N19/625H04N19/00812H04N19/12H04N19/122H04N19/176H04N19/61H04N19/635
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 10,230,988
App. No.
15/219,356
Granted
Mar 12, 2019
Kind
B2
Abstract

Methods, apparatuses and systems directed to frequency domain transforms, including fast integer transforms and directional integer transforms. Further described is a video codec that utilizes a novel class of fast integer and directional transforms.

Claims (53)

1. A method comprising

accessing, by a processing unit, encoded video data of a video frame written in a memory space, wherein the video frame is divided into one or more macroblocks, each macroblock having a respective computed DC coefficient;

uncompressing, by the processing unit, the encoded video data of the video frame;

identifying, by the processing unit, correspondence between the one or more macroblocks of the video frame and the uncompressed video data;

determining, by the processing unit, a DC prediction value for each macroblock of the one or more macroblocks of the divided video frame based on at least a sum of respective computed DC coefficients of adjacent macroblocks of each macroblock less a respective computed DC coefficient of a diagonal macroblock of each macroblock;

adjusting, by the processing unit, the respective computed DC coefficient of each macroblock of the one or more macroblocks based on at least the determined DC prediction value;

constructing, by the processing unit, a transform coefficient matrix for each partition of each macroblock;

de-quantizing, by the processing unit, the transform coefficient matrix for each partition of each macroblock; and

applying, by the processing unit, an inverse transform operation to each macroblock.

2. The method according to claim 1 , wherein uncompressing the encoded video data comprises decoding the encoded data sequentially for each macroblock, finding choices and signals that each macroblock is encoded.

3. The method according to claim 1 , wherein the encoded video data includes a table that identifies starting bit positions for each macroblock.

4. The method according to claim 1 , wherein identifying correspondence between the one or more macroblocks of the video frame and the uncompressed video data further comprises identifying a mode for the one or more macroblocks from the uncompressed video data.

5. The method according to claim 4 , further comprising:

determining, by the processing unit, that the mode of the one or more macroblocks is I-mode; and

adjusting, by the processing unit, pixel values based on plane gradient parameters.

6. The method according to claim 4 , further comprising:

determining, by the processing unit, that the mode of the one or more macroblocks is P-mode; and

adjusting, by the processing unit, pixel values based on motion estimation parameters.

7. The method according to claim 1 , wherein the DC prediction values are determined in parallel processing operations by performing a 2D equivalent of a prefix sum.

8. The method according to claim 1 , further comprising:

upsampling, by the processing unit, chroma components of the video data; and

remapping, by the processing unit, the video data from a YCbCr color model to a RGB color model.

9. The method according to claim 8 , further comprising:

writing, by the processing unit, the remapped data to an on-screen memory for display.

10. The method according to claim 1 , wherein at least two of the steps can be done in parallel.

11. An apparatus comprising:

one or more network interfaces;

a memory;

one or more processors; and

one or more code modules stored on a computer-readable storage medium, the one or more code modules comprising computer-readable instructions operative to cause selected ones of the one or more processors to:

access encoded video data of a video frame written in a memory space, wherein the video frame is divided into one or more macroblocks, each macroblock having a respective computed DC coefficient;

uncompress the encoded video data of the video frame;

identify correspondence between the one or more macroblocks of the video frame and the uncompressed video data;

determine a DC prediction value for each macroblock of the one or more macroblocks of the divided video frame based on at least a sum of respective computed DC coefficients of adjacent macroblocks of each macroblock less a respective computed DC coefficient of a diagonal macroblock of each macroblock;

adjust the respective computed DC coefficient of each macroblock of the one or more macroblocks based on at least the determined DC prediction value;

construct a transform coefficient matrix for each partition of each macroblock;

de-quantize the transform coefficient matrix for each partition of each macroblock; and

apply an inverse transform operation to each macroblock.

12. The apparatus according to claim 11 , wherein identify correspondence between the one or more macroblocks of the video frame and the uncompressed video data further causes the one or more processors and the graphics processing unit to:

identify a mode for the one or more macroblocks from the uncompressed video data.

13. The apparatus according to claim 12 , wherein the computer-readable instructions operative to further cause the one or more processors and the graphics processing unit to:

determining that the mode of the one or more macroblocks is I-mode; and

adjusting pixel values based on plane gradient parameters.

14. The apparatus according to claim 12 , wherein the computer-readable instructions operative to further cause the one or more processors and the graphics processing unit to:

determining that the mode of the one or more macroblocks is P-mode; and

adjusting pixel values based on motion estimation parameters.

15. The apparatus according to claim 11 , wherein the DC prediction values are determined in parallel processing operations by performing a 2D equivalent of a prefix sum.

16. The apparatus according to claim 11 , wherein the computer-readable instructions operative to further cause:

upsampling chroma components of the video data; and

remapping the video data from a YCbCr color model to a RGB color model.

17. The apparatus according to claim 16 , wherein the computer-readable instructions operative to further cause:

writing the remapped data to an on-screen memory for display.

18. The apparatus according to claim 11 , wherein at least two of the steps of the computer-readable instructions can be done in parallel.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2017
From: TAYLOR, MALCOLM IAN
To: OTOY LLC
Reel/Frame 041579/0046 →
CHANGE OF NAME Recorded Mar 15, 2017
From: OTOY LLC
To: OTOY, INC.
Reel/Frame 042011/0166 →
Continuity (3)
Continuation 13965790 · Aug 13, 2013
Division 12709343 · Feb 19, 2010
Related Publication 20170055002A1 · Feb 23, 2017