Arbitrary-resolution, extreme-quality video codec
Abstract
Image data to be compressed is first converted from the RGB domain into a gamma-powered YUV domain. A wavelet transform then separates image data into high- and low-detail sectors, incorporating a dynamic scaling method, allowing for optimal resolution. The output data from the wavelet transform is then quantized according to an entropy-prediction algorithm that tightly controls the final size of the processed image. An adaptive Golomb engine compresses the data using an adaptive form of Golomb encoding in which mean values are variable across the data. Using variable mean values reduces the deleterious effects found in conventional Golomb encoding in which localized regions of similar data are inefficiently coded if their bit values are uncommon in the data as a whole. Inverse functions are applied to uncompress the image, and a fractal dithering engine can additionally be applied to display an image on a display of lower color depth.
Claims
exact text as granted — not AI-modified1 . A computer-implemented method for compressing data, the method comprising:
nonlinearly transforming the data from a first domain to a second domain; applying a dynamically-scaled wavelet transform to the data in the second domain; quantizing selected sectors of the transformed data; applying a Golomb coding function to the quantized data to yield compressed data; and outputting the compressed data.
2 . The computer-implemented method of claim 1 wherein the first domain is an RGB domain and the second domain is a YUV domain.
3 . The computer-implemented method of claim 2 wherein a Y channel of the image data in the YUV domain is gamma-powered.
4 . The computer-implemented method of claim 1 wherein applying a dynamically scaled wavelet transform further comprises:
receiving a stage of a forward wavelet;
determining a minimum and a maximum value of the data;
estimating a maximum resulting output value of the wavelet transform; and
scaling the wavelet coefficients responsive to the estimated output value.
5 . The computer-implemented method of claim 1 wherein the wavelet transformed data has a Laplacian distribution.
6 . The computer-implemented method of claim 1 wherein the wavelet transformed data includes nonscalar sectors and a scalar sector, and the scalar sector is not quantized.
7 . The computer-implemented method of claim 6 wherein the scalar sector is processed by a predictor-corrector function and subjected to the Golomb coding function.
8 . The computer-implemented method of claim 1 wherein quantizing the transformed data further comprises quantizing the transformed data according to a specified compression ratio.
9 . The computer-implemented method of claim 8 wherein the compression ratio is applied to each frame.
10 . The computer-implemented method of claim 1 further comprising uncompressing the compressed data by:
applying an inverse Golomb coding function to the compressed data to obtain uncompressed quantized data;
applying an inverse quantization to the uncompressed quantized data to obtain wavelet-transformed data;
applying an inverse wavelet transform to obtain uncompressed data in the second domain;
transforming the uncompressed data from the second domain to the first domain; and
outputting the uncompressed data.
11 . The computer-implemented method of claim 10 further comprising applying a fractal dithering function to the uncompressed data in the first domain prior to outputting the uncompressed data.
12 . The computer-implemented method of claim 11 wherein the uncompressed data is output on a 48-bit virtual display.
13 . A system for compressing data, the system comprising:
a pre-processing engine for receiving data from a data source and transforming the data nonlinearly from a first domain to a second domain; a wavelet transformer, communicatively coupled to the pre-processing engine, for applying a dynamically-scaled wavelet transform to the data in the second domain; a quantizer, communicatively coupled to the wavelet transformer, for quantizing selected sectors of the wavelet-transformed data; and an adaptive Golomb engine, communicatively coupled to the quantizer, for compressing the quantized data.
14 . The system of claim 13 wherein the first domain is an RGB domain and the second domain is a YUV domain.
15 . The system of claim 14 wherein a Y channel of the image data in the YUV domain is gamma-powered.
16 . The system of claim 13 wherein the wavelet transformer dynamically scales the wavelet transform by:
receiving a stage of a forward wavelet;
determining a minimum and a maximum value of the data;
estimating a maximum resulting output value of the wavelet transform; and
scaling the wavelet coefficients responsive to the estimated output value.
17 . The system of claim 13 wherein the wavelet-transformed data has a Laplacian distribution.
18 . The system of claim 13 wherein the wavelet-transformed data includes nonscalar sectors and a scalar sector, and the quantizer does not quantize the scalar sector.
19 . The system of claim 18 further comprising a predictor-corrector module that processes the scalar sector, and wherein the adaptive Golomb engine additionally compresses the processed scalar sector.
20 . The system of claim 13 wherein the quantizer quantizes the transformed data according to a specified compression ratio.
21 . The system of claim 20 wherein the compression ratio is applied to each frame.
22 . The system of claim 13 wherein:
the adaptive Golomb engine is further configured to apply an inverse Golomb coding function to the compressed data to obtain uncompressed quantized data;
the quantizer is further configured to apply an inverse quantization to the uncompressed quantized data to obtain wavelet-transformed data;
the wavelet transformer is further configured to apply an inverse wavelet transform to obtain uncompressed data in the second domain; and
the pre-processing engine is further configured to transform the uncompressed data from the second domain to the first domain.
23 . The system of claim 22 further comprising a fractal dithering engine, communicatively coupled to the pre-processing engine, for dithering an image from a higher color depth to a lower color depth.
24 . A computer program product for compressing data, the computer program product stored on a computer-readable medium and including instructions for causing a processor of a computer to execute the steps of:
nonlinearly transforming the data from a first domain to a second domain; applying a dynamically-scaled wavelet transform to the data in the second domain; quantizing selected sectors of the transformed data; applying a Golomb coding function to the quantized data to yield compressed data; and outputting the compressed data
25 . A system for compressing data, the system comprising:
transforming means, for nonlinearly transforming the data from a first domain to a second domain; wavelet transforming means, communicatively coupled to the transforming means, for applying a dynamically-scaled wavelet transform to the data in the second domain; quantizing means, communicatively coupled to the wavelet transforming means, for quantizing selected sectors of the transformed data; Golomb coding means, communicatively coupled to the quantizing means, for applying a Golomb coding function to the quantized data to yield compressed data; and outputting means, communicatively coupled to the Golomb coding means, for outputting the compressed data.Join the waitlist — get patent alerts
Track US2010322305A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.