Method and apparatus for processing data in a processing unit being a thread in a multithreading environment
AssigneeThomson Licensing
InventorJürgen Schmidt
Life of this patent
Estimating the term…
Loading patent…
AssigneeThomson Licensing
InventorJürgen Schmidt
Estimating the term…
A method for improving timing behavior of a processing unit in a multithreading environment is disclosed, wherein the processing unit generates data frames for an output unit by combining data from a plurality of input units, and the processed data are buffered in an output buffer between the processing unit and the output unit. The method comprises sending from the output unit to the processing unit a value corresponding to the filling of the output buffer, calculating a timer value, setting a timer with the timer value, wherein the timer calls the processing unit thread after the specified time. The timer value depends on the value corresponding to the averaged filling of the output buffer. As a result, the average filling of the output buffer is lower compared to conventional thread management, and thus the system is more flexible and reacts quicker.
A method for processing data in a processing unit, the processing unit generating data frames for an output unit by combining data from a plurality of input units having at least two different simultaneous sample rates, wherein the processed data are buffered in an output buffer between the processing unit and the output unit, and wherein the processing unit, the input units and the output unit are threads in a multithreading environment and are executed on a same microprocessor, comprising the steps of:
A method for improving audio-video synchronization in an AV presentation, wherein audio data are processed in a processing unit, the processing unit generating data frames for an output unit by combining data from a plurality of input units, the input units having at least two different simultaneous sample rates, wherein processed data are buffered in an output buffer between the processing unit and the output unit, and wherein the processing unit, the input units and the output unit are threads in a multithreading environment and are executed on a same microprocessor, comprising the steps of:
An apparatus for processing data, the apparatus receiving input data from a plurality of inputs, wherein the input data have at least two different simultaneous sample rates, and comprising a microprocessor, a data set and a timer, wherein the microprocessor and the data set constitute a data processing unit and a data input unit, the data processing unit and the data output unit are threads in a multithreading environment, and wherein data are passed through a buffer from the data processing unit to the data output unit, comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
By interrupt, e.g. masked: interrupt from clock, e.g. time of day
Computing and data processing
About 11 months of term left · ends 17 Sep 2027 (estimated)
This application claims the benefit, under 35 U.S.C. § 119 of European Patent Application 04013686.3, filed Jun. 10, 2004.
This invention relates to a method for processing data in a processing unit. In particular, the invention relates to a method for processing data in a processing unit, wherein the processing unit generates data frames for an output unit by combining data from a plurality of input units, and wherein said processing unit, input units and output unit are threads in a multithreading environment.
Audio-visual (AV) presentations that are coded according to the Motion Picture Expert Group (MPEG) standard ISO/IEC-14496-1, known as MPEG-4 Systems, may consist of several data streams, e.g. one or more streams for video, one or more streams for audio, and others. The audio streams may have individual, usually standardized sample rates, e.g. 8 kb/s, 16 kb/s, 22.05 kb/s, 32 kb/s, 44.1 kb/s or 48 kb/s for different types of audio streams. Further, these streams consist of packets or frames with attached time-stamps.
Exemplary embodiments of the invention are described with reference to the accompanying drawings, which show in
FIG. 1 a conventional single-input audio processing system;
FIG. 2 an extended conventional audio processing system;
In the following, the problem with prior art systems is described in more detail before preferred embodiments of the invention are described.
FIG. 2 shows a processing unit 14 being the center of a system with several multimedia source streams, which are decoded by separate decoders 11,12,13 and buffered in separate buffers 11b,12b,13b. The decoders 11,12,13 belong to separate time domains or threads that are independent from the time domain of the processing unit 14. The processing unit 14 synchronizes the timestamps between the data from different sources. The output of the processing unit 14 is sent to a frame-oriented FIFO buffer 15. A signal 18 from the buffer 15 transmits the buffer filling level to the processing unit 14, thus requesting more data so as to prevent an underflow when the filling of the buffer 15 is below a defined level. The output of the buffer 15 is driven by an output module 16, which requires in regular intervals data at the buffer output 17. Thus, the output module determines the filling and also the frame-rate of the FIFO buffer 15. The frame size of the output buffer 15 depends on the requirements of the output module 16, but usually the buffer 15 is very large, e.g. fifteen frames. In a typical software realization of such a system, the output module 16 runs in its own thread that is independent from the other threads, particularly from the input buffer threads and the thread of the processing unit 14.
The output buffer 15 is the communication element between the processing unit 14 thread and the output module 16 thread. When filling of the output buffer 15 is requested, the processing unit 14 writes data into the output buffer 15 until the buffer is full. Then the processing unit waits i.e. does nothing or performs other tasks, until the output module 16 has read a data block from the output buffer 15. Therefore the output module 16 determines the filling of the output buffer 15, which in turn determines activation of the processing unit 14.