US5737531A
Expired / Lapsed
US
⏱️ 0.0 years remaining
System for synchronizing by transmitting control packet to omit blocks from transmission, and transmitting second control packet when the timing difference exceeds second predetermined threshold
Assignee: International Business Machines Corp
•
Filing: 1995-06-27
•
Granted: 1998-04-07
•
Expires: 2015-06-27
Abstract
Abstract Related media streams are transmitted from data sources and received at a data target. A synchronization mechanism is provided for detecting a timing difference between the media streams. If the timing difference exceeds a predetermined threshold, a feedback signal is sent from the data target back to the data source where another mechanism is provided that responds to the feedback signal and causes one of the data sources to alter the transmission of its corresponding media stream to bring the streams back into synchronization.
Inventors
- 👤 Lynnae Anne Ehley
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-27 07:11
CPC Classifications
H; H04; H04L; H04L65/00; H04L65/80; H04L65/60; H04L65/61; H04L65/613; H04L65/75; H04L65/764; H04L9/00; H04L9/40; H04L65/1066; H04L65/1101
Claims Analysis
Total Claims: 15
Claim 1
Independent Claim
320 words
Apparatus for synchronizing a slave media stream to a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, and the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the apparatus comprising: means, located at the data target and responsive to the plurality of slave media data blocks and the plurality of master media data blocks arriving at the data target, for comparing stream times of the slave media data blocks and the master media data blocks to determine a timing difference between the slave media stream and the master media stream and for transmitting a feedback control packet across the network to the slave data source to cause the slave data source to omit selected slave media data blocks from transmission across the network, the control packet comprising: a frame drop number, indicating the number of slave media data blocks to drop at the slave data source at a given instance; an interval count, indicating the number of slave media data blocks to allow to pass before attempting to drop more slave media data blocks; and, a skip count, indicating the number of times to repeat dropping frames according to the frame drop number and the interval count; means, responsive to the timing difference, for controlling the slave data source to omit selected slave media data blocks from transmission across the network, when the timing difference exceeds a first predetermined threshold; and means responsive to the timing difference exceeding a second predetermined threshold for dropping slave media data blocks at the data target and wherein the first predetermined threshold comprises a predetermined number of dropped slave media data blocks within a predetermined time period.
Claim 2
Dependent Claim
320 words
Apparatus for synchronizing a slave media stream to a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, and the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the apparatus comprising: means, located at the data target and responsive to the plurality of slave media data blocks and the plurality of master media data blocks arriving at the data target, for comparing stream times of the slave media data blocks and the master media data blocks to determine a timing difference between the slave media stream and the master media stream and for transmitting a feedback control packet across the network to the slave data source to cause the slave data source to omit selected slave media data blocks from transmission across the network, the control packet comprising: a frame drop number, indicating the number of slave media data blocks to drop at the slave data source at a given instance; an interval count, indicating the number of slave media data blocks to allow to pass before attempting to drop more slave media data blocks; and, a skip count, indicating the number of times to repeat dropping frames according to the frame drop number and the interval count; means, responsive to the timing difference, for controlling the slave data source to omit selected slave media data blocks from transmission across the network, when the timing difference exceeds a first predetermined threshold; and means responsive to the timing difference exceeding a second predetermined threshold for dropping slave media data blocks at the data target and wherein the first predetermined threshold comprises a predetermined number of dropped slave media data blocks within a predetermined time period.
Claim 3
Dependent Claim
34 words
The apparatus of claim 1 further comprising means responsive to the timing difference exceeding a third predetermined threshold for transmitting a second feedback control packet from the data target to the slave data source.
Claim 4
Dependent Claim
51 words
The apparatus of claim 1 further including a data structure and means responsive to a slave media data block being dropped at the data target for storing information in the data structure, which information identifies the dropped slave media data blocks and times at which slave media data blocks were dropped.
Claim 5
Dependent Claim
53 words
The apparatus of claim 3 further including means responsive to the total number of dropped slave media data blocks for analyzing the data structure to determine the number of slave media data blocks dropped during the predetermined time period and wherein the number is used by the controlling means as the timing difference.
Claim 6
Independent Claim
203 words
A method of synchronizing a slave media stream to a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, and the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the method comprising the steps of: A. receiving the plurality of slave media data blocks and the plurality of master media data blocks at the data target; B. comparing stream times of the slave media data blocks and the master media data blocks to determine a timing difference between the slave media stream and the master media stream; C. controlling the slave data source to omit selected slave media data blocks from transmission across the network, when the timing difference exceeds a predetermined threshold by transmitting a control packet across the network to cause the slave data source to omit selected slave media data blocks from transmission across the network, and transmitting a second control packet across the network when the timing difference exceeds a second predetermined threshold.
Claim 7
Independent Claim
203 words
A method of synchronizing a slave media stream to a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, and the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the method comprising the steps of: A. receiving the plurality of slave media data blocks and the plurality of master media data blocks at the data target; B. comparing stream times of the slave media data blocks and the master media data blocks to determine a timing difference between the slave media stream and the master media stream; C. controlling the slave data source to omit selected slave media data blocks from transmission across the network, when the timing difference exceeds a predetermined threshold by transmitting a control packet across the network to cause the slave data source to omit selected slave media data blocks from transmission across the network, and transmitting a second control packet across the network when the timing difference exceeds a second predetermined threshold.
Claim 8
Dependent Claim
57 words
The method of claim 5 wherein the predetermined threshold is defined in terms of a predetermined number of frames being dropped at the data target within a predetermined time period and the method further includes the step of: D. dropping slave media data blocks at the data target when the timing difference exceeds a predetermined temporal asynchronism.
Claim 9
Dependent Claim
450 words
Apparatus for synchronizing a slave media stream to a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, and the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the apparatus comprising: a CPU; a memory; a first software thread, stored in the memory and executable by the CPU, to cause incoming master media data blocks to be stored in the memory, in response to incoming master media data blocks being received by the apparatus; a second software thread, stored in the memory and executable by the CPU, to cause incoming slave media data blocks to be stored in the memory, in response to incoming slave media data blocks being received by the apparatus; a third software thread, stored in the memory and executable by the CPU, to cause stream times of the master stream and the slave stream to be stored in the memory; a fourth software thread, stored in the memory and executable by the CPU, to cause the CPU to process the master media data blocks stored in the memory and to inform the third thread of the stream time of the master media data blocks being processed; a fifth software thread, stored in the memory and executable by the CPU, to cause the CPU to process the slave media data blocks stored in the memory and to inform the third thread of the stream time of the slave media data blocks being processed; wherein the third thread includes means for determining whether the stream time of the master stream and the stream time of the slave stream are in asynchronism exceeding a predetermined tolerance; and wherein the fifth thread includes means for monitoring a frequency of the third thread detecting an asynchronism exceeding the predetermined tolerance and includes means for transmitting a control packet across the network to the slave data source to cause the slave data source to omit selected slave media data blocks from transmission across the network, when the frequency exceeds a predetermined threshold, the control packet including: a frame drop number, indicating the number of slave media data blocks to drop at the slave data source at a given instance; an interval count, indicating the number of slave media data blocks to allow to pass before attempting to drop more slave media data blocks; and a skip count, indicating the number of times to repeat dropping frames according to the frame drop number and the interval count.
Claim 10
Dependent Claim
450 words
Apparatus for synchronizing a slave media stream to a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, and the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the apparatus comprising: a CPU; a memory; a first software thread, stored in the memory and executable by the CPU, to cause incoming master media data blocks to be stored in the memory, in response to incoming master media data blocks being received by the apparatus; a second software thread, stored in the memory and executable by the CPU, to cause incoming slave media data blocks to be stored in the memory, in response to incoming slave media data blocks being received by the apparatus; a third software thread, stored in the memory and executable by the CPU, to cause stream times of the master stream and the slave stream to be stored in the memory; a fourth software thread, stored in the memory and executable by the CPU, to cause the CPU to process the master media data blocks stored in the memory and to inform the third thread of the stream time of the master media data blocks being processed; a fifth software thread, stored in the memory and executable by the CPU, to cause the CPU to process the slave media data blocks stored in the memory and to inform the third thread of the stream time of the slave media data blocks being processed; wherein the third thread includes means for determining whether the stream time of the master stream and the stream time of the slave stream are in asynchronism exceeding a predetermined tolerance; and wherein the fifth thread includes means for monitoring a frequency of the third thread detecting an asynchronism exceeding the predetermined tolerance and includes means for transmitting a control packet across the network to the slave data source to cause the slave data source to omit selected slave media data blocks from transmission across the network, when the frequency exceeds a predetermined threshold, the control packet including: a frame drop number, indicating the number of slave media data blocks to drop at the slave data source at a given instance; an interval count, indicating the number of slave media data blocks to allow to pass before attempting to drop more slave media data blocks; and a skip count, indicating the number of times to repeat dropping frames according to the frame drop number and the interval count.
Claim 11
Dependent Claim
89 words
The apparatus of claim 7 wherein the fifth thread comprises: means for dropping slave media data blocks from being processed, if the third thread detects that the asynchronism exceeds the predetermined tolerance; a data structure for recording information; means for storing information in the data structure indicating the number of slave media data blocks dropped by the means for dropping and the time when the slave media blocks were dropped; and wherein the means for monitoring a frequency includes means for analyzing the data structure to determine the frequency.
Claim 12
Dependent Claim
27 words
The apparatus of claim 7 including means for transmitting a second control packet if the means for monitoring detects that the frequency exceeds a second predetermined threshold.
Claim 13
Dependent Claim
249 words
A computer program product for use with a computer, the program product comprising: a computer usable medium having computer readable program code means embodied in said medium for causing the computer to synchronize a slave media stream a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the program code comprising: first computer program means for causing the computer to receive the plurality of slave media data blocks and the plurality of master media data blocks at the data target; second computer program means for comparing stream times of the slave media data blocks and the master media data blocks to determine a timing difference between the slave media stream and the master media stream; and third computer program means for causing the computer to control the slave data source to omit selected slave media data blocks from transmission across the computer network when the timing difference exceeds a predetermined threshold by transmitting a control packet across the network to cause the slave data source to omit slave media data blocks from transmission across the network, and transmitting a second control packet across the network when the timing difference exceeds a second predetermined threshold.
Claim 14
Dependent Claim
249 words
A computer program product for use with a computer, the program product comprising: a computer usable medium having computer readable program code means embodied in said medium for causing the computer to synchronize a slave media stream a master media stream, the slave media stream having a plurality of slave media data blocks sequentially transmitted from a slave data source to a data target, the master media stream having a plurality of master media data blocks sequentially transmitted from a master data source to the data target, the slave media blocks and the master media blocks being transmitted across a computer network, the program code comprising: first computer program means for causing the computer to receive the plurality of slave media data blocks and the plurality of master media data blocks at the data target; second computer program means for comparing stream times of the slave media data blocks and the master media data blocks to determine a timing difference between the slave media stream and the master media stream; and third computer program means for causing the computer to control the slave data source to omit selected slave media data blocks from transmission across the computer network when the timing difference exceeds a predetermined threshold by transmitting a control packet across the network to cause the slave data source to omit slave media data blocks from transmission across the network, and transmitting a second control packet across the network when the timing difference exceeds a second predetermined threshold.
Claim 15
Dependent Claim
69 words
The computer program product as defined in claim 10 wherein the predetermined threshold is defined in terms of a predetermined number of frames being dropped at the data target within a predetermined time period and wherein the program code means further comprises: fourth computer program means for causing the computer to drop slave media data blocks at the data target when the timing difference exceeds a predetermined temporal asynchronism.
References Cited (Backward Citations)
US4663706A
Cited
US4901277A
Cited
US4748588A
Cited
US4780891A
Cited
US5195092A
Cited
US5268846A
Cited
US5333299A
Cited
US5471576A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2001-04-06 | 2001-10-06 | 2002-04-07 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2005-04-06 | 2005-10-06 | 2006-04-07 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2009-04-06 | 2009-10-06 | 2010-04-07 | $7700.00 | Window Closed / Lapsed |