IP Library Granted Patent US 7,991,622
Granted Patent B2
US 7,991,622 · App. 11/688,851 · Granted Aug 2, 2011

Audio compression and decompression using integer-reversible modulated lapped transforms

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,991,622
App. No.
11/688,851
Granted
Aug 2, 2011
Kind
B2
Abstract

A “STAC Codec” provides lossless audio compression and decompression by processing an audio signal using integer-reversible modulated lapped transforms (MLT) to produce transform coefficients. Transform coefficients are then encoded using a backward-adaptive run-length Golomb-Rice (RLGR) encoder to produce losslessly compressed audio signals. In additional embodiments, further compression gains are achieved via an inter-block spectral estimation and data sorting strategy. Further, compression in the transform domain allows the bitstream to be partially decoded, using the corresponding RLGR decoder, to reconstruct the frequency-domain coefficients. These frequency-domain coefficients are then directly used to speed up various transform-domain based applications such as transcoding media to lossy or other formats, search, identification, visualization, watermarking, etc. In other embodiments, near-lossless compression is achieved by right-shifting transform coefficients by some number of bits such that quantization errors are not perceived as distortion in the decoded audio signal.

Claims (49)

1. A system for losslessly compressing an audio signal, comprising:

a device for receiving an input audio signal having at least a left channel and a right channel;

a device for processing overlapping frames of the input audio signal using an integer-reversible modulated lapped transform (MLT) to produce a block of transform coefficients for each frame of each channel;

a device for reversibly computing a block of mean transform coefficients and a block of difference transform coefficients from each corresponding block of transform coefficients computed for the left and right audio channels;

a device for encoding each block of transform coefficients using a backward-adaptive run-length Golomb-Rice (RLGR) encoder, wherein encoding each block of transform coefficients using the RLGR encoder further includes encoding the blocks of mean transform coefficients and difference transform coefficients; and

a device for constructing a losslessly compressed output data stream representing the input audio signal by sequentially compositing the RLGR encoded blocks of transform coefficients for every frame of the input audio signal, said output data stream being any of stored on a physical computer readable medium and transmitted across a network to one or more receiving devices.

2. The system of claim 1 further comprising a device for determining a variable block length on a frame-by frame basis for every frame of the input signal, and wherein the integer-reversible MLT uses those variable block lengths.

3. The system of claim 1 further comprising a device for sorting the transform coefficients comprising each block of transform coefficients by computing a bidirectional smoothed magnitude spectral estimate over a frequency index of the transform coefficients prior to encoding the transform coefficients using the RLGR encoder.

4. The system of claim 1 further comprising a device for transcoding the output data stream to a lossy format by:

partially decoding the output data stream to recover the transform domain coefficients that were encoded by the RLGR encoder; and

encoding each block of recovered transform domain coefficients using a lossy encoder to construct a lossy output data stream representing a lossy version of the original input audio signal.

5. The system of claim 4 wherein encoding each block of recovered transform domain coefficients using the lossy encoder comprises:

a device for right shifting the transforms in each block of transform coefficients by an automatically computed number of bits; and

a device for encoding the resulting right-shifted blocks of transforms using the RLGR encoder.

6. The system of claim 1 wherein sequentially compositing the RLGR encoded blocks of transform coefficients for every frame of the input audio signal comprises:

a device for selecting a shortest pair of encoded transform coefficients for each frame of the input audio signal from a first pair of encoded transform coefficients and a second pair of encoded transform coefficients;

wherein the first pair of encoded transform coefficients corresponds to the transform coefficients computed from the left and right channels of the audio signal; and

wherein the second pair of encoded transform coefficient corresponds to the blocks of mean transform coefficients and difference transform coefficients.

7. A method for encoding an audio signal, comprising using a computing device to:

receive a stereo audio signal having a left and right audio channel;

process sequential overlapping frames of samples of the stereo audio signal using an integer-reversible modulated lapped transform (MLT) to compute a block of transform coefficients for each frame of the left and right audio channels;

reversibly compute a block of mean transform coefficients and a block of difference transform coefficients from each corresponding block of transform coefficients computed for the left and right audio channels;

