Methods and systems for jitter minimization in streaming media
First Claim
1. A method for transmitting data, the method comprising:
- monitoring a packet-based traffic flow to obtain traffic flow information;
calculating, based on the traffic flow information and a clock signal obtained from a clock, a transmission interval for transmitting a packet-based communication into the packet-based traffic flow; and
transmitting the packet-based communication into the packet-based traffic flow during the transmission interval, based on the clock signal.
10 Assignments
0 Petitions
Accused Products
Abstract
A method and system for avoiding variance in transmission times of real-time, packet-based communications is disclosed. Transmissions such as voice and videoconferencing generally require a substantially constant delivery rate in order to be satisfactory to end users. When occurring via a packet-based network, such transmissions often experience unacceptable levels of variation in delay in their transmission times, and this variation in delay is known as jitter. One cause of jitter relates to collisions between packets generated by a first source and sent via a packet transport medium and other packets, generated by one or more other sources and transmitted by the same transport medium. The method and system disclosed allow data sources to independently establish their respective transmission timings so as to avoid these collisions, without a need for a master clock shared between all of the data sources. By operating in such a peer-to-peer manner, the data sources establish a reduction in jitter in a manner that is reliable, efficient, inexpensive, scaleable, and easy to implement.
81 Citations
34 Claims
-
1. A method for transmitting data, the method comprising:
-
monitoring a packet-based traffic flow to obtain traffic flow information;
calculating, based on the traffic flow information and a clock signal obtained from a clock, a transmission interval for transmitting a packet-based communication into the packet-based traffic flow; and
transmitting the packet-based communication into the packet-based traffic flow during the transmission interval, based on the clock signal. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for transmitting data, the system comprising:
-
a packet detector operable to monitor a packet-based traffic flow and thereby obtain traffic flow information;
a clock operable to output a clock signal;
a correlation determination circuit operable to calculate a transmission interval, based on the traffic flow information and the clock signal; and
a packet generator operable to generate a packet-based communication in approximate synchronization with the transmission interval. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer having a processor for executing instructions stored on an associated storage media, the instruction including:
-
a first code segment for monitoring a packet-based traffic flow;
a second code segment for calculating a transmission interval for transmitting a packet-based communication, the transmission interval providing a first reduction in a chance of collision between the packet-based communication and the packet-based traffic flow; and
a third code segment for transmitting the packet-based communications. - View Dependent Claims (26, 27)
-
-
28. A system for transmitting data, the system comprising a plurality of data sources, the plurality of data sources each transmitting data via a common transport medium, each of the plurality of data sources comprising:
-
a packet generator operable to generate packets for transmission via the common transport medium;
a transmission coordination circuit operable to communicate with remaining ones of the plurality of data sources to establish a virtual clock, the virtual clock thereafter being maintained by each of the plurality of data sources and being operable to govern a timing of packet transmission by the packet generator; and
a phase adjuster operable to adjust a phase of the packets in accordance with instructions from the transmission coordination circuit. - View Dependent Claims (29, 30, 31, 32, 33, 34)
-
Specification