Apparatus for compression using reversible embedded wavelets
First Claim
Patent Images
1. A forward wavelet transform filter for filtering an input data signal comprising:
- a first adder for adding a first pair of samples of the input data signal to generate a first result;
a first divider coupled to receive the first result to divide the first result by a first factor into a second result, wherein the second result is output as a first low-pass coefficient;
a first subtractor coupled to receive and subtract the first low-passed coefficient from the second result to produce a third result;
a second subtractor for subtracting a second pair of samples of the input data signal from each other to produce a fourth result;
a multiplier coupled to receive the fourth result to multiply the fourth result by a second factor to produce a fifth result;
a second adder coupled to receive and add the third result and the fifth result to produce a sixth result;
a second divider coupled to receive the sixth result and divide the sixth result by a third factor to generate a second low-pass coefficient, wherein the first low-pass coefficient and the second low-pass coefficient are output from the filter.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for encoding and decoding data is described. The present invention includes a method and apparatus for generating transformed signals in response to input data. In one embodiment, the transformed signals are generated using a reversible wavelet transform. The present invention also includes a method and apparatus for compressing the transformed signals into data representing a losslessly compressed version of the input data. In one embodiment, the present invention decomposes the input data using a non-minimal length reversible filter. The decomposition may be performed using multiple one-dimension filters.
140 Citations
61 Claims
-
1. A forward wavelet transform filter for filtering an input data signal comprising:
-
a first adder for adding a first pair of samples of the input data signal to generate a first result;
a first divider coupled to receive the first result to divide the first result by a first factor into a second result, wherein the second result is output as a first low-pass coefficient;
a first subtractor coupled to receive and subtract the first low-passed coefficient from the second result to produce a third result;
a second subtractor for subtracting a second pair of samples of the input data signal from each other to produce a fourth result;
a multiplier coupled to receive the fourth result to multiply the fourth result by a second factor to produce a fifth result;
a second adder coupled to receive and add the third result and the fifth result to produce a sixth result;
a second divider coupled to receive the sixth result and divide the sixth result by a third factor to generate a second low-pass coefficient, wherein the first low-pass coefficient and the second low-pass coefficient are output from the filter. - View Dependent Claims (2, 3)
-
-
4. An inverse wavelet transform filter for filtering an input data signal comprising:
-
a first subtractor for subtracting a pair of low-pass coefficients to produce a first result;
a second subtractor for subtracting a shifted version of the first result from a high-pass coefficient to produce a second result;
a first adder for adding the second result to a shifted version of a low-pass coefficient and a least significant bit of the second result to produce a third result;
a third subtractor for subtracting the second result from the shifted version the low-pass coefficient and the least significant bit of the second result to produce a fourth result;
wherein the filter outputs a first sample based on the third result and a second sample based on the fourth result.- View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12)
wherein bits of the low-pass coefficient are wired to a second input of the first adder so that the low-power coefficient appears at the second input as the shifted version of the low-pass coefficient which represents the low-pass coefficient multiplied by a first number.
-
-
13. An encoder for encoding input data into a compressed data stream, said encoder comprising:
-
a reversible wavelet filter for transforming the input data into a plurality of coefficients, wherein the wavelet filter comprises;
a first adder to add a first pair of samples of the input data signal to generate a first result;
a first output circuit coupled to the first adder to output a first low-pass coefficient that is a shifted version of the first result;
a first subtractor having inputs of a second low-passed coefficient and the first low-pass coefficient, the first subtractor to subtract the second low-passed coefficient from the first low-pass coefficient to produce a second result;
a second subtractor to subtract a second pair of samples of the input data signal from each other to produce a third result;
a second adder coupled to add a shifted version of the third result and the second result to produce a fourth result;
a second output circuit coupled to generate a third low-pass coefficient that is a shifted version of the fourth result, such that the filter outputs comprise the first and third low-pass coefficients; and
an embedded coder coupled to the reversible wavelet filter to perform embedded coding on the plurality of coefficients, such that a bit stream is generated; and
an entropy coder coupled to the embedded coder to perform entropy coding on the bit stream to create coded data. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
wherein bits of the third result are wired to a second input of the second adder so that the third result appears at the second input as the shifted version of the third result which represents the third result divided by a first number; and
wherein bits of the fourth result are wired to the output so that the fourth result appears at the output as the shifted version of the fourth result which represents the fourth result divided by a first number.
-
-
17. The filter defined in claim 14 wherein the first number comprises 2.
-
18. The filter defined in claim 15 wherein the first number comprises 4.
-
19. The filter defined in claim 13 wherein bits of the first result are wired to an input of the first subtractor so that the first result appears at the input as the shifted version of the first result which represents the first result divided by a first number.
-
20. The filter defined in claim 19 wherein the first number comprises 2.
-
21. The filter defined in claim 13 wherein bits of the third result are wired to an input of the second adder so that the third result appears at the input as the shifted version of the third result which represents the third result divided by a first number.
-
22. The filter defined in claim 21 wherein the first number comprises 4.
-
23. The filter defined in claim 13 wherein bits of the fourth result are wired to the output so that the fourth result appears at the output as the shifted version of the fourth result which represents the fourth result divided by a first number.
-
24. The filter defined in claim 23 wherein the first number comprises 2.
-
25. A forward wavelet transform filter for filtering an input data signal comprising:
-
a first adder to add a first pair of samples of the input data signal to generate a first result;
a first output circuit coupled to the first adder to output a first low-pass coefficient that is a shifted version of the first result;
a first subtractor having inputs of a second low-pass coefficient and the first low-pass coefficient, the first subtractor to subtract the second low-pass coefficient from the first low-pass coefficient to produce a second result;
a second subtractor to subtract a second pair of samples of the input data signal from each other to produce a third result;
a second adder coupled to add a shifted version of the third result and the second result to produce a fourth result;
a second output circuit coupled to generate a third low-pass coefficient that is a shifted version of the fourth result, such that the filter outputs comprise the first and third low-pass coefficients. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
wherein bits of the third result are wired to a second input of the second adder so that the third result appears at the second input as the shifted version of the third result which represents the third result divided by a first number; and
wherein bits of the fourth result are wired to the output so that the fourth result appears at the output as the shifted version of the fourth result which represents the fourth result divided by a first number.
-
-
39. A wavelet transform filter for filtering an input data signal comprising:
-
first adder means for adding a first pair of samples of the input data signal to generate a first result;
first output means coupled to the first adder means for outputting a first low-pass coefficient that is a shifted version of the first result;
first subtracting means for subtracting a second low-pass coefficient from the first low-pass coefficient to produce a second result, wherein the second low-pass coefficient is received by the first subtracting means as a feedback;
second subtracting means for subtracting a second pair of samples of the input data signal from each other to produce a third result;
second adder means for adding a shifted version of the third result to the second result to produce a fourth result;
second output means for generating a third low-pass coefficient that is a shifted version of the fourth result, such that the filter outputs comprise the first and third low-pass coefficients. - View Dependent Claims (40, 41, 42, 43)
-
-
44. A forward wavelet transform filter for filtering an input data signal comprising:
-
first adding means for adding a first pair of samples of the input data signal to generate a first result;
dividing means for dividing the first result by a first factor into a second result, wherein the second result is output as a first low-pass coefficient;
first subtracting means for subtracting a low-passed coefficient from the second result to produce a third result;
second subtracting means for subtracting a second pair of samples of the input data signal from each other to produce a fourth result;
multiplying means to multiply the third result by a second factor to produce a fifth result;
second adding means for adding the third result and the second result to produce a sixth result; and
second dividing means for dividing the sixth result by a third factor to generate a second low-pass coefficient, wherein the first low-pass coefficient and the second low-pass coefficient are output from the filter. - View Dependent Claims (45, 46)
-
-
47. An inverse wavelet transform filter for filtering an input data signal comprising:
-
first subtracting means for subtracting a pair of low-pass coefficients to produce a first result;
second subtracting means for subtracting a shifted version of the first result from a high-pass coefficient to produce a second result;
adding means for adding the second result to a shifted version of a low-pass coefficient and a least significant bit of the second result to produce a third result; and
third subtracting means for subtracting the shifted version the low-pass coefficient and the least significant bit of the second result to produce a fourth result, wherein filter outputs a first sample based on the third result and a second sample based on the fourth result. - View Dependent Claims (48, 49, 50)
-
-
51. A decoder for decoding input data into a decompressed data stream, the decoder comprising:
-
an entropy decoder to perform entropy decoding to generate decoded data;
an embedded decoder coupled to the entropy decoder to generate a plurality of coefficients in response to the decoded data; and
an inverse filter coupled to the embedded decoder to generate the decompressed data stream in response to the plurality of coefficients, the inverse filter comprising a first subtractor for subtracting a pair of low-pass coefficients to produce a first result;
a second subtractor for subtracting a shifted version of the first result from a high-pass coefficient to produce a second result;
a first adder for adding the second result to a shifted version of a low-pass coefficient and a least significant bit of the second result to produce a third result;
a third subtractor for subtracting the second result from the shifted version of the low-pass coefficient and the least significant bit of the second result to produce a fourth result, wherein filter outputs a first sample based on the third result and a second sample based on the fourth result. - View Dependent Claims (52, 53, 54, 55, 56, 57, 58, 59)
wherein bits of the low-pass coefficient are wired to a second input of the first adder so that the low-pass coefficient appears at the second input as the shifted version of the low-pass coefficient which represents the low-pass coefficient multiplied by a first number.
-
-
57. The filter defined in claim 51 further comprising a first clip mechanism coupled to receive the third result and clip the third result to produce the first sample.
-
58. The filter defined in claim 51 further comprising a divider coupled to the first result to divide the first number result by a first number to produce the first input.
-
59. The filter defined in claim 51 further comprising a multiplier coupled to the low-pass coefficient to multiply the low-pass coefficient to generate the second input.
-
60. A decoder for decoding input data into a decompressed data stream, the decoder comprising:
-
an entropy decoder to perform entropy decoding to generate decoded data;
an embedded decoder coupled to the entropy decoder to generate a plurality of coefficients in response to the decoded data; and
an inverse filter coupled to the embedded decoder to generate the decompressed data stream in response to the plurality of coefficients, the inverse filter comprising a first subtractor for subtracting a pair of low-pass coefficients to produce a first result;
a second subtractor for subtracting a shifted version of the first result from a high-pass coefficient to produce a second result;
a first adder for adding the second result to a shifted version of a low-pass coefficient and a least significant bit of the second result to produce a third result;
a third subtractor for subtracting the second result from the shifted version of the low-pass coefficient and the least significant bit of the second result to produce a fourth result, wherein filter outputs a first sample based on the third result and a second sample based on the fourth result;
wherein bits of the first result are wired to an input of the second subtractor so that the first result appears at the input as the shifted version of the first result which represents the first result divided by a first number;
wherein bits of the low-pass coefficient are wired to an input of the first adder so that the low-pass coefficient appears at the input as the shifted version of the low-pass coefficient which represents the low-pass coefficient multiplied by a first number;
wherein bits of the first result are wired to a first input of the second subtractor so that the first result appears at the first input as the shifted version of the first result which represents the first result divided by a first number; and
wherein bits of the low-pass coefficient are wired to a second input of the first adder so that the low-pass coefficient appears at the second input as the shifted version of the low-pass coefficient which represents the low-pass coefficient multiplied by a first number.
-
-
61. An inverse wavelet transform filter for filtering an input data signal comprising:
-
a first subtractor for subtracting a pair of low-pass coefficients to produce a first result;
a second subtractor for subtracting a shifted version of the first result from a high-pass coefficient to produce a second result;
a first adder for adding the second result to a shifted version of a low-pass coefficient and a least significant bit of the second result to produce a third result;
a third subtractor for subtracting the second result from the shifted version of the low-pass coefficient and the least significant bit of the second result to produce a fourth result;
wherein filter outputs a first sample based on the third result and a second sample based on the fourth result;
wherein bits of the first result are wired to an input of the second subtractor so that the first result appears at the input as the shifted version of the first result which represents the first result divided by a first number;
wherein bits of the low-pass coefficient are wired to an input of the first adder so that the low-pass coefficient appears at the input as the shifted version of the low-pass coefficient which represents the low-pass coefficient multiplied by a first number;
wherein bits of the first result are wired to a first input of the second subtractor so that the first result appears at the first input as the shifted version of the first result which represents the first result divided by a first number; and
wherein bits of the low-pass coefficient are wired to a second input of the first adder so that the low-power coefficient appears at the second input as the shifted version of the low-pass coefficient which represents the low-pass coefficient multiplied by a first number.
-
Specification