IP Library Granted Patent US 8,190,441
Granted Patent B2
US 8,190,441 · App. 11/519,389 · Granted May 29, 2012

Playback of compressed media files without quantization gaps

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 8,190,441
App. No.
11/519,389
Granted
May 29, 2012
Kind
B2
Abstract

Playback by a decoder of a lossy compressed digital media file without quantization gaps is disclosed. The digital media file can be formed of a number of audio samples grouped into a corresponding number of audio frames. As a method, one embodiment can be carried out by identifying an encoder used to compress the digital media file; obtaining an encoder delay value for the identified encoder; obtaining a decoder delay value for the decoder; determining a audio sample count corresponding to a last valid audio sample; setting a re-synchronization after seek option marker N audio frames from the last valid audio sample; and decoding valid audio samples using the encoder delay value, the decoder delay value, and the sample count corresponding to the last valid audio sample.

Claims (74)

1. A method of playback by a decoder of a lossy compressed digital media file without quantization gaps, wherein the digital media file is formed of a number of audio samples grouped into a corresponding number of audio frames, comprising:

identifying an encoder used to compress the digital media file;

obtaining an encoder delay value for the identified encoder;

obtaining a decoder delay value for the decoder;

determining an audio sample count corresponding to a last valid audio sample;

setting a re-synchronization after seek option marker N audio frames from the last valid audio sample; and

decoding valid audio samples of the digital media file based on at least the encoder delay value, the decoder delay value, and the audio sample count corresponding to the last valid audio sample,

wherein the determining of the audio sample count corresponding to a last valid audio sample, comprises:

(a) determining a total number M of audio samples in the digital audio file;

(b) decoding an Mth audio sample to form an Mth audio value;

(c) decoding an (M-n)th audio sample to form an (M-n)th audio value;

(d) generating a fractional change value between the Mth audio value and the (M-n)th audio value;

(e) comparing the fractional change value to a first threshold value; and

(f) updating a discontinuity counter if the fractional change value is greater than the first threshold.

2. A method as recited in claim 1 , wherein the determining the audio sample count, comprises:

decoding the digital media file to establish a first valid audio sample;

estimating an end frame of the digital media file; and

estimating the audio sample count corresponding to a last valid audio sample based on the first valid audio sample and the estimated end frame.

3. A method as recited in claim 1 , wherein the encoder delay value, the sample count corresponding to the last valid audio sample, and the re-synchronization after seek option marker are stored in a meta file uniquely associated with the digital media file.

4. A method as recited in claim 1 , wherein the encoder delay value, the sample count corresponding to the last valid audio sample, and the re-synchronization after seek option marker are encoded in the compressed digital media file by the encoder.

5. A method as recited in claim 1 , wherein the identifying the encoder comprises;

if the compressed digital media file is a VBR type compressed digital media file, then reading a VBR descriptor located in a first audio frame that includes an encoder ID, otherwise,

determining if any metadata is stored in any of a number of beginning audio frames;

retrieving the encoder identifier (ID) from the metadata, or

retrieving a vendor ID; and

using a look up table to determine the encoder ID associated with the vendor ID.

6. A method as recited in claim 5 , wherein obtaining the encoder delay value comprises:

looking up the encoder delay value corresponding to the encoder ID in a data structure other than the compressed digital media file.

7. A method as recited in claim 1 , wherein obtaining the decoder delay value for the decoder comprises:

looking up the decoder delay value corresponding to the decoder used to decode the compressed digital audio file.

8. A method as recited in claim 1 , further comprising:

repeating (a)-(f) for a number of audio samples corresponding to approximately t seconds.

9. A method as recited in claim 8 , further comprising:

if the discontinuity counter is at least two, then designating the audio sample counter corresponding to a second discontinuity as the last valid audio sample, otherwise;

reducing the first threshold value to a second threshold value; and

repeating (a)-(f) for the number of audio samples corresponding to approximately t seconds.

10. A method as recited in claim 9 , further comprising:

if the discontinuity counter is at least two using the second threshold value, then designating the audio sample corresponding to the second discontinuity as the last valid audio sample otherwise;

setting a fail flag indicating that the last valid audio sample is the last audio sample in the digital file.

11. Computer program product for playback by a decoder of a lossy compressed digital media file without quantization gaps, wherein the digital media file is formed of a number of audio samples grouped into a corresponding number of audio frames, comprising:

computer code for identifying an encoder used to compress the digital media file;

computer code for obtaining an encoder delay value for the identified encoder;

computer code for obtaining a decoder delay value for the decoder;

computer code for determining an estimated audio sample count corresponding to a last valid audio sample based on the first valid audio sample and the estimated end frame;

computer code for setting a re-synchronization after seek option marker N audio frames from the last valid audio sample;

computer code for decoding valid audio samples of the digital media file based on at least the encoder delay value, the decoder delay value, and the sample count corresponding to the last valid audio sample; and

computer readable medium for storing the computer code,

wherein the computer program code for determining the audio sample count corresponding to a last valid audio sample, comprises:

(a) computer code for determining a total number M of audio samples in the digital audio file;

(b) computer code for decoding an Mth audio sample to form an Mth audio value;

(c) computer code for decoding an (M-n)th audio sample form an (M-n)th audio value;

(d) computer code for generating a fractional change value between the Mth audio value and the (M-n)th audio value;

(e) computer code for comparing the fractional change value to a first threshold value; and

(f) computer code for updating a discontinuity counter if the fractional change value is greater than the first threshold.

12. Computer program product as recited in claim 11 , wherein the encoder delay value, the sample count corresponding to the last valid audio sample, and the re-synchronization after seek option marker are stored in a meta file uniquely associated with the digital media file.

13. Computer program product as recited in claim 11 , wherein the encoder delay value, the sample count corresponding to the last valid audio sample, and the re-synchronization after seek option marker are encoded in the compressed digital media file by the encoder.

14. Computer program product as recited in claim 11 , wherein the identifying the encoder comprises:

computer code for reading a VBR descriptor located in a first audio frame that includes an encoder ID if the compressed digital media file is a VBR type compressed digital media file, then, otherwise,

computer code for determining if any metadata is stored in any of a number of beginning audio frames;

computer code for retrieving the encoder identifier (ID) from the metadata, or

computer code for retrieving a vendor ID; and

computer code for using a look up table to determine the encoder ID associated with the vendor ID.

15. Computer program product as recited in claim 14 , wherein the computer program code for obtaining the encoder delay value comprises:

computer program code for looking up the encoder delay value corresponding to the encoder ID in a data structure other than the compressed digital media file.

16. Computer program product as recited in claim 11 , wherein the computer code for determining an audio sample count, comprises:

computer code for decoding the digital media file to establish a first valid audio sample;

computer code for estimating an end frame of the digital media file; and

computer code for estimating the audio sample count corresponding to a last valid audio sample based on the first valid audio sample and the estimated end frame.

17. Computer program product as recited in claim 11 , further comprising:

computer code for repeating (a)-(f) for a number of audio samples corresponding to approximately t seconds.

18. Computer program product as recited in claim 17 , further comprising:

if the discontinuity counter is at least two, then designating the audio sample counter corresponding to a second discontinuity as the last valid audio sample, otherwise;

computer code for reducing the first threshold value to a second threshold value; and

computer code for repeating (a)-(f) for the number of audio samples corresponding to approximately t seconds.

Assignments (2)
CHANGE OF NAME Recorded Mar 6, 2008
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 020617/0085 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2006
From: KINCAID, WILLIAM S.
To: APPLE COMPUTER, INC.
Reel/Frame 018304/0561 →