encode all of the blocks of transform coefficients using a backward-adaptive run-length Golomb-Rice (RLGR) encoder;

evaluate a first pair of encoded transform coefficients corresponding to the RLGR encoded blocks of transform coefficients computed for the left and right audio channels, and a second pair of encoded transform coefficients corresponding to the RLGR encoded blocks of transform coefficients computed for the block of mean transform coefficients and the block of difference transform coefficients to determine which pair of RLGR encoded blocks of transform coefficients is represented by a shortest bitstream;

construct a losslessly compressed output data stream representing the stereo audio signal by sequentially compositing the shortest bitstreams corresponding to either the first pair or the second pair of RLGR encoded blocks of transform coefficients for every frame of the stereo audio signal; and

storing the output data stream on a computer-readable storage device.

8. The method of claim 7 wherein the integer-reversible MLT uses a variable block length that is automatically determined on a frame-by-frame basis for every frame of the stereo audio signal.

9. The method claim 7 further comprising sorting the transform coefficients comprising each block of transform coefficients by computing a bidirectional smoothed magnitude spectral estimate over a frequency index of the transform coefficients prior to encoding the transform coefficients using the RLGR encoder.

10. The method of claim 9 wherein encoding all of the blocks of transform coefficients using the RLGR encoder comprises encoding all non-sorted versions of the transform coefficients and all sorted versions of the transform coefficients.

11. The method of claim 10 wherein constructing the losslessly compressed output data stream further comprises:

selecting from any of the first and second pairs and a third and fourth pair of encoded transform coefficients for sequentially compositing the shortest bitstreams corresponding to any of the first, second, third, or fourth pair of RLGR encoded blocks of transform coefficients for every frame of the stereo audio signal;

wherein the third pair of encoded transform coefficients corresponds to the sorted version of the transform coefficients computed for the left and right audio channels; and

wherein the fourth pair of encoded transform coefficients corresponds to the sorted version of the transform coefficients computed for the block of mean transform coefficients and the block of difference transform coefficients.

12. The method of claim 7 further comprising transcoding the output data stream to a lossy format by:

partially decoding the output data stream to recover the transform domain coefficients that were encoded by the RLGR encoder; and

encoding each block of recovered transform domain coefficients using a lossy encoder to construct a lossy output data stream representing a lossy version of the original stereo audio signal.

13. The method of claim 12 wherein encoding each block of recovered transform domain coefficients using the lossy encoder comprises:

right shifting the transforms in each block of transform coefficients by an automatically computed number of bits; and

encoding the resulting right-shifted blocks of transforms using the RLGR encoder.

14. A process for decoding compressed audio data, comprising steps for:

receiving compressed audio data comprising encoded blocks of transform domain coefficients from a computer-readable storage device;

decoding the encoded blocks of transform coefficients using a backward-adaptive run-length Golomb-Rice (RLGR) decoder to recover transform coefficients corresponding to left and right audio channels of a stereo audio signal, and to further recover blocks of mean transform coefficients and difference transform coefficients that were reversibly computed from each corresponding block of transform coefficients prior to encoding those blocks of transform coefficients using a backward-adaptive RLGR encoder;

applying an inverse integer-reversible modulated lapped transform (MLT) to the recovered transform coefficients to recover time domain signals corresponding to each of the one or more audio channels; and

combining the time domain audio signals to create an output audio signal.

15. The process of claim 14 wherein an inverse sorting is applied to the recovered transform coefficients prior to applying the inverse integer-reversible MLT to the recovered transform coefficients.

16. The process of claim 15 wherein a bidirectional inter-block spectral estimator recovered from the compressed audio data is used to guide the inverse sorting of recovered transform coefficients.

17. The process of claim 14 wherein the inverse integer-reversible MLT uses a variable block length that is recovered from the compressed audio data on a frame-by-frame basis for every frame of the compressed audio signal.

18. The process of claim 14 further comprising storing the output audio signal on a computer readable medium.

19. The process of claim 14 further comprising providing a playback of the output audio signal on an audio playback device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2007
From: MALVAR, HENRIQUE S.
To: MICROSOFT CORPORATION
Reel/Frame 019074/0579 →
Continuity (1)
Related Publication 20080234845A1 · Sep 25, 2008