The present invention is related to reducing transmission delays caused by packet data mixers. In particular, the present invention is related to adjusting the times at which communication endpoints provide data packets for mixing with other data packets into a combined data stream.
Packet data communication networks provide a convenient and economical means for delivering data between data endpoints. In certain instances, it is desirable to combine or mix data streams from different communication endpoints into a single data stream. For example, in connection with voice over internet protocol (VoIP) telephony applications, VoIP mixers can be used to enable conference calls between a number of endpoints. Packet data mixers are also useful in connection with improving the efficiency and capacity of communication networks by multiplexing individual packet data flows into aggregate flows. In particular, individual data streams can be bundled into a single aggregate flow for delivery between two subnetworks or mixers, reducing the total number of packets that must be handled by the communication network interconnecting the two mixers in delivering the data.
Although it is desirable to combine or mix data packets in such applications, the implementation of a data packet mixer generally introduces delays in the transmission of the data. In particular, where a number of communication endpoints provide data packets, a mixer must wait until each such data packet has arrived before an aggregated data packet can be formed and sent to a receiving communication endpoint. In a worst case scenario, an additional delay in the amount of half the packetization delay (i.e., the time period over which the mixer collects the data for aggregation into a single packet) is introduced. However, the introduction of such delays is undesirable, particularly in connection with voice telephony applications.
The present invention is directed to solving these and other problems and disadvantages of the prior art. According to the present invention, a packet data mixer provides communication endpoints with packetization time adjustment instructions, in order to synchronize the time at which the mixer receives individual data packets from different communication endpoints. The packetization time adjustment instructions may be provided as part of a reverse flow of data. In accordance with an embodiment of the present invention, the packetization time adjustment instructions are provided as part of a data packet header.
The packetization time adjustment instructions sent to a communication endpoint instruct the receiving endpoint to adjust the time at which the endpoint creates data packets. The instructed time adjustment is such that the data packets from the communication endpoints will arrive at the mixer at about the same time within each packetization period of the mixer. The time within a packetization period about which the packet arrival times are synchronized may be selected such that the amount of adjustment required by the various communication endpoints is minimized. In accordance with an embodiment of the present invention, the synchronized packetization time is equal to the average time of arrival of data packets received during a packetization period of the mixer.
With reference now to
The packet data mixer 104 may include any device that operates to combine or mix two or more data packets into a combined or super packet. Accordingly, examples of a packet data mixer 104 include a data multiplexer, including a real time transfer protocol (RTP) multiplexer, and a voice over internet protocol (VoIP) conferencer.
The communication endpoints 108 may include any device capable of sending and receiving packet data. Examples of communication endpoints 108 include general purpose computers, VoIP telephones, soft VoIP telephones running on general purpose computers, videotelephones, and analog to digital converters in combination with a telephone.
The communication channels or streams 112 are generally established and transmitted across a communication network 116. The communication network 116 may include one or more packet data networks, and may include the Internet or a private intranet.
As can be appreciated by one of skill in the art, many data communications conducted across a packet data network involve two-way communications. A particular example of such two-way communications are real time transfer protocol (RTP) communications, such as may be used in connection with the transmission of audio and video communications between two or more communication endpoints 108. Accordingly, a particular example of such communications includes VoIP telephony.
In connection with the transmission of voice and data between communication endpoints 108, such as may be performed using VoIP telephony techniques, it is desirable to permit calls between three or more endpoints to be conferenced together. This can be accomplished by mixing the data streams together. For example, with continued reference to
Another example is where the packet data mixer 104 functions as a data multiplexer, such as a real time transport protocol multiplexer. As an RTP multiplexer, the packet data mixer 104 bundles together individual data packets received at the packet data mixer 104 that are addressed to a communication endpoint or endpoints 108 on the same subnetwork. In particular, the packet data mixer 104 receives data packets from the sending communication endpoints 108, bundles those packets together into a super or aggregated packet, and sends the packet to a receiving communication endpoint 108. Alternatively, the super packet is sent to a complimentary packet data mixer 104 capable of deaggregating the super packet and providing the unbundled individual data packets to a recipient communication endpoint or endpoints 108.
With reference now to
As will be explained in greater detail below, according to embodiments of the present invention, packetization time adjustment information may be provided to an individual communication endpoint in order to alter the time at which the communication endpoint 108 forms a packet of data relative to the packetization period, thereby changing the point within a packetization period of the packet data mixer 104 at which data from the communication endpoint 108 is received by a packet data mixer 104 in the system 100. Packetization time adjustment information may be individually provided to each communication endpoint 108 in communication with a packet data mixer 104, and may be combined with or inserted in data sent to the endpoints 108 from the packet data mixer 104. For example, a packet data mixer 104 comprising a VoIP conferencer may insert packetization time adjustment information in a super packet 216. In particular, a super packet 216 addressed to a first communication endpoint 108a and containing data from a second communication endpoint 108b provided as part of the second communication endpoint's first data packet 204b and containing data from an nth communication endpoint 108n provided as part of the nth communication endpoint's first data packet 204c may also communicate packetization time adjustment information to the first communication endpoint 108a. Similarly, super data packets 216 sent as part of a flow of data from the mixer to the second 108b and nth 108n communication endpoints may also include packetization time adjustment information for the respective communication endpoint 108b or 108n.
With respect to a packet data mixer 104 comprising an RTP multiplexer, super packets 216 containing data from data packets 204 are typically sent to a complimentary mixer. In addition, reverse flows of super packets are generally received from the complimentary mixer. The packet data mixer 104 proximate to a communication endpoint 108 may therefore provide packetization time adjustment information to an endpoint as part of or with individual data packets unbundled from a received super packet.
With reference now to
At step 312, a determination is made as to whether an adjustment in the packetization time with respect endpoint 1108a is desired. For example, if the time of arrival of a data packet 204 from the first communication endpoint 108a is within a selected range of time about the selected synchronization time of the packet data mixer 104, then it may be determined that no adjustment in the packetization time of the first communication endpoint 108a is necessary. Alternatively, if the arrival time of a data packet 204 from the first communication endpoint 108a with respect to a packetization period 208 of the packet data mixer 104 is equal to the selected synchronization time, it may be determined that no adjustment in the packetization time of the first communication endpoint 108a is required. In such case, the system continues to step 316.
If it is determined that an adjustment to the synchronization time of the first communication endpoint 108a is desirable, packetization time adjustment information may be inserted in a data packet sent to the first communication endpoint 108a (step 320). In accordance with an embodiment of the present invention, the packetization time adjustment information comprises a signed number indicating the amount of time by which the packetization time of the communication endpoint 108a should be adjusted. For example, the packetization time adjustment information may be provided as a signed number indicating the number of milliseconds forwards or backwards that the packetization point used by the communication endpoint 108 should be adjusted. As another example, the time adjustment information could be provided as a signed number of samples that the packetization point of the communication endpoint 108 should be moved forwards or backwards. As can be appreciated, the units of the packetization time adjustment information are not important, provided that enough granularity is provided to make the necessary fine adjustments to the packetization point of the communication endpoint 108.
According to an embodiment of the present invention, the packetization times of communication endpoints 108 are brought towards a convergence point using predefined adjustment units. For example, if a packet from a communication endpoint 108 arrives late, that communication endpoint 108 may be instructed to shift its packetization time one unit forward. If a packet from a communication endpoint 108 arrives early, that communication endpoint 108 may be instructed to shift its packetization time one unit back. If a packet from a communication endpoint 108 arrives within a tolerance or threshold period about the synchronization time, then no time-adjustment instruction is sent. Using such an instruction stream, time adjustment instructions can be provided using only 2 bits of data.
According to another embodiment of the present invention, the speed with which packet arrival times converge towards the synchronization time can be increased by providing adjustment instructions that include information regarding the size of the adjustment that a communication endpoint 108 is to make. For example, a communication endpoint 108 may be instructed to shift its packetization time by an amount equal to one-half the difference between the packet arrival time and the synchronization time.
According to still another embodiment, the size of the time adjustment that a communication endpoint 108 is instructed to make is less than the amount of time required for the packet arrival time to exactly match the synchronization time. This is desirable because the effects of network jitter will often prevent convergence to the synchronization time in a single adjustment, but still allows the packetization time to converge quickly.
The packetization time adjustment information is, according to an embodiment of the present invention, provided as part of the packet header information sent from the packet data mixer 104 to the communication endpoint 108. In particular, the packetization time adjustment information can be added to super data packets 216 containing communication data from other communication endpoints 108 as part of a conferencing or multiplexing scenario. Accordingly, the header extension provisions defined for RTP flows can be utilized to enable communication endpoints 108 to receive the adjustment information. Furthermore, a communication endpoint 108 that is a legacy device, and does not have the capability to adjust its packetization point in response to information provided by a packet data mixer 104 in accordance with the present invention can simply ignore the extra information. In accordance with another embodiment of the present invention, the packetization time adjustment information can be provided in an alternative payload format or RTP profile definition. In accordance with yet another embodiment of the present invention, packetization time adjustment information could be sent out of band from the media stream to a communication endpoint 108 using a different protocol.
Upon receipt of packetization time adjustment information, a recipient communication endpoint 108 can make the required adjustment by adjusting the amount of information contained in the payload of the next or of a subsequent data packet sent to the packet data mixer 104, to enable a shift in the packetization time for the endpoint 108. Accordingly, the present invention is particularly suitable for use in connection with data transport protocols that allow for variable length data packets. In accordance with another embodiment of the present invention, the packetization time used by a communication endpoint 108 can be moved during a time that no data is being packetized by the endpoint 108. For example, in connection with a VoIP conference call, the packetization time of an endpoint 108 can be altered during a period of silence. In accordance with another embodiment of the present invention the packetization time used by a communication endpoint 108 can be moved during periods of silence where the period of silence can be decreased or increased by inserting or removing data.
With continued reference to
With reference now to
The foregoing discussion of the invention has been presented for purposes of illustration and description. Further, the description is not intended to limit the invention to the form disclosed herein. Consequently, variations and modifications commensurate with the above teachings, within the skill and knowledge of the relevant art, are within the scope of the present invention. The embodiments described hereinabove are further intended to explain the best mode presently known of practicing the invention and to enable others skilled in the art to utilize the invention in such or in other embodiments and with various modifications required by their particular application or use of the invention. It is intended that the appended claims be construed to include the alternative embodiments to the extent permitted by the prior art.
Number | Name | Date | Kind |
---|---|---|---|
5184347 | Farwell et al. | Feb 1993 | A |
5195091 | Farwell et al. | Mar 1993 | A |
6850496 | Knappe et al. | Feb 2005 | B1 |
7277962 | Zhang et al. | Oct 2007 | B2 |
20020051465 | Fang et al. | May 2002 | A1 |
20020075865 | Lazarus | Jun 2002 | A1 |
Number | Date | Country | |
---|---|---|---|
20040165541 A1 | Aug 2004 | US |