Synchronization system for networked multimedia streams
First Claim
Patent Images
1. A data stream synchronization system comprising:
- a configuration control circuit having an input connected to receive initialization parameters, said initialization parameters including an acceptable packet loss rate (APLR) which comprises an acceptable rate for purposefully discarding packets;
a data buffer having a data input connected to receive data from a network and a data output connected to provide data to one or more receivers;
said configuration control circuit, having an output connected to said data buffer for sending buffer configuration signals to said data buffer;
said configuration control circuit calculates a first total end-to-end delay (TED) value as a function of said APLR and sends a first buffer configuration signal generated as a function of said first TED value to said data buffer;
said data buffer initializes a first stream buffer in response to said first buffer configuration signal;
said data comprising one or more data streams each having a first data packet and a plurality of subsequent data packets, each said data packet having a packet ID indicative of a respective position within said data stream;
said data buffer receives said data packets and outputs said data packets according to said first TED value and said packet ID, said data buffer discarding selected ones of said data packets arriving too late to be output within said TED.
3 Assignments
0 Petitions
Accused Products
Abstract
A network data stream synchronization method and system are disclosed. Operating delay and loss parameters are accepted and a data stream buffer is initialized. The network delay experienced by a data packet is determined and a buffer delay is imposed to provide a fixed end-to-end delay. Packets arriving too late to be played within the fixed end-to-end delay are discarded. Network delay models may be updated and clock drifts may be detected and compensated for using historical buffer data.
279 Citations
37 Claims
-
1. A data stream synchronization system comprising:
-
a configuration control circuit having an input connected to receive initialization parameters, said initialization parameters including an acceptable packet loss rate (APLR) which comprises an acceptable rate for purposefully discarding packets; a data buffer having a data input connected to receive data from a network and a data output connected to provide data to one or more receivers; said configuration control circuit, having an output connected to said data buffer for sending buffer configuration signals to said data buffer; said configuration control circuit calculates a first total end-to-end delay (TED) value as a function of said APLR and sends a first buffer configuration signal generated as a function of said first TED value to said data buffer; said data buffer initializes a first stream buffer in response to said first buffer configuration signal; said data comprising one or more data streams each having a first data packet and a plurality of subsequent data packets, each said data packet having a packet ID indicative of a respective position within said data stream; said data buffer receives said data packets and outputs said data packets according to said first TED value and said packet ID, said data buffer discarding selected ones of said data packets arriving too late to be output within said TED. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A data stream synchronization system comprising:
-
a configuration control circuit having an input connected to receive initialization parameters, said initialization parameters including an acceptable packet loss rate (APLR); a data buffer having a buffer control circuit, a data input connected to said network, a memory connected to said data input and to a data output, and an output circuit; said configuration control circuit, having an output connected to said buffer control circuit, generates buffer configuration signals responsive to said initialization parameters and sends said buffer configuration signals to said buffer control circuit; in response to said buffer configuration signals, said buffer control circuit initializes a first stream buffer having a selected portion of memory allocated thereto and a programmed packet delay value; said data packets each having a packet ID indicative of a respective position within said data stream; said data buffer receives said data packets and outputs said data packets according to said programmed packet delay value and said packet ID, said data buffer discarding selected ones of said data packets arriving too late to be output within said programmed delay value; said data stream comprises a series of said data packets, including a first data packet and one or more subsequent data packets; said data buffer determines an initial network delay representative of the delay experienced by said first data packet in being transmitted from the source to said data buffer; said data buffer determines an initial buffer slot for storing said first data packet as a function of said initial network delay and said programmed packet delay value; and said data buffer determines respective buffer slots for storing said one or more subsequent data packets as a function of said packet IDs and a present location of data packets in said data buffer.
-
-
13. A data stream synchronization system for synchronizing delivery of data received from one or more senders over one or more networks in one or more data streams comprising:
-
a configuration control circuit having an input connected to receive initialization parameters for said one or more data streams; said initialization parameters comprising an acceptable packet loss rate (APLR) which comprises an acceptable rate for purposefully discarding packets and a maximum acceptable delay (MAD); a data buffer having an input connected to receive said data from said one or more networks, and an output connected to provide data to one or more data receivers; said configuration control circuit having an output connected to said data buffer for sending buffer configuration signals to said data buffer; said configuration control circuit calculates a first total end-to-end delay (TED) value as a predetermined function of said APLR and said MAD and sends a first buffer configuration signal generated as a predetermined function of said first TED value to said data buffer; said data buffer initializing a stream buffer for each of said one or more data streams in response to said first buffer configuration signal; said one or more data streams each comprising a series of data packets including a first data packet and a plurality of subsequent data packets; for each of said first data packets, said data buffer selectively determines an initial network delay suffered by the respective one or ones of said first data packets and calculates a buffer delay representing the excess of said TED value over said network delay; said data buffer outputs said first data packet after said first data packet has been held in said stream buffer for said buffer delay; said data buffer selectively discards said data packets received with a respective network delay greater than said TED value. - View Dependent Claims (14)
-
-
15. A data stream synchronization system comprising:
-
a configuration control circuit having an input connected to receive initialization parameters, said initialization parameters including an acceptable packet loss rate (APLR); a data buffer having a data input connected to receive data from a network and a data output connected to provide data to one or more receivers; said configuration control circuit, having an output connected to said data buffer for sending buffer configuration signals to said data buffer; said configuration control circuit calculates a first total end-to-end delay (TED) value as a function of said APLR and sends a first buffer configuration signal generated as a function of said first TED value to said data buffer; said data buffer initializes a first stream buffer in response to said first buffer configuration signal; said data comprising one or more data streams each having a first data packet and a plurality of subsequent data packets, each said data packet having a packet ID indicative of a respective position within said data stream; said data buffer receives said data packets and outputs said data packets according to said first TED value and said packet ID, said data buffer discarding selected ones of said data packets arriving too late to be output within said TED; said data stream synchronization system further comprising; a network delay distribution circuit having an input for accepting an input delay value, an output for providing a calculated packet loss rate as a function of said input delay value, and an output connected to said configuration control circuit for supplying network delay probability data to said configuration control circuit with said configuration control circuit calculating said first TED value as a function of said APLR and said network probability data.
-
-
16. A data stream synchronization system comprising:
-
a configuration control circuit having an input connected to receive initialization parameters, said initialization parameters including an acceptable packet loss rate (APLR); a data buffer having a data input connected to receive data from a network and a data output connected to provide data to one or more receivers; said configuration control circuit, having an output connected to said data buffer for sending buffer configuration signals to said data buffer; said configuration control circuit calculates a first total end-to-end delay (TED) value as a function of said APLR and sends a first buffer configuration signal generated as a function of said first TED value to said data buffer; said data buffer initializes a first stream buffer in response to said first buffer configuration signal; said data comprising one or more data streams each having a first data packet and a plurality of subsequent data packets, each said data packet having a packet ID indicative of a respective position within said data stream; said data buffer receives said data packets and outputs said data packets according to said first TED value and said packet ID, said data buffer discarding selected ones of said data packets arriving too late to be output within said TED; said data stream synchronization system further comprising; a network delay distribution circuit having an input for accepting an input packet loss rate value and said network delay distribution circuit provides a calculated delay value as a function of said input packet loss rate, and an output connected to said configuration control circuit for supplying network delay probability data to said configuration control circuit; said configuration control circuit calculates said first TED value as a function of said APLR and said network probability data.
-
-
17. A data stream synchronization system comprising:
-
a configuration control circuit having an input connected to receive initialization parameters, said initialization parameters including an acceptable packet loss rate (APLR); a data buffer having a data input connected to receive data from a network and a data output connected to provide data to one or more receivers; said configuration control circuit, having an output connected to said data buffer for sending buffer configuration signals to said data buffer; said configuration control circuit calculates a first total end-to-end delay (TED) value as a function of said APLR and sends a first buffer configuration signal generated as a function of said first TED value to said data buffer; said data buffer initializes a first stream buffer in response to said first buffer configuration signal; said data comprising one or more data streams each having a first data packet and a plurality of subsequent data packets, each said data packet having a packet ID indicative of a respective position within said data stream; said data buffer receives said data packets and outputs said data packets according to said first TED value and said packet ID, said data buffer discarding selected ones of said data packets arriving too late to be output within said TED; said data stream synchronization system further comprising a network delay distribution circuit having an output connected to said configuration control circuit for supplying network delay probability data to said configuration control circuit; said configuration control circuit calculates said first TED value as a function of said APLR and said network probability data; a buffer delay trend detector having an input connected to said buffer for monitoring said buffer delays of said data packets in said data buffer; said buffer delay trend detector having an output connected to said network delay distribution circuit for providing historical network delay data to selectively revise said network delay probability data.
-
-
18. A data stream synchronization system comprising:
-
a configuration control circuit having an input connected to receive initialization parameters, said initialization parameters including an acceptable packet loss rate (APLR); a data buffer having a data input connected to receive data from a network and a data output connected to provide data to one or more receivers; said configuration control circuit, having an output connected to said data buffer for sending buffer configuration signals to said data buffer; said configuration control circuit calculates a first total end-to-end delay (TED) value as a function of said APLR and sends a first buffer configuration signal generated as a function of said first TED value to said data buffer; said data buffer initializes a first stream buffer in response to said first buffer configuration signal; said data comprising one or more data streams each having a first data packet and a plurality of subsequent data packets, each said data packet having a packet ID indicative of a respective position within said data stream; said data buffer receives said data packets and outputs said data packets according to said first TED value and said packet ID, said data buffer discarding selected ones of said data packets arriving too late to be output within said TED; said data stream synchronization system further comprising a drift detector having an input connected to said buffer circuit for monitoring trends in the utilization of said data buffer; said drift detector detects a rate drift between a sender packet rate and a receiver packet rate, said sender packet rate being representative of the rate at which said data packets are generated by a sender and said receiver packet rate being representative of the rate at which said data packets are accepted by said receiver; said drift detector monitors trends in the number of said data packets stored in said data buffer; and said data buffer discards or replays selected ones of said data packets at a predetermined discard or replay rate, said discard and replay rates being a function of said rate drift.
-
-
19. A data stream synchronization system for synchronizing delivery of data received from one or more senders over one or more networks in one or more data streams comprising:
-
a configuration control circuit having an input connected to receive initialization parameters for said one or more data streams; said initialization parameters comprising an acceptable packet loss rate (ALPR) which comprises a respective APLR for each of said one or more data streams, and a maximum acceptable delay (MAD) which comprises a respective MAD for each of said one or more data streams; a data buffer having an input connected to receive said data from said one or more networks, and an output connected to provide data to one or more data receivers; said configuration control circuit having an output connected to said data buffer for sending buffer configuration signals to said data buffer; said configuration control circuit calculates a first total end-to-end delay (TED) value which comprises a respective first buffer configuration signal which comprises a respective first TED value for each of said one or more data streams, for each of said one or more data streams, as a predetermined function of said APLR and said MAD and sends a first buffer configuration signal for each of said one or more data streams, generated as a predetermined function of said first TED value to said data buffer, and said configuration control circuit sends a respective second buffer configuration signal representative of a number of packet slots for said stream buffer to said data buffer, said data buffer configuring said respective stream buffer to comprise said number of packet slots for storing said data packets with said number of packet slots being a predetermined function of said initialization parameters and said respective first TED value; said data buffer initializing a stream buffer for each of said one or more data streams in response to said first buffer configuration signal; said one or more data streams each comprising a series of data packets including a first data packet and a plurality of subsequent data packets; for each of said first data packets, said data buffer selectively determines an initial network delay suffered by the respective one or ones of said first data packets and calculates a buffer delay representing the excess of said TED value over said network delay; said data buffer outputs said first data packet after said first data packet has been held in said stream buffer for said buffer delay; said data buffer selectively discards said data packets received with a respective network delay greater than said TED value. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A method of synchronizing network data streams comprising the steps of:
-
accepting stream initialization parameters including an acceptable packet loss rate (APLR) which comprises an acceptable rate for purposefully discarding packets and a maximum acceptable delay (MAD); calculating an operating total end-to-end delay (TED) as a function of said APLR and MAD; initializing a buffer for accepting stream data comprising a first packet and a plurality of subsequent data packets; determining a network delay for said first packet; determining a buffer delay for said first packet as a function of said TED less said network delay; storing said first packet in a buffer position associated with said buffer delay; outputting said first packet after said buffer delay; and determining which data packets are received with a delay greater than said TED value and selectively discarding those data packets.
-
-
37. A method of synchronizing network data streams comprising the steps of:
-
accepting stream initialization parameters including an acceptable packet loss rate (APLR) and a maximum acceptable delay (MAD); calculating an operating total end-to-end delay (TED) as a function of said APLR and MAD; initializing a buffer for accepting stream data comprising a first packet and a plurality of subsequent data packets; determining a network delay for said first packet; determining a buffer delay for said first packet as a function of said TED less said network delay; storing said first packet in a buffer position associated with said buffer delay; outputting said first packet after said buffer delay; determining buffer locations for said subsequent data packets, said subsequent packets each having a respective packet ID indicating a position within said stream; said buffer locations being offset from one or more of said packets being stored in said buffer by a number of buffer locations commensurate with a difference in said packet IDs; and outputting said subsequent packets in accordance with said buffer locations.
-
Specification