Claims
- 1. An encoder for encoding input data into a compressed data stream, said entropy coder comprising:
a reversible wavelet filter transforming the input data into a plurality of coefficients; an ordering and modeling mechanism coupled to the reversible wavelet filter, said ordering and modeling mechanism generating an embedded codestream in response to the plurality of coefficients; and an entropy coder, coupled to the ordering and modeling mechanism, operable to entropy code the embedded codestream to produce the compressed data stream.
- 2. The encoder defined in claim 1 wherein the reversible wavelet filter, the ordering and modeling mechanism and the binary entropy coder operate in a causal relationship to compress the input data in one pass.
- 3. The encoder defined in claim 1 wherein the reversible wavelet filter comprises at least one S-transform.
- 4. The encoder defined in claim 1 wherein the reversible wavelet filter comprises at least one TS-transform.
- 5. The encoder defined in claim 1 wherein different transforms are applied vertically and horizontally on the input data.
- 6. The encoder defined in claim 1 wherein the reversible wavelet filter applies TS-transforms on horizontal passes and at least one S-transform and at least one TS-transform on vertical passes.
- 7. The encoder defined in claim 1 wherein the reversible wavelet filter generates the plurality of coefficients by applying one-dimensional (1-D) filters separately along rows and columns of the input data.
- 8. The encoder defined in claim 1 wherein the reversible wavelet filter performs a pyramidal decomposition.
- 9. The encoder defined in claim 1 wherein the ordering and modeling mechanism orders the plurality of coefficients and orders binary values within the plurality of coefficients in order to create the embedded codestream.
- 10. The encoder defined in claim 9 wherein binary values within each of the plurality of coefficients are embedded ordered.
- 11. The encoder defined in claim 10 wherein binary values within each of the plurality of coefficients are ordered according to bit significance.
- 12. The encoder defined in claim 9 wherein the plurality of coefficients are aligned with respect to each other prior to bit-plane encoding allows for quantization.
- 13. The encoder defined in claim 12 wherein less heavily quantized coefficients are aligned toward earlier bit-planes.
- 14. The encoder defined in claim 9 wherein a sign bit is encoded with the first non-zero magnitude bit.
- 15. The encoder defined in claim 1 wherein the ordering and modeling mechanism models bits within a coding unit based on spatial and spectral dependencies of coefficients, and wherein the binary entropy coder performs coding based on the bits modeled by the ordering and modeling mechanism.
- 16. The encoder defined in claim 15 wherein the ordering and modeling mechanism models bits with contexts based on neighboring and parent coefficients.
- 17. The encoder defined in claim 16 wherein the contexts are causal.
- 18. The encoder defined in claim 1 wherein the entropy coder comprises a binary entropy coder.
- 19. The encoder defined in claim 18 wherein the entropy coder comprises a Q-coder.
- 20. The encoder defined in claim 18 wherein the entropy coder comprises a QM-coder.
- 21. The encoder defined in claim 18 wherein the entropy coder comprises a finite state machine coder.
- 22. The encoder defined in claim 1 wherein the entropy coder comprises a parallel coder.
- 23. An encoder for encoding input data into a compressed data stream, said entropy coder comprising:
a reversible wavelet filter transforming the input data into a plurality of coefficients; an ordering and modeling mechanism coupled to the reversible wavelet filter, said ordering and modeling mechanism performing embedded quantization on the plurality of coefficients to generate an embedded codestream in response to the plurality of coefficients; and a binary entropy coder, coupled to the ordering and modeling mechanism, operable to binary entropy code the embedded codestream to produce the compressed data stream.
- 24. The encoder defined in claim 23 wherein the reversible wavelet filter performs a plurality of levels of separable pyramidal decompositions with horizontal and vertical transforms applied alternatively, and further wherein the reversible wavelet filter performs horizontal decomposition using only TS-transforms and performs vertical decomposition using a combination of TS-transforms and S-transforms.
- 25. The encoder defined in claim 24 wherein the reversible wavelet filter performs the vertical decomposition using two TS-transforms followed by two S-transforms.
- 26. The encoder defined in claim 23 wherein the ordering and modeling block orders the codestream using a header following by the coding units in order from top to bottom.
- 27. The encoder defined in claim 26 wherein within each coding unit includes LL coefficients uncoded in raster order followed by entropy coded data one bit-plane at a time.
- 28. The encoder defined in claim 27 wherein the entropy coded data in each coding unit is ordered from the most significant bit-plane to the least significant bit-plane.
- 29. The encoder defined in claim 23 wherein the ordering and modeling mechanism performs coefficient alignment.
- 30. The encoder defined in claim 29 wherein coefficients at each subblock are aligned according to signaling in the header of each coding unit.
- 31. The encoder defined in claim 29 wherein coefficients are aligned with respect to mean square error.
- 32. The encoder defined in claim 23 wherein the ordering and modeling mechanism wherein coefficients are coded by bit-significance.
- 33. The encoder defined in claim 32 wherein coefficients are coded by bit-significance where the first bit-plane is the left most magnitude bit of all of the coefficients.
- 34. The encoder defined in claim 33 wherein a sign bit for each coefficient is not coded until the highest bit-plane where that coefficient has a non-zero magnitude.
- 35. The encoder defined in claim 23 wherein the ordering and modeling mechanism orders coefficients within each bit-plane from the low resolution, low frequency level (LL) to the high resolution, high frequency (HH) level.
- 36. The encoder defined in claim 35 wherein the ordering and modeling mechanism orders coefficients as follows: 4-LL, 4-HL, 4-LH, 4-HH, 3-HL, 3-LH, 3-HH, 2-HL, 2-LH, 2-HH, 1-HL, 1-LH, 1-HH.
- 37. The encoder defined in claim 36 wherein the ordering and modeling mechanism codes within each subblock in raster scan order.
- 38. The encoder defined in claim 23 wherein the ordering and modeling mechanism comprises a context model using contexts based on neighboring and parent coefficient values.
- 39. The encoder defined in claim 38 wherein the contexts are based on whether a first non-zero magnitude bit has beer. observed and the number of bit-planes since said first non-zero magnitude bit, if said first non-zero magnitude bit was observed.
- 40. The encoder defined in claim 39 wherein if said first non-zero magnitude bit has not been observed, then the context model uses contexts to condition a coefficient that includes information corresponding to a parent of the coefficient and information from at least one coefficient positioned NW, N, NE, W, E, SW, S or SE of the coefficient.
- 41. The encoder defined in claim 40 wherein context model uses contexts to condition a coefficient that includes the parent of the coefficient more than one level from the coefficient.
- 42. The encoder defined in claim 40 wherein if said first non-zero magnitude bit has been observed, then the context model uses contexts that include:
(a) said first non-zero magnitude bit occurred at last bit-plane, (b) said first non-zero magnitude bit occurred between two and three bit-planes earlier, or (c) said first non-zero magnitude bit occurred more than three bit-planes earlier.
- 43. The encoder defined in claim 39 wherein a sign bit of the present coefficient is encoded immediately after the present bit of the present coefficient is the first non-zero magnitude bit.
- 44. The encoder defined in claim 39 wherein a context for coding a sign bit when the sign of the coefficient immediately north is not known comprises a fixed probability.
- 45. The encoder defined in claim 44 wherein the fixed probability comprises approximately 0.5.
- 46. The encoder defined in claim 39 wherein contexts for coding binary values after the first non-zero magnitude bit comprise fixed probabilities.
- 47. The encoder defined in claim 46 wherein a context for coding a first binary value after the first non-zero bit comprises a fixed probability of approximately 0.7.
- 48. The encoder defined in claim 39 wherein a context for coding second and third binary values after the first non-zero bit comprises a fixed probability of approximately 0.6.
- 49. The encoder defined in claim 39 wherein a context for coding fourth and subsequent binary values after the first non-zero bit is coded at a fixed probability of 0.5.
- 50. The encoder defined in claim 23 wherein the entropy coder comprises a Q-coder.
- 51. The encoder defined in claim 23 wherein the entropy coder comprises a QM-coder.
- 52. The encoder defined in claim 23 wherein the entropy coder comprises a finite state machine coder.
- 53. The encoder defined in claim 23 wherein the entropy coder comprises a parallel coder.
- 54. A method of encoding input data into a compressed data stream comprising the steps of:
transforming the input data into a plurality of coefficients using a reversible wavelet filter; generating an embedded codestream in response to the plurality of coefficients; and entropy coding the embedded codestream to produce the compressed data stream.
- 55. The method defined in claim 54 wherein the steps of transforming, generating and entropy coding are performed causally.
- 56. The method defined in claim 54 wherein the step of transforming comprises applying different transforms vertically and horizontally on the input data.
- 57. The method defined in claim 56 further comprising the step of applying at least one TS-transform to the input data.
- 58. The method defined in claim 56 further comprising the step of applying at least one S-transform to the input data.
- 59. The method defined in claim 54 further comprising the step of performing a pyramidal decomposition of a plurality of levels on the input data, including the step of applying horizontal and vertical transforms alternatively using only TS-transforms for horizontal decomposition and using a combination of TS-transforms and S-transforms for vertical decomposition.
- 60. The method defined in claim 54 wherein the step of generating the embedded codestream comprises the steps of ordering the plurality of coefficients and ordering binary values within the plurality of coefficients in order to create the embedded codestream.
- 61. A method of decoding an encoding data stream comprising the steps of:
retrieving coded data for a coding unit; modeling a bit of each coefficient with a context model and an entropy decoder; applying an inverse wavelet filter on the coefficients starting with the coarsest level.
- 62. The method defined in claim 61 further comprising the step of determining whether all levels have been inverse filtered and, if not, then applying the inverse filter on the coefficients from the next coarsest level.
- 63. The method defined in claim 62 further comprising the step of repeating the step of determining until all levels have been inverse filtered.
- 64. A decoder for decoding encoded data comprising:
an entropy decoder for entropy decoding the encoded data into a codestream of coefficients; a inverse reversible wavelet filter coupled to the entropy decoder for transforming the codestream of coefficients into reconstructed data.
- 65. The decoder defined in claim 59 wherein the entropy decoder decodes the encoded data into an embedded codestream of coefficients.
- 66. The encoder defined in claim 39 wherein if said first non-zero magnitude bit has not been observed, then the context model uses contexts to condition a coefficient that includes information corresponding to a parent of the coefficient.
- 67. The encoder defined in claim 39 wherein if said first non-zero magnitude bit has not been observed, then the context model uses contexts to condition a coefficient that includes information from at least one coefficient positioned NW, N, NE, W, E, SW, S or SE of the coefficient.
Parent Case Info
[0001] This application is a continuation-in-part of Ser. No. 08/310,146, entitled Apparatus for Compression Using Reversible Embedded Wavelets, filed Sep. 20, 1994.
Divisions (2)
|
Number |
Date |
Country |
Parent |
09499255 |
Feb 2000 |
US |
Child |
10226853 |
Aug 2002 |
US |
Parent |
08498695 |
Jun 1995 |
US |
Child |
09499255 |
Feb 2000 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08310146 |
Sep 1994 |
US |
Child |
08498695 |
Jun 1995 |
US |