Claims
- 1. A method for compressing a digitized time-domain continuous input signal, including:
formatting the input signal into a plurality of time-domain blocks having boundaries; forming an overlapping time-domain block by prepending a fraction of a previous time-domain block to a current time-domain block; transforming each overlapping time-domain block to a transform domain block comprising a plurality of coefficients; partitioning the coefficients of each transform domain block into signal coefficients and residue coefficients; quantizing the signal coefficients for each transform domain block and generating signal quantization indices indicative of such quantization; modeling the residue coefficients for each transform domain block as stochastic noise and generating residue quantization indices indicative of such quantization; and formatting the signal quantization indices and the residue quantization indices for each transform domain block as an output bit-stream.
- 2. The method of claim 1 wherein the continuous data includes audio data.
- 3. The method of claim 1 further including applying a windowing function to each time-domain block to enhance residue energy concentration near the boundaries of each such time-domain block.
- 4. The method of claim 1 further including normalizing each time-domain block before transforming each such time-domain block to a transform domain block.
- 5. The method of claim 1 wherein transforming each time-domain block to a transform domain block comprising a plurality of coefficients includes applying an adaptive cosine packet transform algorithm.
- 6. The method of claim 5 wherein the adaptive cosine packet transform algorithm optimally adapts to instantaneous changes in each overlapping time-domain block, independent of previous and subsequent blocks.
- 7. The method of claim 5 wherein the adaptive cosine packet transform algorithm includes:
calculating bell window functions; calculating a cosine packet transform table for at least one time splitting level utilizing the bell window functions; determining whether a pre-split at the time splitting level is needed for a current frame; recalculating the cosine packet transform table at selected levels depending on the pre-split determination; building a statistics tree for only the selected levels; generating an extended statistics tree from the statistics tree; performing a best basis analysis to determine an extended best basis tree from the extended statistics tree; and determining optimal transform coefficients from the extended best basis tree.
- 8. The method of claim 1 further including applying a rate control feedback loop to dynamically modify parameters of either or both of the partitioning step or the quantizing step to approach a target bit rate.
- 9. The method of claim 8 wherein the rate control feedback loop includes:
computing a predicted short term bit rate as A(q(n))×S(c(m))+B(q(n)), where A and B are functions of quantization related parameters, collectively represented as a variable q, the variable q can take on values from a limited set of choices, represented by a variable n, and S represents the percentage of a time-domain block that is classified as signal, where S can take on values from a limited set of choices, represented by a variable m; and iteratively generating values for n and m, based on a long-term bit rate and the predicted short-term bit rate.
- 10. The method of claim 8 wherein applying the rate control feedback loop includes:
calculating a short-term bit rate for a preceding encoding frame; calculating a long-term running average bit rate; comparing the short-term bit rate and the long-term running average bit rate to a target bit rate range; and adjusting an input threshold factor within a specified range for a signal and noise partitioning in a subsequent frame.
- 11. The method of claim 1 wherein partitioning the coefficients of each time-domain block into signal coefficients and residue coefficients includes:
sorting the absolute value of the coefficients of each transfer domain block; calculating a global noise floor from the sorted coefficients; calculating zone indices indicative of signal coefficient clusters; calculating a local noise floor based on the zone indices; determining signal coefficients based on the global noise floor, each local noise floor, and the zone indices; removing weak signal coefficients from the signal coefficients; removing residue coefficients from the signal coefficients in a first pass; merging close neighbor signal coefficient clusters; and removing residue coefficients from the signal coefficients in a second pass.
- 12. The method of claim 11 wherein calculating the global noise floor includes:
calculating a mean coefficient amplitude; calculating a product of the mean coefficient amplitude and an adjustable input threshold factor as a threshold level; and calculating the global noise floor as a mean amplitude of coefficients that are below the threshold level.
- 13. The method of claim 1 wherein quantizing the signal coefficients and generating signal quantization indices indicative of such quantization includes applying an adaptive sparse quantization algorithm.
- 14. The method of claim 1 wherein modeling the residue coefficients for each transform domain block as stochastic noise includes:
constructing a residue vector for each transform domain block; synthesizing a time-domain residue frame from each residue vector; splitting each residue frame into a plurality of residue sub-frames; transforming each residue sub-frame into subbands of spectral coefficients; and quantizing the spectral coefficients.
- 15. The method of claim 14 wherein splitting each residue frame into a plurality of residue sub-frames includes:
calculating subband sizes from a best basis tree; and splitting each subband or joining neighboring subbands to create noise subframes that are within a specified range of subframe sizes.
- 16. A method for performing an adaptive cosine packet transform, including:
calculating bell window functions; calculating a cosine packet transform table for at least one time splitting level utilizing the bell window functions; determining whether a pre-split at the time splitting level is needed for a current frame; recalculating the cosine packet transform table at selected levels depending on the pre-split determination; building a statistics tree for only the selected levels; generating an extended statistics tree from the statistics tree; performing a best basis analysis to determine an extended best basis tree from the extended statistics tree; and determining optimal transform coefficients from the extended best basis tree.
- 17. The method claim 16 further including:
determining how to perform the pre-split for the current cosine packet transform frame to form the pre-split subframes; and performing the pre-split for the current cosine packet transform frame to form the pre-split subframes.
- 18. A method for performing an adaptive cosine packet transform, including:
determining whether a pre-split is needed for a current cosine packet transform frame to form pre-split subframes; applying a cosine packet transform to the pre-split subframes based on the determination; performing a best basis analysis; and determining optimal transform coefficients.
- 19. The method claim 18 further including:
determining how to perform the pre-split for the current cosine packet transform frame to form the pre-split subframes; and performing the pre-split for the current cosine packet transform frame to form the pre-split subframes.
- 20. The method of claim 18 further including:
calculating bell window functions; and calculating a cosine packet transform table only for a time splitting level utilizing the bell window functions.
- 21. The method of claim 18 wherein performing the best basis analysis includes:
building a statistics tree for the pre-split subframes; generating an extended statistics tree from the statistics tree; and performing the best basis analysis to determine an extended best basis tree from the extended statistics tree.
- 22. The method of claim 21 wherein determining the optimal transform coefficients includes determining the optimal transform coefficients from the extended best basis tree.
- 23. A method for decompressing a bit stream including signal vector quantization indices and residue vector quantization indices, including:
decoding an output bit stream into vector quantization indices and residue vector quantization indices; applying an inverse vector quantization algorithm to the vector quantization indices to generate signal coefficients; applying an inverse transform to the signal coefficients to generate a time-domain reconstructed signal waveform; applying a stochastic noise synthesis algorithm to the residue vector quantization indices to generate a time-domain reconstructed residue waveform; combining the reconstructed signal waveform and the reconstructed residue waveform as a reconstructed input signal waveform block; and applying a boundary synthesis algorithm to the reconstructed input signal waveform block to generate an output signal having substantially reduced boundary discontinuities.
- 24. The method of claim 23 wherein the inverse vector quantization algorithm includes an inverse adaptive sparse vector quantization algorithm.
- 25. The method of claim 23 wherein the inverse transform includes an inverse adaptive cosine packet transform.
- 26. The method of claim 25 wherein the inverse adaptive cosine packet transform includes:
calculating bell window functions; joining an extended best basis tree into a combined best basis tree; and synthesizing a time-domain signal from optimal cosine packet coefficients using the bell window functions.
- 27. The method of claim 23 further including renormalizing the reconstructed input signal waveform block.
- 28. The method of claim 23 wherein the stochastic noise synthesis algorithm is performed in the spectral domain, and includes:
generating pseudo-random numbers; scaling the pseudo-random numbers by residue energy to produce synthesized DCT or FFT coefficients; and performing an inverse-DCT or inverse-FFT to obtain time-domain synthesized noise subframe signal.
- 29. The method of claim 23 wherein the stochastic noise synthesis algorithm includes a time-domain filter-bank based noise synthesizer which includes:
pre-computing band-limited filter coefficients for a plurality of frequency bands; generating pseudo-random white noise; applying the band-limited filter coefficients to the pseudo-random white noise to produce spectrally colored stochastic noise for each frequency band; computing a noise gain curve for each frequency band by interpolating encoded residue energy levels among residue sub-frames and between audio coding frames; applying each gain curve to a spectrally colored noise signal; and adding each such noise signal to a corresponding frequency band to produce a final synthesized noise signal.
- 30. The method of claim 23 wherein the stochastic noise synthesis algorithm includes a synthesized noise subframe signal assembled into a noise frame signal by:
calculating subband sizes from a best basis tree; splitting each subband or joining neighboring subbands to create noise subframes that are within a specified range of subframe sizes; and placing the ordered noise subframe signal into a reconstructed noise frame utilizing the subframe sizes.
- 31. The method of claim 23 further including applying a soft clipping algorithm to the output signal to reduce spectral distortion.
- 32. A method for decompressing a bit stream including signal vector quantization indices and residue vector quantization indices, including:
generating a time-domain reconstructed signal waveform and residue vector quantization indices from an output bit stream; applying a noise synthesis algorithm to the residue vector quantization indices to generate a time-domain reconstructed residue waveform; combining the reconstructed signal waveform and the reconstructed residue waveform as a reconstructed input signal waveform block; and applying a boundary synthesis algorithm to the reconstructed input signal waveform block to generate an output signal having substantially reduced boundary discontinuities.
- 33. The method of claim 32 wherein generating the time-domain reconstructed signal waveform and the residue vector quantization indices from the output bit stream includes:
decoding the output bit stream into vector quantization indices and the residue vector quantization indices; applying an inverse vector quantization algorithm to the vector quantization indices to generate signal coefficients; and applying an inverse transform to the signal coefficients to generate the time-domain reconstructed signal waveform.
- 34. The method of claim 33 wherein the inverse vector quantization algorithm includes an inverse adaptive sparse vector quantization algorithm.
- 35. The method of claim 33 wherein the inverse transform includes an inverse adaptive cosine packet transform.
- 36. The method of claim 35 wherein the inverse adaptive cosine packet transform includes:
calculating bell window functions; joining an extended best basis tree into a combined best basis tree; and synthesizing a time-domain signal from optimal cosine packet coefficients using the bell window functions.
- 37. The method of claim 32 further including renormalizing the reconstructed input signal waveform block.
- 38. The method of claim 32 wherein the noise synthesis algorithm includes a stochastic noise synthesis algorithm.
- 39. The method of claim 38 wherein the stochastic noise synthesis algorithm is performed in the spectral domain, and includes:
generating pseudo-random numbers; scaling the pseudo-random numbers by residue energy to produce synthesized DCT or FFT coefficients; and performing an inverse-DCT or inverse-FFT to obtain time-domain synthesized noise signal.
- 40. The method of claim 38 wherein the stochastic noise synthesis algorithm includes a time-domain filter-bank based noise synthesizer which includes:
pre-computing band-limited filter coefficients for a plurality of frequency bands; generating pseudo-random white noise; applying the band-limited filter coefficients to the pseudo-random white noise to produce spectrally colored stochastic noise for each frequency band; computing a noise gain curve for each frequency band by interpolating encoded residue energy levels among residue sub-frames and between audio coding frames; applying each gain curve to a spectrally colored noise signal; and adding each such noise signal to a corresponding frequency band to produce a final synthesized noise signal.
- 41. The method of claim 38 wherein the stochastic noise synthesis algorithm includes a synthesized noise subframe signal assembled into a noise frame signal by:
calculating subband sizes from a best basis tree; splitting each subband or joining neighboring subbands to create noise subframes that are within a specified range of subframe sizes; and placing the ordered noise subframe signal into a reconstructed noise frame utilizing the subframe sizes.
- 42. The method of claim 32 further including applying a soft clipping algorithm to the output signal to reduce spectral distortion.
- 43. A method for performing an inverse adaptive cosine packet transform, including:
calculating bell window functions; joining an extended best basis tree into a combined best basis tree; and synthesizing a time-domain signal from optimal cosine packet coefficients using the bell window functions.
- 44. The method of claim 43 further including applying the inverse adaptive cosine packet transform to signal coefficients to generate a time-domain reconstructed signal waveform.
- 45. A method for ultra-low latency compression and decompression for a general-purpose audio input signal, including:
formatting the audio input signal into a plurality of time-domain blocks having boundaries; forming an overlapping time-domain block by prepending a fraction of a previous time-domain block to the current time-domain block: transforming each time-domain block to a transform domain block comprising a plurality of coefficients; partitioning the coefficients of each transform domain block into signal coefficients and residue coefficients; quantizing the signal coefficients for each transform domain block and generating signal quantization indices indicative of such quantization; modeling the residue coefficients for each transform domain block as stochastic noise and generating residue quantization indices indicative of such quantization; formatting the signal quantization indices and the residue quantization indices for each transform domain block as an output bit-stream; decoding the output bit stream into quantization indices and residue quantization indices; applying an inverse quantization algorithm to the quantization indices to generate signal coefficients; applying an inverse transform to the signal coefficients to generate a time-domain reconstructed signal waveform; applying a stochastic noise synthesis algorithm to the residue quantization indices to generate a time-domain reconstructed residue waveform; combining the reconstructed signal waveform and the reconstructed residue waveform as a reconstructed input signal waveform block; and applying a boundary synthesis algorithm to the reconstructed input signal waveform block to generate an output signal having substantially reduced boundary discontinuities.
- 46. A computer program, residing on a computer-readable medium, for compressing a digitized time-domain continuous input signal, the computer program comprising instructions for causing a computer to:
format the input signal into a plurality of time-domain blocks having boundaries; form an overlapping time-domain block by prepending a fraction of a previous time-domain block to a current time-domain block; transform each overlapping time-domain block to a transform domain block comprising a plurality of coefficients; partition the coefficients of each transform domain block into signal coefficients and residue coefficients; quantize the signal coefficients for each transform domain block and generate signal quantization indices indicative of such quantization; model the residue coefficients for each transform domain block as stochastic noise and generate residue quantization indices indicative of such quantization; and format the signal quantization indices and the residue quantization indices for each transform domain block as an output bit-stream.
- 47. The computer program of claim 46 wherein the continuous data includes audio data.
- 48. The computer program of claim 46 further including instructions for causing the computer to apply a windowing function to each time-domain block to enhance residue energy concentration near the boundaries of each such time-domain block.
- 49. The computer program of claim 46 further including instructions for causing the computer to normalize each time-domain block before transforming each such time-domain block to a transform domain block.
- 50. The computer program of claim 46 wherein the instructions for causing the computer to transform each time-domain block to a transform domain block comprising a plurality of coefficients include instructions for causing the computer to apply an adaptive cosine packet transform algorithm.
- 51. The computer program of claim 50 wherein the adaptive cosine packet transform algorithm optimally adapts to instantaneous changes in each overlapping time-domain block, independent of previous and subsequent blocks.
- 52. The computer program of claim 50 wherein the adaptive cosine packet transform algorithm includes instructions for causing the computer to:
calculate bell window functions; calculate a cosine packet transform table for at least one time splitting level utilizing the bell window functions; determine whether a pre-split at the time splitting level is needed for a current frame; recalculate the cosine packet transform table at selected levels depending on the pre-split determination; build a statistics tree for only the selected levels; generate an extended statistics tree from the statistics tree; perform a best basis analysis to determine an extended best basis tree from the extended statistics tree; and determine optimal transform coefficients from the extended best basis tree.
- 53. The computer program of claim 46 further including instructions for causing the computer to apply a rate control feedback loop to dynamically modify parameters of either or both of the instructions that cause the computer to partition or the instructions that cause the computer to quantize to approach a target bit rate.
- 54. The computer program of claim 53 wherein the rate control feedback loop includes instructions for causing the computer to:
compute a predicted short term bit rate as A(q(n))×S(c(m))+B(q(n)), where A and B are functions of quantization related parameters, collectively represented as a variable q, the variable q can take on values from a limited set of choices, represented by a variable n, and S represents the percentage of a time-domain block that is classified as signal, where S can take on values from a limited set of choices, represented by a variable m; and iteratively generate values for n and m, based on a long-term bit rate and the predicted short-term bit rate.
- 55. The computer program of claim 53 wherein the instructions for causing the computer to apply the rate control feedback loop includes instructions for causing the computer to:
calculate a short-term bit rate for a preceding encoding frame; calculate a long-term running average bit rate; compare the short-term bit rate and the long-term running average bit rate to a target bit rate range; and adjust an input threshold factor within a specified range for a signal and noise partitioning in a subsequent frame.
- 56. The computer program of claim 46 wherein the instructions for causing the computer to partition the coefficients of each time-domain block into signal coefficients and residue coefficients includes instructions for causing the computer to:
sort the absolute value of the coefficients of each transfer domain block; calculate a global noise floor from the sorted coefficients; calculate zone indices indicative of signal coefficient clusters; calculate a local noise floor based on the zone indices; determine signal coefficients based on the global noise floor, each local noise floor, and the zone indices; remove weak signal coefficients from the signal coefficients; remove residue coefficients from the signal coefficients in a first pass; merge close neighbor signal coefficient clusters; and remove residue coefficients from the signal coefficients in a second pass.
- 57. The computer program of claim 56 wherein the instructions for causing the computer to calculate the global noise floor include instructions for causing the computer to:
calculate a mean coefficient amplitude; calculate a product of the mean coefficient amplitude and an adjustable input threshold factor as a threshold level; and calculate the global noise floor as a mean amplitude of coefficients that are below the threshold level.
- 58. The computer program of claim 46 wherein the instructions for causing the computer to quantize the signal coefficients and generate signal quantization indices indicative of such quantization include instructions for causing the computer to apply an adaptive sparse quantization algorithm.
- 59. The computer program of claim 46 wherein the instructions for causing the computer to model the residue coefficients for each transform domain block as stochastic noise includes instructions for causing the computer to:
construct a residue vector for each transform domain block; synthesize a time-domain residue frame from each residue vector; split each residue frame into a plurality of residue sub-frames; transform each residue sub-frame into subbands of spectral coefficients; and quantize the spectral coefficients.
- 60. The computer program of claim 59 wherein the instructions for causing the computer to split each residue frame into a plurality of residue sub-frames include instructions for causing the computer to:
calculate subband sizes from a best basis tree; and split each subband or joining neighboring subbands to create noise subframes that are within a specified range of subframe sizes.
- 61. A computer program, residing on a computer-readable medium, for performing an adaptive cosine packet transform, the computer program comprising instructions for causing a computer to:
calculate bell window functions; calculate a cosine packet transform table for at least one time splitting level utilizing the bell window functions; determine whether a pre-split at the time splitting level is needed for a current frame; recalculate the cosine packet transform table at selected levels depending on the pre-split determination; build a statistics tree for only the selected levels; generate an extended statistics tree from the statistics tree; perform a best basis analysis to determine an extended best basis tree from the extended statistics tree; and determine optimal transform coefficients from the extended best basis tree.
- 62. The computer program of claim 61 further including instructions for causing the computer to:
determine how to perform the pre-split for the current cosine packet transform frame to form the pre-split subframes; and perform the pre-split for the current cosine packet transform frame to form the pre-split subframes.
- 63. A computer program, residing on a computer-readable medium, for performing an adaptive cosine packet transform, the computer program comprising instructions for causing a computer to:
determine whether a pre-split is needed for a current cosine packet transform frame to form pre-split subframes; apply a cosine packet transform to the pre-split subframes based on the determination; perform a best basis analysis; and determine optimal transform coefficients.
- 64. The computer program of claim 63 further including instructions for causing the computer to:
determine how to perform the pre-split for the current cosine packet transform frame to form the pre-split subframes; and perform the pre-split for the current cosine packet transform frame to form the pre-split subframes.
- 65. The computer program of claim 63 further including instructions for causing the computer to:
calculate bell window functions; and calculate a cosine packet transform table only for a time splitting level utilizing the bell window functions.
- 66. The computer program of claim 63 wherein the instructions for causing the computer to perform the best basis analysis includes instructions for causing the computer to:
build a statistics tree for the pre-split subframes; generate an extended statistics tree from the statistics tree; and perform the best basis analysis to determine an extended best basis tree from the extended statistics tree.
- 67. The computer program of claim 66 wherein the instructions for causing the computer to determine the optimal transform coefficients includes instructions for causing the computer to determine the optimal transform coefficients from the extended best basis tree.
- 68. A computer program, residing on a computer-readable medium, for decompressing a bit stream including signal vector quantization indices and residue vector quantization indices, the computer program comprising instructions for causing a computer to:
decode an output bit stream into vector quantization indices and residue vector quantization indices; apply an inverse vector quantization algorithm to the vector quantization indices to generate signal coefficients; apply an inverse transform to the signal coefficients to generate a time-domain reconstructed signal waveform; apply a stochastic noise synthesis algorithm to the residue vector quantization indices to generate a time-domain reconstructed residue waveform; combine the reconstructed signal waveform and the reconstructed residue waveform as a reconstructed input signal waveform block; and apply a boundary synthesis algorithm to the reconstructed input signal waveform block to generate an output signal having substantially reduced boundary discontinuities.
- 69. The computer program of claim 68 wherein the inverse vector quantization algorithm includes an inverse adaptive sparse vector quantization algorithm.
- 70. The computer program of claim 68 wherein the inverse transform includes an inverse adaptive cosine packet transform.
- 71. The computer program of claim 70 wherein the inverse adaptive cosine packet transform includes instructions for causing the computer to:
calculate bell window functions; join an extended best basis tree into a combined best basis tree; and synthesize a time-domain signal from optimal cosine packet coefficients using the bell window functions.
- 72. The computer program of claim 68 further including instructions for causing the computer to renormalize the reconstructed input signal waveform block.
- 73. The computer program of claim 68 wherein the stochastic noise synthesis algorithm is performed in the spectral domain, and includes instructions for causing the computer to:
generate pseudo-random numbers; scale the pseudo-random numbers by residue energy to produce synthesized DCT or FFT coefficients; and perform an inverse-DCT or inverse-FFT to obtain time-domain synthesized noise subframe signal.
- 74. The computer program of claim 68 wherein the stochastic noise synthesis algorithm includes a time-domain filter-bank based noise synthesizer and the instructions for causing the computer to:
pre-compute band-limited filter coefficients for a plurality of frequency bands; generate pseudo-random white noise; apply the band-limited filter coefficients to the pseudo-random white noise to produce spectrally colored stochastic noise for each frequency band; compute a noise gain curve for each frequency band by interpolating encoded residue energy levels among residue sub-frames and between audio coding frames; apply each gain curve to a spectrally colored noise signal; and add each such noise signal to a corresponding frequency band to produce a final synthesized noise signal.
- 75. The computer program of claim 68 wherein the stochastic noise synthesis algorithm includes a synthesized noise subframe signal assembled into a noise frame signal by including instructions for causing the computer to:
calculate subband sizes from a best basis tree; split each subband or joining neighboring subbands to create noise subframes that are within a specified range of subframe sizes; and place the ordered noise subframe signal into a reconstructed noise frame utilizing the subframe sizes.
- 76. The computer program of claim 68 further including instructions for causing the computer to apply a soft clipping algorithm to the output signal to reduce spectral distortion.
- 77. A computer program, residing on a computer-readable medium, for decompressing a bit stream including signal vector quantization indices and residue vector quantization indices, the computer program comprising instructions for causing a computer to:
generate a time-domain reconstructed signal waveform and residue vector quantization indices from an output bit stream; apply a noise synthesis algorithm to the residue vector quantization indices to generate a time-domain reconstructed residue waveform; combine the reconstructed signal waveform and the reconstructed residue waveform as a reconstructed input signal waveform block; and apply a boundary synthesis algorithm to the reconstructed input signal waveform block to generate an output signal having substantially reduced boundary discontinuities.
- 78. The computer program of claim 77 wherein the instructions for causing the computer to generate the time-domain reconstructed signal waveform and the residue vector quantization indices from the output bit stream include instructions for causing the computer to:
decode the output bit stream into vector quantization indices and the residue vector quantization indices; apply an inverse vector quantization algorithm to the vector quantization indices to generate signal coefficients; and apply an inverse transform to the signal coefficients to generate the time-domain reconstructed signal waveform.
- 79. The computer program of claim 78 wherein the inverse vector quantization algorithm includes an inverse adaptive sparse vector quantization algorithm.
- 80. The computer program of claim 78 wherein the inverse transform includes an inverse adaptive cosine packet transform.
- 81. The computer program of claim 80 wherein the inverse adaptive cosine packet transform includes instructions for causing the computer to:
calculate bell window functions; join an extended best basis tree into a combined best basis tree; and synthesize a time-domain signal from optimal cosine packet coefficients using the bell window functions.
- 82. The computer program of claim 77 further including instructions for causing the computer to renormalize the reconstructed input signal waveform block.
- 83. The computer program of claim 77 wherein the noise synthesis algorithm includes a stochastic noise synthesis algorithm.
- 84. The computer program of claim 83 wherein the stochastic noise synthesis algorithm is performed in the spectral domain, and includes instructions for causing the computer to:
generate pseudo-random numbers; scale the pseudo-random numbers by residue energy to produce synthesized DCT or FFT coefficients; and perform an inverse-DCT or inverse-FFT to obtain time-domain synthesized noise signal.
- 85. The computer program of claim 83 wherein the stochastic noise synthesis algorithm includes a time-domain filter-bank based noise synthesizer which includes instructions for causing the computer to:
pre-compute band-limited filter coefficients for a plurality of frequency bands; generate pseudo-random white noise; apply the band-limited filter coefficients to the pseudo-random white noise to produce spectrally colored stochastic noise for each frequency band; compute a noise gain curve for each frequency band by interpolating encoded residue energy levels among residue sub-frames and between audio coding frames; apply each gain curve to a spectrally colored noise signal; and add each such noise signal to a corresponding frequency band to produce a final synthesized noise signal.
- 86. The computer program of claim 83 wherein the stochastic noise synthesis algorithm includes a synthesized noise subframe signal assembled into a noise frame signal by including instructions for causing the computer to:
calculate subband sizes from a best basis tree; split each subband or joining neighboring subbands to create noise subframes that are within a specified range of subframe sizes; and place the ordered noise subframe signal into a reconstructed noise frame utilizing the subframe sizes.
- 87. The computer program of claim 77 further including instructions for causing the computer to apply a soft clipping algorithm to the output signal to reduce spectral distortion.
- 88. A computer program, residing on a computer-readable medium, for performing an inverse adaptive cosine packet transform, the computer program comprising instructions for causing a computer to:
calculate bell window functions; join an extended best basis tree into a combined best basis tree; and synthesize a time-domain signal from optimal cosine packet coefficients using the bell window functions.
- 89. The computer program of claim 88 further including instructions for causing the computer to apply the inverse adaptive cosine packet transform to signal coefficients to generate a time-domain reconstructed signal waveform.
- 90. A computer program, residing on a computer-readable medium, for ultra-low latency compression and decompression for a general-purpose audio input signal, the computer program comprising instructions for causing a computer to:
format the audio input signal into a plurality of time-domain blocks having boundaries; form an overlapping time-domain block by prepending a fraction of a previous time-domain block to the current time-domain block; transform each time-domain block to a transform domain block comprising a plurality of coefficients; partition the coefficients of each transform domain block into signal coefficients and residue coefficients; quantize the signal coefficients for each transform domain block and generate signal quantization indices indicative of such quantization; model the residue coefficients for each transform domain block as stochastic noise and generate residue quantization indices indicative of such quantization; format the signal quantization indices and the residue quantization indices for each transform domain block as an output bit-stream; decode the output bit stream into quantization indices and residue quantization indices; apply an inverse quantization algorithm to the quantization indices to generate signal coefficients; apply an inverse transform to the signal coefficients to generate a time-domain reconstructed signal waveform; apply a stochastic noise synthesis algorithm to the residue quantization indices to generate a time-domain reconstructed residue waveform; combine the reconstructed signal waveform and the reconstructed residue waveform as a reconstructed input signal waveform block; and apply a boundary synthesis algorithm to the reconstructed input signal waveform block to generate an output signal having substantially reduced boundary discontinuities.
- 91. A system for compressing a digitized time-domain continuous input signal, including:
means for formatting the input signal into a plurality of time-domain blocks having boundaries; means for forming an overlapping time-domain block by prepending a fraction of a previous time-domain block to a current time-domain block; means for transforming each overlapping time-domain block to a transform domain block comprising a plurality of coefficients; means for partitioning the coefficients of each transform domain block into signal coefficients and residue coefficients; means for quantizing the signal coefficients for each transform domain block and generating signal quantization indices indicative of such quantization; means for modeling the residue coefficients for each transform domain block as stochastic noise and generating residue quantization indices indicative of such quantization; and means for formatting the signal quantization indices and the residue quantization indices for each transform domain block as an output bit-stream.
- 92. The system of claim 91 wherein the continuous data includes audio data.
- 93. The system of claim 91 further including means for applying a windowing function to each time-domain block to enhance residue energy concentration near the boundaries of each such time-domain block.
- 94. The system of claim 91 further including means for normalizing each time-domain block before transforming each such time-domain block to a transform domain block.
- 95. The system of claim 91 wherein the means for transforming each time-domain block to a transform domain block comprising a plurality of coefficients includes means for applying an adaptive cosine packet transform algorithm.
- 96. The system of claim 95 wherein the means for applying the adaptive cosine packet transform algorithm optimally adapts to instantaneous changes in each overlapping time-domain block, independent of previous and subsequent blocks.
- 97. The system of claim 95 wherein the means for applying the adaptive cosine packet transform algorithm includes:
means for calculating bell window functions; means for calculating a cosine packet transform table for at least one time splitting level utilizing the bell window functions; means for determining whether a pre-split at the time splitting level is needed for a current frame: means for recalculating the cosine packet transform table at selected levels depending on the pre-split determination; means for building a statistics tree for only the selected levels; means for generating an extended statistics tree from the statistics tree; means for performing a best basis analysis to determine an extended best basis tree from the extended statistics tree; and means for determining optimal transform coefficients from the extended best basis tree.
- 98. The system of claim 91 further including means for applying a rate control feedback loop to dynamically modify parameters of either or both of the means for partitioning or the means for quantizing to approach a target bit rate.
- 99. The system of claim 98 wherein the means for applying the rate control feedback loop includes:
means for computing a predicted short term bit rate as A(q(n))×S(c(m))+B(q(n)), where A and B are functions of quantization related parameters, collectively represented as a variable q, the variable q can take on values from a limited set of choices, represented by a variable n, and S represents the percentage of a time-domain block that is classified as signal, where S can take on values from a limited set of choices, represented by a variable m; and means for iteratively generating values for n and m, based on a long-term bit rate and the predicted short-term bit rate.
- 100. The system of claim 98 wherein the means for applying the rate control feedback loop includes:
means for calculating a short-term bit rate for a preceding encoding frame; means for calculating a long-term running average bit rate; means for comparing the short-term bit rate and the long-term running average bit rate to a target bit rate range; and means for adjusting an input threshold factor within a specified range for a signal and noise partitioning in a subsequent frame.
- 101. The system of claim 91 wherein the means for partitioning the coefficients of each time-domain block into signal coefficients and residue coefficients includes:
means for sorting the absolute value of the coefficients of each transfer domain block; means for calculating a global noise floor from the sorted coefficients; means for calculating zone indices indicative of signal coefficient clusters; means for calculating a local noise floor based on the zone indices; means for determining signal coefficients based on the global noise floor, each local noise floor, and the zone indices; means for removing weak signal coefficients from the signal coefficients; means for removing residue coefficients from the signal coefficients in a first pass; means for merging close neighbor signal coefficient clusters; and means for removing residue coefficients from the signal coefficients in a second pass.
- 102. The system of claim 101 wherein the means for calculating the global noise floor includes:
means for calculating a mean coefficient amplitude; means for calculating a product of the mean coefficient amplitude and an adjustable input threshold factor as a threshold level; and means for calculating the global noise floor as a mean amplitude of coefficients that are below the threshold level.
- 103. The system of claim 91 wherein the means for quantizing the signal coefficients and generating signal quantization indices indicative of such quantization includes means for applying an adaptive sparse quantization algorithm.
- 104. The system of claim 91 wherein the means for modeling the residue coefficients for each transform domain block as stochastic noise includes:
means for constructing a residue vector for each transform domain block; means for synthesizing a time-domain residue frame from each residue vector; means for splitting each residue frame into a plurality of residue sub-frames; means for transforming each residue sub-frame into subbands of spectral coefficients; and means for quantizing the spectral coefficients.
- 105. The system of claim 104 wherein the means for splitting each residue frame into a plurality of residue sub-frames includes:
means for calculating subband sizes from a best basis tree; and means for splitting each subband or joining neighboring subbands to create noise subframes that are within a specified range of subframe sizes.
- 106. A system for performing an adaptive cosine packet transform, including:
means for calculating bell window functions; means for calculating a cosine packet transform table for at least one time splitting level utilizing the bell window functions; means for determining whether a pre-split at the time splitting level is needed for a current frame: means for recalculating the cosine packet transform table at selected levels depending on the pre-split determination; means for building a statistics tree for only the selected levels; means for generating an extended statistics tree from the statistics tree; means for performing a best basis analysis to determine an extended best basis tree from the extended statistics tree; and means for determining optimal transform coefficients from the extended best basis tree.
- 107. The system claim 106 further including:
means for determining how to perform the pre-split for the current cosine packet transform frame to form the pre-split subframes; and means for performing the pre-split for the current cosine packet transform frame to form the pre-split subframes.
- 108. A system for performing an adaptive cosine packet transform, including:
means for determining whether a pre-split is needed for a current cosine packet transform frame to form pre-split subframes; means for applying a cosine packet transform to the pre-split subframes based on the determination; means for performing a best basis analysis; and means for determining optimal transform coefficients.
- 109. The system of claim 108 further including:
means for determining how to perform the pre-split for the current cosine packet transform frame to form the pre-split subframes; and means for performing the pre-split for the current cosine packet transform frame to form the pre-split subframes.
- 110. The system of claim 108 further including:
means for calculating bell window functions; and means for calculating a cosine packet transform table only for a time splitting level utilizing the bell window functions.
- 111. The system of claim 108 wherein the means for performing the best basis analysis includes:
means for building a statistics tree for the pre-split subframes; means for generating an extended statistics tree from the statistics tree; and means for performing the best basis analysis to determine an extended best basis tree from the extended statistics tree.
- 112. The system of claim 111 wherein the means for determining the optimal transform coefficients includes means for determining the optimal transform coefficients from the extended best basis tree.
- 113. A system for decompressing a bit stream including signal vector quantization indices and residue vector quantization indices, including:
means for decoding an output bit stream into vector quantization indices and residue vector quantization indices; means for applying an inverse vector quantization algorithm to the vector quantization indices to generate signal coefficients; means for applying an inverse transform to the signal coefficients to generate a time-domain reconstructed signal waveform; means for applying a stochastic noise synthesis algorithm to the residue vector quantization indices to generate a time-domain reconstructed residue waveform; means for combining the reconstructed signal waveform and the reconstructed residue waveform as a reconstructed input signal waveform block; and means for applying a boundary synthesis algorithm to the reconstructed input signal waveform block to generate an output signal having substantially reduced boundary discontinuities.
- 114. The system of claim 113 wherein the means for applying the inverse vector quantization algorithm includes means for applying an inverse adaptive sparse vector quantization algorithm.
- 115. The system of claim 113 wherein the means for applying the inverse transform includes means for applying an inverse adaptive cosine packet transform.
- 116. The system of claim 115 wherein the means for applying the inverse adaptive cosine packet transform includes:
means for calculating bell window functions; means for joining an extended best basis tree into a combined best basis tree; and means for synthesizing a time-domain signal from optimal cosine packet coefficients using the bell window functions.
- 117. The system of claim 113 further including means for renormalizing the reconstructed input signal waveform block.
- 118. The system of claim 113 wherein the means for applying the stochastic noise synthesis algorithm is performed in the spectral domain, and includes:
means for generating pseudo-random numbers; means for scaling the pseudo-random numbers by residue energy to produce synthesized DCT or FFT coefficients; and means for performing an inverse-DCT or inverse-FFT to obtain time-domain synthesized noise subframe signal.
- 119. The system of claim 113 wherein the means for applying the stochastic noise synthesis algorithm includes a time-domain filter-bank based noise synthesizer which includes:
means for pre-computing band-limited filter coefficients for a plurality of frequency bands; means for generating pseudo-random white noise; means for applying the band-limited filter coefficients to the pseudo-random white noise to produce spectrally colored stochastic noise for each frequency band; means for computing a noise gain curve for each frequency band by interpolating encoded residue energy levels among residue sub-frames and between audio coding frames; means for applying each gain curve to a spectrally colored noise signal; and means for adding each such noise signal to a corresponding frequency band to produce a final synthesized noise signal.
- 120. The system of claim 119 wherein the means for applying the stochastic noise synthesis algorithm includes a synthesized noise subframe signal assembled into a noise frame signal by:
means for calculating subband sizes from a best basis tree; means for splitting each subband or joining neighboring subbands to create noise subframes that are within a specified range of subframe sizes; and means for placing the ordered noise subframe signal into a reconstructed noise frame utilizing the subframe sizes.
- 121. The system of claim 113 further including means for applying a soft clipping algorithm to the output signal to reduce spectral distortion.
- 122. A system for decompressing a bit stream including signal vector quantization indices and residue vector quantization indices, including:
means for generating a time-domain reconstructed signal waveform and residue vector quantization indices from an output bit stream; means for applying a noise synthesis algorithm to the residue vector quantization indices to generate a time-domain reconstructed residue waveform; means for combining the reconstructed signal waveform and the reconstructed residue waveform as a reconstructed input signal waveform block; and means for applying a boundary synthesis algorithm to the reconstructed input signal waveform block to generate an output signal having substantially reduced boundary discontinuities.
- 123. The system of claim 122 wherein the means for generating the time-domain reconstructed signal waveform and the residue vector quantization indices from the output bit stream includes:
means for decoding the output bit stream into vector quantization indices and the residue vector quantization indices; means for applying an inverse vector quantization algorithm to the vector quantization indices to generate signal coefficients; and means for applying an inverse transform to the signal coefficients to generate the time-domain reconstructed signal waveform.
- 124. The system of claim 123 wherein the means for applying the inverse vector quantization algorithm includes means for applying an inverse adaptive sparse vector quantization algorithm.
- 125. The system of claim 123 wherein the means for applying the inverse transform includes means for applying an inverse adaptive cosine packet transform.
- 126. The system of claim 125 wherein means for applying the inverse adaptive cosine packet transform includes:
means for calculating bell window functions; means for joining an extended best basis tree into a combined best basis tree; and means for synthesizing a time-domain signal from optimal cosine packet coefficients using the bell window functions.
- 127. The system of claim 122 further including means for renormalizing the reconstructed input signal waveform block.
- 128. The system of claim 122 wherein the means for applying the noise synthesis algorithm includes means for applying a stochastic noise synthesis algorithm.
- 129. The system of claim 128 wherein the means for applying the stochastic noise synthesis algorithm is performed in the spectral domain, and includes:
means for generating pseudo-random numbers; means for scaling the pseudo-random numbers by residue energy to produce synthesized DCT or FFT coefficients; and means for performing an inverse-DCT or inverse-FFT to obtain time-domain synthesized noise signal.
- 130. The system of claim 128 wherein the means for applying the stochastic noise synthesis algorithm includes a time-domain filter-bank based noise synthesizer which includes:
means for pre-computing band-limited filter coefficients for a plurality of frequency bands; means for generating pseudo-random white noise; applying the band-limited filter coefficients to the pseudo-random white noise to produce spectrally colored stochastic noise for each frequency band; means for computing a noise gain curve for each frequency band by interpolating encoded residue energy levels among residue sub-frames and between audio coding frames; means for applying each gain curve to a spectrally colored noise signal; and means for adding each such noise signal to a corresponding frequency band to produce a final synthesized noise signal.
- 131. The system of claim 128 wherein the means for applying the stochastic noise synthesis algorithm includes a synthesized noise subframe signal assembled into a noise frame signal by:
means for calculating subband sizes from a best basis tree; means for splitting each subband or joining neighboring subbands to create noise subframes that are within a specified range of subframe sizes; and means for placing the ordered noise subframe signal into a reconstructed noise frame utilizing the subframe sizes.
- 132. The system of claim 122 further including means for applying a soft clipping algorithm to the output signal to reduce spectral distortion.
- 133. A system for performing an inverse adaptive cosine packet transform, including:
means for calculating bell window functions; means for joining an extended best basis tree into a combined best basis tree; and means for synthesizing a time-domain signal from optimal cosine packet coefficients using the bell window functions.
- 134. The system of claim 133 further including means for applying the inverse adaptive cosine packet transform to signal coefficients to generate a time-domain reconstructed signal waveform.
- 135. A system for ultra-low latency compression and decompression for a general-purpose audio input signal, including:
means for formatting the audio input signal into a plurality of time-domain blocks having boundaries; means for forming an overlapping time-domain block by prepending a fraction of a previous time-domain block to the current time-domain block; means for transforming each time-domain block to a transform domain block comprising a plurality of coefficients; means for partitioning the coefficients of each transform domain block into signal coefficients and residue coefficients; means for quantizing the signal coefficients for each transform domain block and generating signal quantization indices indicative of such quantization; means for modeling the residue coefficients for each transform domain block as stochastic noise and generating residue quantization indices indicative of such quantization; means for formatting the signal quantization indices and the residue quantization indices for each transform domain block as an output bit-stream; means for decoding the output bit stream into quantization indices and residue quantization indices; means for applying an inverse quantization algorithm to the quantization indices to generate signal coefficients; means for applying an inverse transform to the signal coefficients to generate a time-domain reconstructed signal waveform; means for applying a stochastic noise synthesis algorithm to the residue quantization indices to generate a time-domain reconstructed residue waveform; means for combining the reconstructed signal waveform and the reconstructed residue waveform as a reconstructed input signal waveform block; and means for applying a boundary synthesis algorithm to the reconstructed input signal waveform block to generate an output signal having substantially reduced boundary discontinuities.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a division of U.S. application Ser. No. 09/321,488, filed May 27, 1999, and titled “Method and System For Reduction of Quantization-Induced Block-Discontinuities and General Purpose Audio Codec,” which is incorporated by reference.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09321488 |
May 1999 |
US |
Child |
10061310 |
Feb 2002 |
US |