Fine-grained synchronization of a decompressed audio stream by skipping or repeating a variable number of samples from a frame
First Claim
1. A data processing device for processing a stream of data, comprising:
- means for decoding the stream of data to form a stream of decompressed audio data;
a first memory circuit operable to hold at least a first frame of the stream of decompressed audio data, the first frame of data having a predetermined number of decompressed audio data words, the memory circuit connected to an address bus and to a data bus;
a port for transferring the stream of decompressed audio data to another device;
means for determining a first presentation time for the frame of decompressed audio data;
means for determining a first reference time;
a processing unit connected to the first memory circuit and to the port;
the processing unit operable to transfer the first frame of decompressed audio data to the port, the processing unit being further operable to determine a first time difference between the first presentation time and the first reference time; and
means for transferring only a first portion of the first frame in accordance with the first time difference, wherein the first portion of the first frame is a number of decompressed audio data words selected from a range consisting of any whole number between and including 1 and the predetermined number of data words, whereby synchronism between a second presentation time of a second frame of data and a second reference time is improved.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing device uses a portion of a random access memory as an output buffer for holding a frame of PCM sample data which is being output after being processed by a processing unit within the processing device. Fine grained synchronization between a reference clock and a stream of PCM data frames is provided by transferring only a portion of selected frame of PCM sample data PCM(n+1), in response to a time difference 971. A breakpoint address is determined to delineate the portion of the selected frame that is to be transferred. A sorted list of the addresses of the discontinuities is maintained in breakpoint queue. Since the buffer is managed in a FIFO manner, a single breakpoint register is sufficient to monitor addresses as they are provided by an address register for accessing the random access memory. When a breakpoint is detected, the breakpoint queue and the breakpoint register is updated by an update task 802.
-
Citations
16 Claims
-
1. A data processing device for processing a stream of data, comprising:
-
means for decoding the stream of data to form a stream of decompressed audio data;
a first memory circuit operable to hold at least a first frame of the stream of decompressed audio data, the first frame of data having a predetermined number of decompressed audio data words, the memory circuit connected to an address bus and to a data bus;
a port for transferring the stream of decompressed audio data to another device;
means for determining a first presentation time for the frame of decompressed audio data;
means for determining a first reference time;
a processing unit connected to the first memory circuit and to the port;
the processing unit operable to transfer the first frame of decompressed audio data to the port, the processing unit being further operable to determine a first time difference between the first presentation time and the first reference time; and
means for transferring only a first portion of the first frame in accordance with the first time difference, wherein the first portion of the first frame is a number of decompressed audio data words selected from a range consisting of any whole number between and including 1 and the predetermined number of data words, whereby synchronism between a second presentation time of a second frame of data and a second reference time is improved. - View Dependent Claims (2, 3)
a first register operable to hold a breakpoint address, the breakpoint address corresponding to an address within the first frame of data; and
a first comparison circuit connected to the address bus and to the first register with a breakpoint interrupt request output connected to the processing unit, the first comparison circuit operable to compare an address provided on the address bus with the breakpoint address held in the first register, the first comparison circuit being further operable to assert a breakpoint interrupt request on the interrupt request output when the address provided on the address bus is equal to the breakpoint address.
-
-
3. The data processing device of claim 2, wherein the first memory circuit is a first portion of a larger memory circuit.
-
4. A method for improving synchronism while processing a stream of data, comprising:
-
decoding and filtering a stream of compressed audio data to form a stream of decompressed audio data;
buffering a first frame of the stream of decompressed audio data in a memory circuit prior to transferring the frame of data to an output port connected to another device, wherein the first frame of data has a predetermined number of decompressed audio data words;
determining a first presentation time for transferring the first frame of data to the output port;
determining a time difference between the first presentation time and a first reference time when the first frame is to be actually transferred;
selecting a portion of the first frame to be output in accordance with the time difference, wherein the portion of the first frame is a number of decompressed audio data words selected from a range consisting of any whole number between and including 1 and the predetermined number of decompressed audio data words, and transferring only the selected portion of the first frame of decompressed audio data to the output port in accordance with the time difference, whereby synchronism between a second presentation time of a second frame of data and a second reference time is improved. - View Dependent Claims (5, 6, 7)
calculating a breakpoint address which is an address in the memory circuit of a last word in the selected number of data words;
sequentially transferring words of data from the frame of data to the output port while comparing an address of each word of data to the breakpoint address; and
discontinuing the transferring step when the breakpoint address is detected.
-
-
8. An audio reproduction system, comprising:
-
means for acquiring a stream of data which contains encoded audio data;
a data device for processing the stream of data connected to the means for acquiring, the data device operable to form at least one channel of PCM data on an at least one device output terminal;
a digital to analog converter connected to the output terminal operable to convert the channel of PCM data to an analog audio signal on a D/A output terminal;
a speaker subsystem connected to the D/A output terminal;
wherein the data device further comprises;
means for decoding the stream of data to form a stream of decompressed audio data;
a first memory circuit operable to hold at least a first frame of the stream of decompressed audio data, the first frame of data having a predetermined number of decompressed audio data words, the memory circuit connected to an address bus and to a data bus;
a port for transferring the stream of decompressed audio data to another device;
means for determining a first presentation time for the frame of decompressed audio data;
means for determining a first reference time;
a processing unit connected to the first memory circuit and to the port;
the processing unit operable to transfer the first frame of decompressed audio data to the port, the processing unit being further operable to determine a first time difference between the first presentation time and the first reference time; and
means for transferring only a first portion of the first frame in accordance with the first time difference, wherein the first portion of the first frame is a number of decompressed audio data words selected from a range consisting of any whole number between and including 1 and the predetermined number of decompressed audio data words, whereby synchronism between a second presentation time of a second frame of data and a second reference time is improved. - View Dependent Claims (9, 10, 11)
-
-
12. A method for improving synchronism while processing a stream of data, comprising:
-
decoding and filtering a stream of compressed audio data to form a stream of decompressed audio data;
buffering a first frame of the stream of decompressed audio data in a memory circuit prior to playing the frame of data, wherein the first frame of data has a predetermined number of decompressed audio data words;
determining a first presentation time for playing the first frame of data;
determining a time difference between the first presentation time and a first reference time when the first frame is to be actually played;
selecting a portion of the first frame to be played in accordance with the time difference, wherein the portion of the first frame is a number of decompressed audio data words selected from a range consisting of any whole number between and including 1 and the predetermined number of decompressed audio data words, and playing only the selected portion of the first frame of decompressed audio data in accordance with the time difference, whereby synchronism between a second presentation time of a second frame of data and a second reference time is improved. - View Dependent Claims (13, 14, 15, 16)
wherein the step of playing further comprises playing the entire first frame of the stream of decompressed audio data in addition to playing the selected portion of decompressed audio data words of the first frame.
-
-
15. The method of claim 14, wherein the step of selecting further comprises:
-
calculating a breakpoint address which is an address in the memory circuit of a last word in the selected number of decompressed audio data words;
sequentially transferring words of decompressed audio data from the frame of decompressed audio data to be played while comparing an address of each word of decompressed audio data to the breakpoint address; and
discontinuing the transferring step when the breakpoint address is detected.
-
-
16. The method of claim 14, wherein each decompressed audio data word is a pulse code modulated data word.
Specification