IP Library Granted Patent US 7,050,642
Granted Patent B2
US 7,050,642 · App. 10/856,606 · Granted May 23, 2006

Method and apparatus for video compression using microwavelets

Assignee: Next Software, Inc.
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 7,050,642
App. No.
10/856,606
Granted
May 23, 2006
Kind
B2
Abstract

A method and apparatus are disclosed for symmetrically compressing and decompressing video information in real time by coupling block and wavelet techniques. In the compression pipeline, the image is divided into blocks comprising 2 k ×2 k pixels (in the preferred embodiment, k=1). The average color of each block is computed. The system computes an average luminance for each block and differential luminances of each pixel of the plurality of pixels of each block. A first plurality of frequency details of each block are determined by Haar transforming the differential luminances. The system computes an average color difference between each block and the preceding block, and quantizes the average color difference and the first plurality of frequency details using Lloyd-Max quantization. In an alternate embodiment, skip codes are generated for blocks having the same quantized average color difference and second plurality of frequency details. The quantized average color difference and a second plurality of frequency details are encoded using variable length codes. The system employs lookup tables to decompress the compressed image and to format output pixels. The output of the compression pipeline containing variable length codes is decoded into fixed-length codes, which are then decoded using a first lookup table into three device-independent components that represent each block. The three components index a second lookup table containing precomputed RGB values that include precomputed display dependent formatting to produce the output image. In the alternate embodiment, skip codes contained in the output of the variable length decoder are decoded.

Claims (69)

1. A method for compressing an image of a first color space, wherein said image is divided into a plurality of blocks, comprising the steps of:

computing an average color of a block of said plurality of blocks, said block comprising a plurality of pixels;

computing an average luminance of said block dependent on said average color and a differential luminance of each pixel of said plurality of pixels of said block;

providing a first plurality of frequency details of said block by transforming said differential luminance of each pixel of said plurality of pixels of said block;

computing an average color difference between said block and a previous block;

quantizing said average color difference and said first plurality of frequency details; and

encoding said quantized average color difference and a second plurality of frequency details, wherein said second plurality of frequency details is less than or equal to said first plurality of frequency details.

2. A method for compressing image data comprising:

obtaining image data;

obtaining a plurality of data blocks from said image data; and

processing said plurality of data blocks using at least one wavelet method to compress said image data with successive computation results from said plurality of data blocks, wherein processing said plurality of data blocks comprises:

computing an average color of each of said data blocks;

computing an average luminance for each of said data blocks;

computing a differential luminance of each pixel;

computing a first plurality of frequency details of each of said data blocks;

computing an average color difference between each of said data blocks and a preceding data block; and

quantizing said average color difference and said first plurality of frequency details.

3. The method of claim 2 wherein obtaining said image data comprises obtaining a stream of video data.

4. The method of claim 2 wherein each of said plurality of data blocks comprises:

a plurality of pixels in an array having a dimension equal to two (2) to the power of “k” pixels, wherein “k” defines an integer number.

5. The method of claim 4 wherein “k” is one (1).

6. The method of claim 2 wherein computing said first plurality of frequency details comprises:

using a Haar transform.

7. The method of claim 2 wherein quantizing said average color difference and said first plurality of frequency details comprises:

using Lloyd-Max quantization.

8. The method of claim 2 further comprising:

generating skip codes for blocks that are similar with respect to said average color difference and a second plurality of frequency details.

9. The method of claim 8 further comprising:

using said skip codes in a lookup table.

10. The method of claim 9 wherein said lookup table is further used for decompressing said image data.

11. The method of claim 2 further comprising:

using variable length codes to encode said plurality of data blocks.

12. A computer program product embodied in a computer readable medium having computer readable program code embodied therein for compressing image data, said computer program product comprising:

program code configured to cause a computer to obtain image data;

program code configured to cause a computer to obtain a plurality of data blocks from said image data; and

program code configured to cause a computer to process said plurality of data blocks using at least one wavelet method to compress said image data with successive computation results from said plurality of data blocks, wherein said program code configured to cause a computer to process said plurality of data blocks comprises:

program code configured to cause a computer to compute an average color of each of said data blocks;

program code configured to cause a computer to compute an average luminance for each of said data blocks;

program code configured to cause a computer to compute a differential luminance of each pixel of said plurality of pixels;

program code configured to cause a computer to compute a first plurality of frequency details of each of said data blocks;

program code configured to cause a computer to compute an average color difference between each of said data blocks and a preceding block; and

program code configured to cause a computer to quantize said average color difference and said first plurality of frequency details.

13. The computer program product of claim 12 wherein said program code configured to cause a computer to obtain said image data comprises:

program code configured to cause a computer to obtain a stream of video data.

14. The computer program product of claim 12 wherein each of said plurality of data blocks comprises:

a plurality of pixels in an array having a dimension equal to two (2) to the power of “k” pixels, wherein “k” defines an integer number.

15. The computer program product of claim 14 wherein “k” is one (1).

16. The computer program product of claim 12 wherein said program code configured to cause a computer to compute said first plurality of frequency details comprises:

program code configured to cause a computer to use a Haar transform.

17. The computer program product of claim 12 wherein said program code configured to cause a computer to quantize comprises:

program code configured to cause a computer to use Lloyd-Max quantization.

18. The computer program product of claim 12 further comprising:

program code configured to cause a computer to generate skip codes for blocks that are similar with respect to said average color difference and a second plurality of frequency details.

19. The computer program product of claim 18 further comprising:

program code configured to cause a computer to use said skip codes in a lookup table.

20. The computer program product of claim 19 wherein said lookup table is further used by program code configured to cause a computer to decompress said image data.

21. The computer program product of claim 12 further comprising:

program code configured to cause a computer to use variable length codes to encode said plurality of data blocks.

22. An apparatus for compressing image data comprising:

an image divider configured to receive image data and provide a plurality of data blocks;

an averaging block configured to receive said plurality of data blocks and provide an average color value and an average luminance value for each of said data blocks;

a differential block configured to receive said average color value, said average luminance value and a plurality of luminance values associated with each of said data blocks, said differential block further configured to provide a differential luminance value for each pixel and a differential color value for each of said plurality of data blocks;

a transformation block configured to receive a plurality of said differential luminance values associated with each of said data block and provide frequency-based data;

a quantizer configured to receive said differential color value and said frequency-based data, and provide quantized color and frequency data; and

a variable length encoder configured to receive said quantized color and frequency data, and provide encoded data.

23. The apparatus of claim 22 , further comprising:

a skip code generator configured to receive said quantized color and frequency data and provide a skip code when a block of said quantized color and frequency data is similar to a previous block of said quantized color and frequency data.

24. The apparatus of claim 22 , wherein said quantizer uses Lloyd-Max quantization.

25. The apparatus of claim 22 , wherein said transformation block implements a Haar transform.

Assignments (1)
CHANGE OF NAME Recorded Mar 20, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019035/0042 →
Continuity (4)
Continuation 1032484500 · Dec 20, 2002
Continuation 0951447200 · Feb 28, 2000
Continuation 0824700600 · May 19, 1994
Related Publication 20040218825A1 · Nov 4, 2004