Method and apparatus for synchronizing streaming and non-streaming multimedia devices by controlling the play speed of the non-streaming device in response to a synchronization signal
First Claim
1. Apparatus for synchronizing multiple sources of multimedia data for presentation on an output device, the apparatus comprising;
- a. a group of sources of data collectively representative of an event having a temporal flow pattern, wherein the data associated with at least one of the sources is streaming data and the data associated with at least one other source is non-streaming data and, wherein the at least one non-streaming data source has a controllable play speed and the control means associated therewith comprises means for controlling the play speed so as to correct a synchronization mismatch in response to a synchronization signal;
b. at least one output device driver;
c. data-handling means associated with each data source, each data-handling means comprising;
i. means for transferring data to the output device; and
ii. control means associated with each transfer means for controlling the rate at which data is transferred and for reporting, at a characteristic frequency, a current temporal data location;
wherein the data-handling means associated with the at least one streaming-data source comprises;
i. at least one memory buffer;
ii. first transfer means for loading the data from the storage device into the buffer as a first data stream that preserves the temporal flow pattern; and
iii. second transfer means for extracting the event from the buffer as a second data stream in accordance with and at a rate representative of the temporal flow pattern and transferring the data to the output device driver, the first and second transfer means interoperating to ensure a continuous queue of data in the buffer;
d. a synchronizer associated with all said control means for causing data to be transferred from the sources to the at least one output device driver in a temporally aligned manner, the synchronizer comprising;
i. means for designating one of the control means as a master;
ii. means for receiving synchronization pulses from the master control means;
iii. means for periodically comparing the current temporal data location of each non-master control means against that of the master to derive a synchronization-mismatch value; and
iv. means for sending a synchronization signal to selected ones of the control means based on the synchronization-mismatch values, the signals being indicative of said values, said synchronization signal causing a selected control means to correct the synchronization mismatch.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed are apparatus and methods for synchronized presentation of analog and digital data by applying a common synchronization scheme to both types of data. Digital data is "streamed" by transferring the data in blocks from a source to a series of memory buffers, where it accumulates for subsequent transfer to an output device driver. The control module responsible for data streaming periodically reports a temporal location within the presentation represented by the data. A supervisory module designates one of the control modules a "master", and periodically compares the values reported by the various other control modules against that reported by the master. If a comparison exceeds a threshold tolerance value associated with each control module, a sync pulse is delivered to that control module, causing it to correct the synchronization mismatch. This approach is applied to analog sources through the use of control modules that behave in a manner consistent with the digital control modules, but which are capable of directing the operation of analog devices and re-establishing their synchronization with other data sources despite limited modes of device control. Specifically, the control modules that handle analog information also periodically report a presentation location based solely on temporal information, react to sync pulses by altering the playback rate of the analog devices they control within user-tolerable limits, and can act as master control modules.
-
Citations
11 Claims
-
1. Apparatus for synchronizing multiple sources of multimedia data for presentation on an output device, the apparatus comprising;
-
a. a group of sources of data collectively representative of an event having a temporal flow pattern, wherein the data associated with at least one of the sources is streaming data and the data associated with at least one other source is non-streaming data and, wherein the at least one non-streaming data source has a controllable play speed and the control means associated therewith comprises means for controlling the play speed so as to correct a synchronization mismatch in response to a synchronization signal; b. at least one output device driver; c. data-handling means associated with each data source, each data-handling means comprising; i. means for transferring data to the output device; and ii. control means associated with each transfer means for controlling the rate at which data is transferred and for reporting, at a characteristic frequency, a current temporal data location; wherein the data-handling means associated with the at least one streaming-data source comprises; i. at least one memory buffer; ii. first transfer means for loading the data from the storage device into the buffer as a first data stream that preserves the temporal flow pattern; and iii. second transfer means for extracting the event from the buffer as a second data stream in accordance with and at a rate representative of the temporal flow pattern and transferring the data to the output device driver, the first and second transfer means interoperating to ensure a continuous queue of data in the buffer; d. a synchronizer associated with all said control means for causing data to be transferred from the sources to the at least one output device driver in a temporally aligned manner, the synchronizer comprising; i. means for designating one of the control means as a master; ii. means for receiving synchronization pulses from the master control means; iii. means for periodically comparing the current temporal data location of each non-master control means against that of the master to derive a synchronization-mismatch value; and iv. means for sending a synchronization signal to selected ones of the control means based on the synchronization-mismatch values, the signals being indicative of said values, said synchronization signal causing a selected control means to correct the synchronization mismatch. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product for use with a computer system having at least one output device and a group of data sources collectively representative of an event having a temporal flow pattern, wherein the data associated with at least one of the sources is streaming data and the data associated with at least one other source is non-streaming data, the computer program product comprising:
-
a computer usable medium having computer readable program code means embodied in said medium for causing a computer to synchronize the group of data sources of multimedia data for presentation on the at least one output device, the computer readable program code means comprising; first program code means, associated with each data source, comprising; means for causing the computer system to transfer data to the output device; and control means associated with each computer transfer means for controlling the rate at which data is transferred by the computer and for reporting, at a characteristic frequency, a current temporal data location; and second program code means, associated with all said control means, for causing the computer system to transfer data from the data sources to the at least one output device in a temporally aligned manner, the second program code means comprising; means for designating one of the control means as a master; means for receiving synchronization pulses from the master control means; means for periodically comparing the current temporal data location of each non-master control means against that of the master to derive a synchronization-mismatch value; means for sending synchronization signals to selected ones of the control means based upon the synchronization mismatch values, the signals being indicative of said mismatch values, said synchronization signal causing the selected control means to cause the computer to correct the synchronization mismatch; and
wherein the data-handling means associated with the at least one streaming-data source comprises;i. at least one memory buffer; ii. first transfer means for loading the data from the storage device into the buffer as a first data stream that preserves the temporal flow pattern; and iii. second transfer means for extracting the event from the buffer as a second data stream in accordance with and at a rate representative of the temporal flow pattern and transferring the data to the output device driver, the first and second transfer means interoperating to ensure a continuous queue of data in the buffer; and wherein the at least one non-streaming data source has a controllable play speed and the control means associated therewith comprises means for controlling the play speed so as to correct a synchronization mismatch in response to a synchronization signal.
-
Specification