WO1995014337A1 - Method for adaptive smoothing delay for packet voice applications - Google Patents

Method for adaptive smoothing delay for packet voice applications Download PDF

Info

Publication number
WO1995014337A1
WO1995014337A1 PCT/US1994/008931 US9408931W WO9514337A1 WO 1995014337 A1 WO1995014337 A1 WO 1995014337A1 US 9408931 W US9408931 W US 9408931W WO 9514337 A1 WO9514337 A1 WO 9514337A1
Authority
WO
WIPO (PCT)
Prior art keywords
voice
packet
packets
time
buffer
Prior art date
Application number
PCT/US1994/008931
Other languages
French (fr)
Inventor
Richard B. Kline
Dennis Ng
Original Assignee
Codex Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Codex Corporation filed Critical Codex Corporation
Priority to DE69431619T priority Critical patent/DE69431619T2/en
Priority to EP94926481A priority patent/EP0683945B1/en
Priority to AU76303/94A priority patent/AU686225B2/en
Priority to CA002152609A priority patent/CA2152609C/en
Publication of WO1995014337A1 publication Critical patent/WO1995014337A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5614User Network Interface
    • H04L2012/5616Terminal equipment, e.g. codecs, synch.
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5649Cell delay or jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
    • H04L2012/5653Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly using the ATM adaptation layer [AAL]
    • H04L2012/5658Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly using the ATM adaptation layer [AAL] using the AAL5
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5671Support of voice
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/568Load balancing, smoothing or shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6481Speech, voice
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6489Buffer Management, Threshold setting, Scheduling, Shaping

Definitions

  • This invention relates to communication networks generally, and specifically to communication networks transporting packetized voice communication.
  • Cell relay and fast packet switching are both switching methods for integrated communication networks.
  • Such networks can carry diverse traffic types such as data, voice, CBR (constant bit rate), image and video traffic.
  • CBR constant bit rate
  • ATM Asynchronous Transfer Mode
  • FP and CR networking technologies are very similar in nature and solve many networking problems. Both allow the construction of efficient and cost effective networks that carry diverse traffic types such as voice, video, CBR, and bursty data traffic. Both FP and CR networks convert (adapt) various types of traffic to a common format before transporting the traffic across the network. In both cases, the common form is a "small packet", where small is typically 64 or less octets. Each packet contains a network header containing destination or logical address, congestion level information, priority information, etc., and a payload portion containing the user's data.
  • the efficiency and diversity of CR and FP networks is obtained by the adaption of the traffic source, at the edge of the network, to a common form or packet. This allows network switches to handle the traffic in a common way inside each type of network independent of the source type.
  • AAL1 ATM adaption layer 1 protocol, specified in CCITT draft recommendation I.363, is used for adaption of CBR traffic to ATM cells (packets), and CCITT AAL5 (ATM adaption layer 5) protocol, also specified in CCITT draft recommendation I.363, is used for adaption of HDLC (high level data link control) framed traffic to ATM cells.
  • Packet networks refers to either fast packet switching systems, or cell relay switching systems.
  • Packet voice refers to voice which has been adapted to a form appropriate for a packet system.
  • Voice may be transported through a packet network as follows.
  • the analog voice is first digitized and converted to 64 Kb/sec (kilobits per second) PCM (pulse code modulation).
  • PCM pulse code modulation
  • the resulting bit stream is optionally compressed using a voice compression algorithm, such as a 32 Kb/sec ADPCM coder (Adaptive Differential Pulse Code Modulation), or a 16 or 8 Kb/sec CELP coder (Code Excited Linear Predictor).
  • the resulting bit stream is segmented into packets at the edge of the network by collecting bits for a time duration (denoted generally by "del_T").
  • a network packet header is attached to each voice packet.
  • packets ⁇ are multiplexed with packets from other sources (both voice and non-voice) and are queued before transmission on internodal links in the network.
  • the voice is reconstructed by stripping the header and playing out the bits in the packet (may require optional decompression) at the nominal rate of the voice connection (typically 64 Kb/sec PCM).
  • the packets from a voice packet transmitter are generated at uniform intervals, spaced del_T time units apart, they do not arrive at the destination uniformly spaced due to different queuing delays that each individual packet encounters as it traverses the packet network. Since packets at the voice destination must be played out at uniform intervals, also spaced del_T time units apart, the variation in network queuing delay is compensated for by using a smoothing buffer at the voice packet receiver.
  • the initial (first) packet of a call arrives at the voice packet receiver, it is enqueued in the smoothing buffer and is not played out immediately. Instead, it is held in the smoothing buffer for a predetermined amount of time (referred to as the initial smoothing delay) before being dequeued and playout.
  • subsequent packets are played out at uniform time intervals (uniform spacing) of del_T time units. If the smoothing delay is chosen large enough, then the probability of a smoothing buffer underflow (i.e., a subsequent packet arrives too late to be played out) for subsequent packets is negligible.
  • the smoothing delay should be kept at an absolute minimum for two reasons. First, the smoothing buffer at the destination receiver is finite. Therefore, buffer overflow should be avoided. Second, for voice applications, the total "end-to-end" delay is perceivable by network users If the total delay of the voice path exceeds 200 milliseconds, the telephone conversation may be perceived (by the two parties having a conversation) as being a "long distance connection". Thus, the total end-to-end delay should be less than 200 milliseconds.
  • the mechanism must be robust and capable of adjusting the smoothing delay to minimize the total end-to- end delay while preventing smoothing buffer underflows, and also compensate for any other network delay irregularities.
  • a smoothing delay mechanism which provides a simple method to control smoothing buffer underflows at the destination edge of a voice connection in a fast packet network, provides a simple mechanism to minimize the smoothing delay value, adapts to changing network delay characteristics, adjusts for clock drift between sending and receiving nodes and is robust to other network impairments, such as dropped packets, bit errors, packets falsely inserted into the voice channel from other sources, is desirable.
  • FIG. 1 is a general packet network.
  • FIG. 2 is a node in packet network.
  • FIG. 3 is a voice packet.
  • FIG. 4 is voice playout process
  • FIG. 5 is a flowchart of the adaptive smoothing delay process.
  • FIG. 6 is the Voice Packet Playout Process
  • a smoothing delay mechanisrp with such desirable characteristics includes several components.
  • the required smoothing delay is calculated by the connection control, routing subsystem.
  • the required worst case smoothing delay varies call by call depending upon the specific path assigned to the call, but is known for a specific call once the path map of the call is known.
  • the worst case smoothing delay required is the sum of the individual worst case delays for all the queues that the call traverses.
  • Other specific statistical worst cases can be calculated for calls that traverse many inter-nodal queues.
  • the enqueuing process at the packet receiver attaches a "received" time stamp at the instant that the packet is received at the receiver. It is not necessary to synchronize said time stamp with the packet transmitter (i.e., across the network). It will be demonstrated that the time stamp has local significance only, and there is no need for an "absolute" clock.
  • the packet voice receiver upon dequeuing the packet from the smoothing buffer, calculates the waiting time of the packet, which is defined as the total amount of time that the packet spent in the smoothing buffer.
  • the waiting time of each packet is calculated by subtracting the received time stamp, attached to the packet in the previous step, from the packet receiver's local timer at the time instant that the packet is played out.
  • the voice packet receiver also creates a histogram of receive packet waiting times.
  • the histogram is periodically analyzed to compare the actual queuing delays encountered by the voice packets with the expected queuing delays, and then the smoothing delay is adaptively adjusted to obtain the minimum possible delay for the call.
  • Network 100 is a generalized representation of a voice call in a packet network. Packet networks in use may be more complicated than that shown in FIG. 1.
  • Network 100 consists of source edge node 104, intermediate packet switching nodes 106 and destination edge node 108.
  • voice and data networks consist of many source nodes, intermediate nodes and destination nodes. The nodes are geographically distributed, but operably connected through intemodal communication links.
  • Voice source 102 is operably connected to edge node 104.
  • Edge node 104 converts the voice signal from the voice source to voice packets and sends voice packets through network 100 to the destination edge node 108.
  • Destination edge node 108 converts voice packets back to a voice signal or original (or equivalent) form and sends resulting voice signal to voice destination device 110 which is operably connected to edge node 108.
  • FIG. 1 illustrates the path from voice source device 102 to voice destination device 110. Typically, there would be a reverse path allowing voice communication from device 110 to 102. The reverse path is not shown in FIG. 1 , but is an obvious extension of the above.
  • Voice packets traversing network 100 from source edge node 104 to destination edge node 108 follow a specific path through network.
  • the path may include multiple intermediate nodes 106.
  • the path is fixed at call establishment time (the beginning of the voice call) by a routing entity 118 in network 100.
  • Routing entity 118 may be either distributed or centralized, but in either case, it is capable of finding an acceptable path, if one exists, from source edge node 104, through the network 100 to destination edge node 108.
  • routing entity 108 After finding the path, routing entity 108 has knowledge of the transmission characteristics of the ⁇ call, such as expected delay (i.e., how long it will take for packets to traverse from source node 104 to destination node 108) and worst case queuing jitter (i.e., how much the delay varies for different packets.).
  • expected delay i.e., how long it will take for packets to traverse from source node 104 to destination node 108
  • worst case queuing jitter i.e., how much the delay varies for different packets.
  • FIG. 2 contains a general depiction of a node 200.
  • the node could be source edge node 104, intermediate node 106, or destination edge node 108.
  • a node receives packets on one or more receive internodal links 202 from other nodes in network 100.
  • the packet switch 204 in node 200 examines address information in each received packet, and temporarily stores the packet in an appropriate queue in local buffer 208.
  • Local buffer 208 is operably connected to both packet processor 212 and packet switch 204. Packets may be directed to/from local buffer by either packet processor 212, or by packet switch 204. Packet processor 212 may direct packets to buffer 208 for subsequent transmission on one or more internodal links 206 by packet switch 204, or for other purposes.
  • packet switch 204 may direct packets to buffer 208 for subsequent packet processing by packet processor 212, or for subsequent transmission on one of a possible plurality of internodal links 206, or for other purposes.
  • Local buffer 208 may be a single centralized memory, or else, a distributed memory within the node, but consists of one or more memories which are partitioned appropriately to store packets 210 until needed.
  • Packet processor 212 may consists of a single centralized processor, or a plurality of distributed packet processors.
  • LANs local area networks
  • modems modems
  • PBXs Primaryvate Branch Exchange
  • packet processor 212 is a voice packet processor. Furthermore, the processing performed by voice packet processor 212 which occurs in the direction from the access interface 214 towards the network is packet voice transmit operations (PVT). The processing which occurs in the direction from the network to the access interface 214 is the packet voice receiver (PVR).
  • PVT packet voice transmit operations
  • PVR packet voice receiver
  • FIG. 3 shows packet 300.
  • Packet 300 is a series of bytes.
  • Packet 300 has header 302 and payload 304.
  • Header 302 shown with three bytes, contains information used by nodes 104, 106, 108 to relay packet 300 to its destination.
  • Payload 304 here shown with 44 bytes, contains data and information related to the voice source.
  • Part of payload 304 is sequence number 306.
  • Sequence number 306 is assigned by voice packet processor 212. Each successive voice packet is assigned a successive sequence number 306.
  • Packetization of voice by voice packet processor 212 consists of accumulating voice samples from voice source
  • voice packet processor 212 operably connected to voice packet processor 212 through access interface 214.
  • the voice samples may be compressed by the voice packet processor 212 and placed in payload 304 along with sequence number 306.
  • Header 302 containing a connection identifier for fast packet 300, is attached by the voice packet processor 212 to payload 304 for use in relaying fast packet 300 to its destination 108 within network 100.
  • Packets are transmitted, by voice packet processor 212 at the source edge node 104 at uniformly spaced intervals of del_T time units.
  • Each successive sequence number 306 in voice packet 300 represents a change in time of del_T units. Since the packet voice processor 212 at the destination edge node 108 also dequeues packets at uniformly spaced time intervals of del_T time units, sequence number 306 may be used to determine the relative time that each packet is to be played out (dequeued). Therefore, sequence number 306 serves as a time stamp, indicating the relative playout time of received packets at the PVR, and a sequence number, for detecting packets lost by packet network 100.
  • the voice packet processor includes a voice activity detection mechanism.
  • the PVT detects the presence or absence of voice (so called talkspurts), and only sends packets when it detects the presence of active speech signals in the audio channel.
  • talkspurts voice
  • the PVT will send packets uniformly space by del_T units of time during a talk spurt, but will not send packets during silence intervals.
  • the PVT keeps incrementing the sequence number at the same del_T time increments even during silence intervals when no packets are sent.
  • the transmitted packets will contain sequence numbers that correspond to the expected relative playout times at the PVR.
  • the PVR can continue to use the sequence number in the voice packets as a time stamp and a sequence number.
  • source edge node 104 is shown coupled to voice source 102.
  • Voice source 102 may be a telephone, PBX, or any other device that generates voice signals.
  • Source edge node 104 contains packet processor 212 which converts voice signal to packet form, and then enqueues packet in buffer 208 for subsequent transmission on a specific internodal link (in case there are a plurality of internodal links 206).
  • the enqueued voice packets must contend with packets from other voice and data sources 112 for transmission in network 100.
  • the voice packets are transmitted via packet switch 204 to intermediate node 106. While one intermediate node 106 is shown, a plurality (but possibly, zero) of intermediate nodes may be in the path from source edge node 104 to destination edge node 108 for a specific voice call. As the packet of a voice call travels along the specific path associated with the call, in encounters a plurality of such queues. Each encountered queue increases the expected queuing jitter which will be observed by the PVR (212) at the destination edge node 108.
  • the voice packets are again enqueued for transmission with other voice and data packets from other sources and other internodal links.
  • the voice packets associated with the said voice call are transmitted along the path towards the destination edge node 108.
  • the voice packets are directed to the local buffer 208 and the (voice) packet processor 212 removes the voice packets and converts the voice packets to a form compatible with the voice destination device 110.
  • the process of removing the voice packets from the local buffer 208, converting the voice packet from packet form to a voice signal compatible with the voice destination device 110 is referred to as the vojce playout process.
  • the exact time instance when this process occurs for a specific voice packet is referred to as the playout time of the said packet.
  • a portion of buffer 208 is set aside as a voice packet receive buffer for the voice packet processor 212. Playout is accomplished by placing the packets in the voice packet buffer (enqueuing) and, at a later time, retrieving the packets from the voice packet buffer (dequeuing) before converting packet to original voice signal and playing out the voice signal to the voice destination device 110.
  • the voice packet buffer is referred to as the smoothing buffer.
  • the smoothing buffer 402 along with the enqueue 404, dequeue 406, and packet conversion 408 processes are illustrated in FIG. 4.
  • Packets are inserted in smoothing buffer 402 by an enqueue process 404 and removed from the buffer by a dequeue process 406.
  • the process described herein simultaneously minimizes the waiting time that packets spend in the smoothing buffer before being dequeued and converted to original form, minimizing the probability of FIFO (First in, First Out) underflow, and also preserves the exact spacing between talkspurts. This is accomplished by the following method:
  • sequence number 306 is included in each voice packet 300.
  • Sequence number 306 allows the voice packet processor 212 in the destination node 108, hereafter referred to as the PVR (packet voice receiver), to detect when a packet has been dropped by the network. Packets are marked with a sequence number that is incremented for each successive fast packet, and which wraps around to zero after reaching some maximum. For example, if PVR receives sequence numbers 1- 2-3-5-6, it can discern that packet number 4 is missing. The PVT will send a continuous stream of uniformly spaced packets. If at the PVR, a sequence number 306 is found to be missing, the packet receiver knows that the packet was dropped by the network, and will therefore interpolate the speech to fill in the audio channel for the missing packet.
  • the number of bits required to represent the sequence number 306 in each voice packet is determined by the time interval between packet transmissions, del_T, and the worst case smoothing delay that one needs to compensate for the queuing jitter that voice packets experience as they traverse the packet network from source edge node 104 to destination edge node 108.
  • the time span of the sequence number 306 i.e., how often the modulo counter reset to zero
  • the time span of the sequence number 306 must be greater than the queuing timing jitter.
  • del_T is chosen to be 5 milliseconds, or equivalents 40 voice samples (bytes) per voice packet
  • PCM pulse code modulation
  • Fig. 5 shows a flowchart of the adaptive smoothing delay process 500.
  • the sequence number 306 of the voice packet is checked (step 505). If the sequence number is not valid, the packet is discarded (step 510), and the next packet (if there is one) is examined (step 502). If the sequence number is valid, the packet is playout and the waiting time of the packet is computed (step 515), where the waiting time is defined as the difference between the time instance that the packet was enqueued into the smoothing buffer and the time that the packet was dequeue from the smoothing buffer . A histogram of waiting times is then updated (step 520).
  • the histogram is post processed to find the longest waiting delay (step 530), the longest delay is smoothed (step 535), the histogram is cleared (step 540) in preparation for calculation of a new histogram over the next N packets.
  • the parameter N is chosen to equal a fixed time interval (typically seconds).
  • step 545 If there is either a silence gap in the speech or if a pre ⁇ determined time "T" (typically minutes) has elapsed (step 545), then the longest smoothed waiting time is compared with the maximum expected waiting time, CDV_Max (step 545).
  • the playout time of the next received packet (and the playout times of subsequent packets) is adaptively adjusted such that the expected value of subsequent measured longest waiting times is equal to CDV_max (step 555).
  • the i'th voice packet arrives at the destination after a time period equal to d(i). It is possible to break d(i) into two parts, d_fixed and d_var(i).
  • d_fixed the fixed transmission delay (the same for each packet)
  • d_var(i) the queuing delay experienced by the i'th packet.
  • variable portion of the delay, d_var(i) can be assumed to be bounded between 0 and some maximum known value which we will refer to as the maximum cell delay variation, CDV nax.
  • CDV_max may be either a known network wide parameter, or alternatively, it can be calculated by routing entity 118 on a call by call basis (i.e. known for the specific path chosen by the routing entity at call establishment time)
  • FIG. 6 illustrates voice packet playout process 600 and the received packets 602, illustrating the typical time jitter experienced by the individual packets.
  • the packets are not uniformly space in time (like they were at the output of the PVT 212).
  • the enqueuing process 404 attaches a received time stamp to the packet.
  • the packet receiver applies an initial smoothing delay 604 equal to CDV_max. After the initial smoothing delay expires, the packet receiver plays out the first voice packet (i.e., converts the voice packet to original form 606). The packet receiver is then executed one "packet" time (del_T) later. When executed, the PVR searches the smoothing buffer 402 for a packet with the next expected sequence number.. If found, then that packet is played out. If no such sequence number is found, then it either interpolates the speech in the audio channel (if the packet was dropped by the network) or else plays out silence 608 if the last packet was the end of a talkspurt.
  • an initial smoothing delay 604 equal to CDV_max. After the initial smoothing delay expires, the packet receiver plays out the first voice packet (i.e., converts the voice packet to original form 606). The packet receiver is then executed one "packet" time (del_T) later. When executed, the PVR searches the smoothing buffer 402 for a packet with the
  • t(i) denote the transmission time of the i'th packet.
  • del_T is the time between (possible) packet transmissions (a time slotted system). If follows that the packet reception time at the destination is given by
  • r(i) is the "enqueuing timing" of the i'th packet at the packet receiver.
  • p(i) denote the play out time of the i'th packet. Since a voice packet is played out every del_T time period, the playout time of the i'th packet can be expressed as:
  • CDV_max is the build out delay applied to the first packet before playing out the first packet (refer to FIG. 6)
  • the play out time of the i'th packet can be expressed as (substitute Eq 7 into 6)
  • p(i) is the "dequeuing time" of the i'th packet.
  • the waiting time defined as the time duration that the i'th packet spends in the smoothing delay buffer 402 can be expressed as the difference of the play out time (dequeue time) ( equation 9) and the packet arrival time (enqueue time) (equation 5):
  • w(i) d_var(0) + CDV_max - d_var(i) (Eq 1 1 ) Since both d_var(i) and d_var(0) are bounded by the closed interval (0, CDV_max) (Equation 2), the waiting time of all packets depends explicitly on d_var(0), which is the queuing jitter that the first packet experienced when it traversed the network.
  • variable portion of the delay of the first received packet is equal to the maximum value
  • the present invention solves the above problem by adding the following adaptive loop to the smoothing delay algorithm.
  • the algorithm is initialized by adding a build out delay, equal to CDV_max to the first packet received before playing the first packet out as described above and shown in FIG. 6. Subsequent packets are played out according to Eq 6 above (for the first few seconds - typically 2 seconds). However, for the subsequent packets, the following algorithm is used to adaptively adjust the smoothing delay (note: the following pseudo code is functionally equivalent to the flowchart contained in FIG. 5):
  • playout the packet at time p(i), compute the waiting delay w(i), where w(i) is defined to be the time difference between the enqueue and dequeue time instances for each packet.
  • Update a histogram of waiting times if N packets have been received, then ⁇ post process the histogram to find the longest valid waiting time, smooth the measured longest waiting time, and clear the histogram and begin compiling a new histogram over the next N voice packets.
  • the above algorithm adjusts the smoothing delay to the optimum value, where the waiting times are bounded by the closed interval (0, ... CDV_max).
  • the algorithm will also compensate for clock drift between the source and destination nodes, and provide robustness during network re-routes.
  • the method described above specifically refers to voice packets, the method could easily be used for any packetized data traffic, such as constant bit rate traffic or asynchronous data traffic.

Abstract

A communication system transmits packetized voice data from a voice source (102) to a voice destination (110). At the voice destination (110), the packets are accumulated in a buffer (208), sequentially played out and the time the packet waits in the buffer (208) is monitored. The time future voice packets are played out is accordingly adjusted.

Description

METHOD FOR ADAPTIVE SMOOTHING DELAY FOR PACKET VOICE APPLICATIONS
Field of the Invention
This invention relates to communication networks generally, and specifically to communication networks transporting packetized voice communication.
Background of the Invention
Cell relay and fast packet switching are both switching methods for integrated communication networks. Such networks can carry diverse traffic types such as data, voice, CBR (constant bit rate), image and video traffic. Using a fast packet or cell relay mechanism, such as ATM (Asynchronous Transfer Mode), to switch different traffic types in the network, achieves integration of both transmission and switching resources.
Fast packet (FP) and cell relay (CR) networking technologies are very similar in nature and solve many networking problems. Both allow the construction of efficient and cost effective networks that carry diverse traffic types such as voice, video, CBR, and bursty data traffic. Both FP and CR networks convert (adapt) various types of traffic to a common format before transporting the traffic across the network. In both cases, the common form is a "small packet", where small is typically 64 or less octets. Each packet contains a network header containing destination or logical address, congestion level information, priority information, etc., and a payload portion containing the user's data.
The efficiency and diversity of CR and FP networks is obtained by the adaption of the traffic source, at the edge of the network, to a common form or packet. This allows network switches to handle the traffic in a common way inside each type of network independent of the source type.
However, this requires, at the source edge of the network, the adaptation of diverse traffic types to the common form, or packets. At the destination edge of the network, the packets need to be adapted back to the diverse original forms. These edge adaption procedures are traffic source type dependent. For example, CCITT (International
Telegraph and Telephone Consultative Committee) AAL1 (ATM adaption layer 1) protocol, specified in CCITT draft recommendation I.363, is used for adaption of CBR traffic to ATM cells (packets), and CCITT AAL5 (ATM adaption layer 5) protocol, also specified in CCITT draft recommendation I.363, is used for adaption of HDLC (high level data link control) framed traffic to ATM cells.
"Packet networks" refers to either fast packet switching systems, or cell relay switching systems. "Packet voice" refers to voice which has been adapted to a form appropriate for a packet system.
Voice may be transported through a packet network as follows. The analog voice is first digitized and converted to 64 Kb/sec (kilobits per second) PCM (pulse code modulation). The resulting bit stream is optionally compressed using a voice compression algorithm, such as a 32 Kb/sec ADPCM coder (Adaptive Differential Pulse Code Modulation), or a 16 or 8 Kb/sec CELP coder (Code Excited Linear Predictor). The resulting bit stream is segmented into packets at the edge of the network by collecting bits for a time duration (denoted generally by "del_T"). A network packet header is attached to each voice packet. These packets^are multiplexed with packets from other sources (both voice and non-voice) and are queued before transmission on internodal links in the network. At the destination edge, the voice is reconstructed by stripping the header and playing out the bits in the packet (may require optional decompression) at the nominal rate of the voice connection (typically 64 Kb/sec PCM).
Although the packets from a voice packet transmitter are generated at uniform intervals, spaced del_T time units apart, they do not arrive at the destination uniformly spaced due to different queuing delays that each individual packet encounters as it traverses the packet network. Since packets at the voice destination must be played out at uniform intervals, also spaced del_T time units apart, the variation in network queuing delay is compensated for by using a smoothing buffer at the voice packet receiver. When the initial (first) packet of a call arrives at the voice packet receiver, it is enqueued in the smoothing buffer and is not played out immediately. Instead, it is held in the smoothing buffer for a predetermined amount of time (referred to as the initial smoothing delay) before being dequeued and playout. After the first packet is played out, subsequent packets are played out at uniform time intervals (uniform spacing) of del_T time units. If the smoothing delay is chosen large enough, then the probability of a smoothing buffer underflow (i.e., a subsequent packet arrives too late to be played out) for subsequent packets is negligible.
The smoothing delay should be kept at an absolute minimum for two reasons. First, the smoothing buffer at the destination receiver is finite. Therefore, buffer overflow should be avoided. Second, for voice applications, the total "end-to-end" delay is perceivable by network users If the total delay of the voice path exceeds 200 milliseconds, the telephone conversation may be perceived (by the two parties having a conversation) as being a "long distance connection". Thus, the total end-to-end delay should be less than 200 milliseconds.
Further, observed network delay and packet jitter characteristics may change rapidly over time ( as other connections are set up and taken down in the network). Therefore, the mechanism must be robust and capable of adjusting the smoothing delay to minimize the total end-to- end delay while preventing smoothing buffer underflows, and also compensate for any other network delay irregularities.
Thus, a smoothing delay mechanism which provides a simple method to control smoothing buffer underflows at the destination edge of a voice connection in a fast packet network, provides a simple mechanism to minimize the smoothing delay value, adapts to changing network delay characteristics, adjusts for clock drift between sending and receiving nodes and is robust to other network impairments, such as dropped packets, bit errors, packets falsely inserted into the voice channel from other sources, is desirable.
Brief Description of the Drawings
FIG. 1 is a general packet network. FIG. 2 is a node in packet network.
FIG. 3 is a voice packet.
FIG. 4 is voice playout process
FIG. 5 is a flowchart of the adaptive smoothing delay process. FIG. 6 is the Voice Packet Playout Process
Description of the Preferred Embodiment
A smoothing delay mechanisrp with such desirable characteristics includes several components. First, at call establishment time, the required smoothing delay is calculated by the connection control, routing subsystem. The required worst case smoothing delay varies call by call depending upon the specific path assigned to the call, but is known for a specific call once the path map of the call is known. For example, the worst case smoothing delay required is the sum of the individual worst case delays for all the queues that the call traverses. Other specific statistical worst cases can be calculated for calls that traverse many inter-nodal queues.
Second, the enqueuing process at the packet receiver attaches a "received" time stamp at the instant that the packet is received at the receiver. It is not necessary to synchronize said time stamp with the packet transmitter (i.e., across the network). It will be demonstrated that the time stamp has local significance only, and there is no need for an "absolute" clock.
Third, at play out, the packet voice receiver, upon dequeuing the packet from the smoothing buffer, calculates the waiting time of the packet, which is defined as the total amount of time that the packet spent in the smoothing buffer. The waiting time of each packet is calculated by subtracting the received time stamp, attached to the packet in the previous step, from the packet receiver's local timer at the time instant that the packet is played out. The voice packet receiver also creates a histogram of receive packet waiting times.
Finally, the histogram is periodically analyzed to compare the actual queuing delays encountered by the voice packets with the expected queuing delays, and then the smoothing delay is adaptively adjusted to obtain the minimum possible delay for the call.
Network 100, shown in FIG. 1 , is a generalized representation of a voice call in a packet network. Packet networks in use may be more complicated than that shown in FIG. 1. Network 100 consists of source edge node 104, intermediate packet switching nodes 106 and destination edge node 108. Generally, voice and data networks consist of many source nodes, intermediate nodes and destination nodes. The nodes are geographically distributed, but operably connected through intemodal communication links. Voice source 102 is operably connected to edge node 104. Edge node 104 converts the voice signal from the voice source to voice packets and sends voice packets through network 100 to the destination edge node 108. Destination edge node 108 converts voice packets back to a voice signal or original (or equivalent) form and sends resulting voice signal to voice destination device 110 which is operably connected to edge node 108. FIG. 1 illustrates the path from voice source device 102 to voice destination device 110. Typically, there would be a reverse path allowing voice communication from device 110 to 102. The reverse path is not shown in FIG. 1 , but is an obvious extension of the above.
Voice packets, traversing network 100 from source edge node 104 to destination edge node 108 follow a specific path through network. The path may include multiple intermediate nodes 106. The path is fixed at call establishment time (the beginning of the voice call) by a routing entity 118 in network 100. Routing entity 118 may be either distributed or centralized, but in either case, it is capable of finding an acceptable path, if one exists, from source edge node 104, through the network 100 to destination edge node 108. After finding the path, routing entity 108 has knowledge of the transmission characteristics of the^call, such as expected delay (i.e., how long it will take for packets to traverse from source node 104 to destination node 108) and worst case queuing jitter (i.e., how much the delay varies for different packets.).
FIG. 2 contains a general depiction of a node 200. The node could be source edge node 104, intermediate node 106, or destination edge node 108. A node receives packets on one or more receive internodal links 202 from other nodes in network 100. The packet switch 204 in node 200 examines address information in each received packet, and temporarily stores the packet in an appropriate queue in local buffer 208. Local buffer 208 is operably connected to both packet processor 212 and packet switch 204. Packets may be directed to/from local buffer by either packet processor 212, or by packet switch 204. Packet processor 212 may direct packets to buffer 208 for subsequent transmission on one or more internodal links 206 by packet switch 204, or for other purposes. Similarly, packet switch 204 may direct packets to buffer 208 for subsequent packet processing by packet processor 212, or for subsequent transmission on one of a possible plurality of internodal links 206, or for other purposes.
Local buffer 208 may be a single centralized memory, or else, a distributed memory within the node, but consists of one or more memories which are partitioned appropriately to store packets 210 until needed. Packet processor 212 may consists of a single centralized processor, or a plurality of distributed packet processors.
Packet processor 212 is also operably connected to a plurality of voice and data sources through a plurality of access interfaces 214. Packet processor 212 receives voice (or data) from sources through access interface 214, performs adaptions on the received voice (or= data) to convert voice (or data) to packets, and then directs packets to local buffer 208 for subsequent transmission on internodal links 206. Similarly, packets received on internodal links 202 and stored in local buffer 208 by packet switch 204, may be subsequently removed by packet processor 212 and converted from packet form to the original form compatible with source (voice or data) and directed to access interface(s) 214. Voice and data source devices that may be connected to access interface(s) 214 such terminals, LANs (local area networks), modems, PBXs (Private Branch Exchange), and telephones.
In voice applications, packet processor 212 is a voice packet processor. Furthermore, the processing performed by voice packet processor 212 which occurs in the direction from the access interface 214 towards the network is packet voice transmit operations (PVT). The processing which occurs in the direction from the network to the access interface 214 is the packet voice receiver (PVR).
FIG. 3 shows packet 300. Packet 300 is a series of bytes. Packet 300 has header 302 and payload 304. Header 302, shown with three bytes, contains information used by nodes 104, 106, 108 to relay packet 300 to its destination. Payload 304, here shown with 44 bytes, contains data and information related to the voice source. Part of payload 304 is sequence number 306. Sequence number 306 is assigned by voice packet processor 212. Each successive voice packet is assigned a successive sequence number 306.
Packetization of voice by voice packet processor 212 consists of accumulating voice samples from voice source
102 operably connected to voice packet processor 212 through access interface 214. After a sufficient number of samples have been accumulated, the voice samples may be compressed by the voice packet processor 212 and placed in payload 304 along with sequence number 306. Header 302, containing a connection identifier for fast packet 300, is attached by the voice packet processor 212 to payload 304 for use in relaying fast packet 300 to its destination 108 within network 100.
Packets are transmitted, by voice packet processor 212 at the source edge node 104 at uniformly spaced intervals of del_T time units. Each successive sequence number 306 in voice packet 300 represents a change in time of del_T units. Since the packet voice processor 212 at the destination edge node 108 also dequeues packets at uniformly spaced time intervals of del_T time units, sequence number 306 may be used to determine the relative time that each packet is to be played out (dequeued). Therefore, sequence number 306 serves as a time stamp, indicating the relative playout time of received packets at the PVR, and a sequence number, for detecting packets lost by packet network 100.
The dual purpose of the sequence number is true when the voice packet processor includes a voice activity detection mechanism. In this case, the PVT detects the presence or absence of voice (so called talkspurts), and only sends packets when it detects the presence of active speech signals in the audio channel. Thus, the PVT will send packets uniformly space by del_T units of time during a talk spurt, but will not send packets during silence intervals. However, the PVT keeps incrementing the sequence number at the same del_T time increments even during silence intervals when no packets are sent. Thus, when the next talkspurt occurs, the transmitted packets will contain sequence numbers that correspond to the expected relative playout times at the PVR. Thus, the PVR can continue to use the sequence number in the voice packets as a time stamp and a sequence number.
Referring once again to FIG. \, source edge node 104 is shown coupled to voice source 102. Voice source 102 may be a telephone, PBX, or any other device that generates voice signals.
Source edge node 104 contains packet processor 212 which converts voice signal to packet form, and then enqueues packet in buffer 208 for subsequent transmission on a specific internodal link (in case there are a plurality of internodal links 206). The enqueued voice packets must contend with packets from other voice and data sources 112 for transmission in network 100. The voice packets are transmitted via packet switch 204 to intermediate node 106. While one intermediate node 106 is shown, a plurality (but possibly, zero) of intermediate nodes may be in the path from source edge node 104 to destination edge node 108 for a specific voice call. As the packet of a voice call travels along the specific path associated with the call, in encounters a plurality of such queues. Each encountered queue increases the expected queuing jitter which will be observed by the PVR (212) at the destination edge node 108.
At intermediate node(s) 106, the voice packets are again enqueued for transmission with other voice and data packets from other sources and other internodal links. The voice packets associated with the said voice call are transmitted along the path towards the destination edge node 108.
At destination edge node 108, the voice packets are directed to the local buffer 208 and the (voice) packet processor 212 removes the voice packets and converts the voice packets to a form compatible with the voice destination device 110. The process of removing the voice packets from the local buffer 208, converting the voice packet from packet form to a voice signal compatible with the voice destination device 110 is referred to as the vojce playout process. The exact time instance when this process occurs for a specific voice packet is referred to as the playout time of the said packet.
A portion of buffer 208 is set aside as a voice packet receive buffer for the voice packet processor 212. Playout is accomplished by placing the packets in the voice packet buffer (enqueuing) and, at a later time, retrieving the packets from the voice packet buffer (dequeuing) before converting packet to original voice signal and playing out the voice signal to the voice destination device 110. The voice packet buffer is referred to as the smoothing buffer.
The smoothing buffer 402, along with the enqueue 404, dequeue 406, and packet conversion 408 processes are illustrated in FIG. 4. Packets are inserted in smoothing buffer 402 by an enqueue process 404 and removed from the buffer by a dequeue process 406. The process described herein simultaneously minimizes the waiting time that packets spend in the smoothing buffer before being dequeued and converted to original form, minimizing the probability of FIFO (First in, First Out) underflow, and also preserves the exact spacing between talkspurts. This is accomplished by the following method:
At the voice packet processor 212 in the source edge node 104, hereafter referred to as the PVT (packet voice transmitter), sequence number 306 is included in each voice packet 300. Sequence number 306 allows the voice packet processor 212 in the destination node 108, hereafter referred to as the PVR (packet voice receiver), to detect when a packet has been dropped by the network. Packets are marked with a sequence number that is incremented for each successive fast packet, and which wraps around to zero after reaching some maximum. For example, if PVR receives sequence numbers 1- 2-3-5-6, it can discern that packet number 4 is missing. The PVT will send a continuous stream of uniformly spaced packets. If at the PVR, a sequence number 306 is found to be missing, the packet receiver knows that the packet was dropped by the network, and will therefore interpolate the speech to fill in the audio channel for the missing packet.
The number of bits required to represent the sequence number 306 in each voice packet is determined by the time interval between packet transmissions, del_T, and the worst case smoothing delay that one needs to compensate for the queuing jitter that voice packets experience as they traverse the packet network from source edge node 104 to destination edge node 108. To unambiguously span the worst case queuing jitter at the receiver, the time span of the sequence number 306 (i.e., how often the modulo counter reset to zero) must be greater than the queuing timing jitter.
For example, if del_T is chosen to be 5 milliseconds, or equivalents 40 voice samples (bytes) per voice packet, if PCM (pulse code modulation) encoding is used by the PVT, and if the sequence number 306 was allocated 6 bits (i.e. 64 counts) in the voice packet, then the sequence number 306 rolls over every 64 * 5 = 320 milliseconds, which is much larger than the worst case queuing jitter (typically 100 milliseconds, or less, for packet voice connections).
Fig. 5 shows a flowchart of the adaptive smoothing delay process 500. Each time a voice packet playout occurs (step 502), the sequence number 306 of the voice packet is checked (step 505). If the sequence number is not valid, the packet is discarded (step 510), and the next packet (if there is one) is examined (step 502). If the sequence number is valid, the packet is playout and the waiting time of the packet is computed (step 515), where the waiting time is defined as the difference between the time instance that the packet was enqueued into the smoothing buffer and the time that the packet was dequeue from the smoothing buffer . A histogram of waiting times is then updated (step 520).
After every N'th packet is played out, the histogram is post processed to find the longest waiting delay (step 530), the longest delay is smoothed (step 535), the histogram is cleared (step 540) in preparation for calculation of a new histogram over the next N packets. The parameter N is chosen to equal a fixed time interval (typically seconds).
If there is either a silence gap in the speech or if a pre¬ determined time "T" (typically minutes) has elapsed (step 545), then the longest smoothed waiting time is compared with the maximum expected waiting time, CDV_Max (step
550). If the two are equal, then the smoothing delay is set at the optimum value, and no adjustment to the playout process is required.
If the two are not equal, then the playout time of the next received packet (and the playout times of subsequent packets) is adaptively adjusted such that the expected value of subsequent measured longest waiting times is equal to CDV_max (step 555).
Quantitatively, the i'th voice packet arrives at the destination after a time period equal to d(i). It is possible to break d(i) into two parts, d_fixed and d_var(i).
d(i) = d ixed + d_var(i) (Eq
1 )
where d_fixed = the fixed transmission delay (the same for each packet) and d_var(i) = the queuing delay experienced by the i'th packet.
For a specific call (i.e. a specific path through the network) the variable portion of the delay, d_var(i) can be assumed to be bounded between 0 and some maximum known value which we will refer to as the maximum cell delay variation, CDV nax. The value of CDV_max may be either a known network wide parameter, or alternatively, it can be calculated by routing entity 118 on a call by call basis (i.e. known for the specific path chosen by the routing entity at call establishment time)
0 < d_var(i) < CDV_max (Eq
2)
FIG. 6 illustrates voice packet playout process 600 and the received packets 602, illustrating the typical time jitter experienced by the individual packets. The packets are not uniformly space in time (like they were at the output of the PVT 212). When the PVR 212 receives the packet, the enqueuing process 404 attaches a received time stamp to the packet.
Consider the following scenario illustrated in FIG. 6. When the first packet 602 of a call is received, the packet receiver applies an initial smoothing delay 604 equal to CDV_max. After the initial smoothing delay expires, the packet receiver plays out the first voice packet (i.e., converts the voice packet to original form 606). The packet receiver is then executed one "packet" time (del_T) later. When executed, the PVR searches the smoothing buffer 402 for a packet with the next expected sequence number.. If found, then that packet is played out. If no such sequence number is found, then it either interpolates the speech in the audio channel (if the packet was dropped by the network) or else plays out silence 608 if the last packet was the end of a talkspurt.
The following end to end delay performance analysis applies to the above mode of operation.
Let t(i) denote the transmission time of the i'th packet.
t( i ) = del_T * i (Eq
3)
where del_T is the time between (possible) packet transmissions (a time slotted system). If follows that the packet reception time at the destination is given by
r(i) = t(i) + d(i) (Eq
4)
where d(i) is given in equation 1 above. Therefore, substituting equation 1 and 3 into equation 4:
r(i) = delJPi + d ixed + d_var(i) (Eq 5)
Note that r(i) is the "enqueuing timing" of the i'th packet at the packet receiver.
Let p(i) denote the play out time of the i'th packet. Since a voice packet is played out every del_T time period, the playout time of the i'th packet can be expressed as:
p(i) = delJPi + p(0) (Eq
6) where p(0) is the play out time of the first packet which is given by:
p(0) = r(0) + CDV_max (Eq 7)
where CDV_max is the build out delay applied to the first packet before playing out the first packet (refer to FIG. 6)
Therefore, the play out time of the i'th packet can be expressed as (substitute Eq 7 into 6)
p(i) = delJPi + r(0) + CDV_max (Eq
8)
or equivalents (substituting Eq 5, with i=0, into 8)
p(i) = delJPi + djixed + d_var(0) + CDV_max (Eq
9)
Note that p(i) is the "dequeuing time" of the i'th packet.
Finally, the waiting time, defined as the time duration that the i'th packet spends in the smoothing delay buffer 402 can be expressed as the difference of the play out time (dequeue time) ( equation 9) and the packet arrival time (enqueue time) (equation 5):
w( i) = p(i) - r(i) (Eq 1 0)
or equivalents
w(i) = d_var(0) + CDV_max - d_var(i) (Eq 1 1 ) Since both d_var(i) and d_var(0) are bounded by the closed interval (0, CDV_max) (Equation 2), the waiting time of all packets depends explicitly on d_var(0), which is the queuing jitter that the first packet experienced when it traversed the network.
If d_var(0), the variable portion of the delay of the first received packet, is equal to 0, then the waiting time w(i) is given by:
w(i) CDV_max - d_var(i) (Eq
12)
Since d_var(i) is bounded by the closed interval (0, CDV_max), refer to equation 2, it follows that the waiting time varies from 0 to CDV_max, which is the best that one can do.
However, if d_var(0), the variable portion of the delay of the first received packet, is equal to the maximum value
CDV_max, then, substituting d_var(0) = CDV_max into equation 11 yields
w(i) = 2*CDV_max - d_var(i) (Eq 1 3)
Since d_var(i) is bounded by the closed interval (0, CDV_max), refer to equation 2, it follows that the waiting time for this case varies from CDV_max to 2*CDV_max. This means that the voice path will be delayed by an addition CDV_max time duration.
As explained previously, the present invention solves the above problem by adding the following adaptive loop to the smoothing delay algorithm. The algorithm is initialized by adding a build out delay, equal to CDV_max to the first packet received before playing the first packet out as described above and shown in FIG. 6. Subsequent packets are played out according to Eq 6 above (for the first few seconds - typically 2 seconds). However, for the subsequent packets, the following algorithm is used to adaptively adjust the smoothing delay (note: the following pseudo code is functionally equivalent to the flowchart contained in FIG. 5):
for each voice packet received with valid sequence number
{ playout the packet at time p(i), compute the waiting delay w(i), where w(i) is defined to be the time difference between the enqueue and dequeue time instances for each packet.
Update a histogram of waiting times, if N packets have been received, then { post process the histogram to find the longest valid waiting time, smooth the measured longest waiting time, and clear the histogram and begin compiling a new histogram over the next N voice packets.
}
if a silence gap exists in the speech, or a time period of T minutes exists with no silence gap, then do the following:
{ if the longest smoothed measured waiting time is not equal to the CDV_max value, „then do the following { make a timing adjustment to the playout time of future voice packets such that the expected value of future longest waiting time is equal to CDV max.
}
The above algorithm adjusts the smoothing delay to the optimum value, where the waiting times are bounded by the closed interval (0, ... CDV_max). The algorithm will also compensate for clock drift between the source and destination nodes, and provide robustness during network re-routes.
While the method described above specifically refers to voice packets, the method could easily be used for any packetized data traffic, such as constant bit rate traffic or asynchronous data traffic.

Claims

We claim:
1. In a cell relay network, a method of playing out a plurality of voice packets, the voice packets originating from a voice packet transmitter and received by a voice packet receiver, comprising:
accumulating voice packets in a buffer; sequentially playing out the voice packets from the buffer; monitoring the time at least one voice packet spends in the buffer prior to playing out the packet; and adjusting the time when at least one future voice packet is played out based upon the monitored time.
2. The method of claim 1 including the step of monitoring the time a plurality of voice packets spend in the buffer prior to playing out the packets.
3. The method of claim 2 where the step of monitoring the time a plurality of voice packets comprises the steps of:
for each of the plurality of voice packets, monitoring the time that voice packet spends in the buffer.
4. The method of claim 3 including the step of constructing a histogram of the times that each voice packet spends in the buffer.
5. The method of claim 3 including the step of determining from the monitored time the maximum amount of queuing j itte r.
6. The method of claim 4 including the step of determining from the monitored time the maximum amount of queuing j itte r .
7. The method of claim 3 including the step of determining, for the plurality of voice packets, the maximum time one of said packets spent in the buffer.
8. The method of claim 7 where the step of adjusting the time when at least one future voice packet is played out comprises: adjusting the waiting when at least one future voice packet is played out, based upon the maximum time one of said packets spent in the buffer.
9. The method of claim 7 where the step of adjusting the time when at least one future voice packet is played out is based upon the maximum time one said packets spent in the buffer.
10. In a cell relay network, where the network is comprised of plurality of cell relay switches, a method of playing out a plurality of voice packets, the voice packets originating from a voice packet transmitter at a first edge node of the network and received by a voice packet receiver at a second edge node of the network, the voice packets going from the voice packet transmitter to the voice packet receiver along a specific path of cell relay switches in the network, where a routing entity determines the specific path, comprising: determining the maximum amount of queuing jitter anticipated to be encountered by any voice packet for the specific path; accumulating voice packets in a buffer; sequentially playing out the voice packets from the buffer; and adjusting the time when at least one future voice packet is played out based upon the maximum amount of queuing jitter anticipated to be encountered by any voice packet for the specific path.
PCT/US1994/008931 1993-11-19 1994-08-08 Method for adaptive smoothing delay for packet voice applications WO1995014337A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE69431619T DE69431619T2 (en) 1993-11-19 1994-08-08 METHOD FOR ADAPTIVELY SMOOTHING DELAYS IN LANGUAGE PACKAGE APPLICATIONS
EP94926481A EP0683945B1 (en) 1993-11-19 1994-08-08 Method for adaptive smoothing delay for packet voice applications
AU76303/94A AU686225B2 (en) 1993-11-19 1994-08-08 Method for adaptive smoothing delay for packet voice applications
CA002152609A CA2152609C (en) 1993-11-19 1994-08-08 Method for adaptive smoothing delay for packet voice applications

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12382293A 1993-11-19 1993-11-19
US08/123,822 1993-11-19

Publications (1)

Publication Number Publication Date
WO1995014337A1 true WO1995014337A1 (en) 1995-05-26

Family

ID=22411101

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1994/008931 WO1995014337A1 (en) 1993-11-19 1994-08-08 Method for adaptive smoothing delay for packet voice applications

Country Status (6)

Country Link
US (1) US6157653A (en)
EP (1) EP0683945B1 (en)
AU (1) AU686225B2 (en)
CA (1) CA2152609C (en)
DE (1) DE69431619T2 (en)
WO (1) WO1995014337A1 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2297456A (en) * 1995-01-26 1996-07-31 Siemens Ag Connections in ATM communications systems
WO1997037466A1 (en) * 1996-03-29 1997-10-09 Nokia Telecommunications Oy Speech transmission in a packet network
WO1998004098A1 (en) * 1996-07-17 1998-01-29 Newbridge Networks Corporation Variation fluctuation smoothing (vfs) for atm circuit emulation
EP0838916A1 (en) * 1996-10-24 1998-04-29 KRONE Aktiengesellschaft Synchronisation procedure for transmissions with a constant bit rate (CBR) in ATM transmission networks and a circuit for executing this procedure
EP0859535A2 (en) * 1997-02-17 1998-08-19 Matsushita Electric Industrial Co., Ltd. Communications system
US5996018A (en) * 1995-12-06 1999-11-30 International Business Machines Corporation Method and apparatus to reduce jitter and end-to-end delay for multimedia data signalling
WO2000048421A1 (en) * 1999-02-12 2000-08-17 Koninklijke Philips Electronics N.V. Method of and apparatus for isochronous data communication
EP1104958A2 (en) * 1999-11-15 2001-06-06 Siemens Information and Communication Networks Inc. Jitter buffer adjustment algorithm
WO2001048982A1 (en) * 1999-12-27 2001-07-05 Telefonaktiebolaget L.M. Ericsson (Publ.) Methods and systems for connecting telephony exchanges to packet switched networks using virtual trunks
WO2001067436A1 (en) * 2000-03-06 2001-09-13 Mitel Corporation Sub-packet insertion for packet loss compensation in voice over ip networks
GB2360918A (en) * 1999-11-15 2001-10-03 Siemens Inf & Comm Networks Jitter buffer with adaptive depth
EP1161805A1 (en) * 1999-11-30 2001-12-12 Telogy Networks Inc. Synchronization of voice packet generation to unsolicited grants in a docsis cable modem voice over packet telephone
WO2002045307A1 (en) * 2000-11-28 2002-06-06 Oz.Com Method and apparatus for progressive transmission of time based signals
EP1274206A1 (en) * 2001-07-06 2003-01-08 Zarlink Semiconductor Limited Buffering in hybrid packet-TDM gateway
US6912224B1 (en) 1997-11-02 2005-06-28 International Business Machines Corporation Adaptive playout buffer and method for improved data communication
EP1564940A2 (en) * 2004-02-17 2005-08-17 Fujitsu Limited Traffic shaping device and method
WO2008009111A1 (en) * 2006-07-19 2008-01-24 Dragonwave Inc. Expedited communication traffic handling apparatus and methods
EP1460810A3 (en) * 2003-03-20 2009-06-17 Siemens Aktiengesellschaft -Method and control circuit for jitter buffers
US20220350532A1 (en) * 2021-04-28 2022-11-03 Micron Technology, Inc. Techniques for memory system configuration using queue refill time

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389010B1 (en) 1995-10-05 2002-05-14 Intermec Ip Corp. Hierarchical data collection network supporting packetized voice communications among wireless terminals and telephones
US6104802A (en) 1997-02-10 2000-08-15 Genesys Telecommunications Laboratories, Inc. In-band signaling for routing
US7031442B1 (en) 1997-02-10 2006-04-18 Genesys Telecommunications Laboratories, Inc. Methods and apparatus for personal routing in computer-simulated telephony
US6480600B1 (en) 1997-02-10 2002-11-12 Genesys Telecommunications Laboratories, Inc. Call and data correspondence in a call-in center employing virtual restructuring for computer telephony integrated functionality
US6711611B2 (en) 1998-09-11 2004-03-23 Genesis Telecommunications Laboratories, Inc. Method and apparatus for data-linking a mobile knowledge worker to home communication-center infrastructure
US6985943B2 (en) 1998-09-11 2006-01-10 Genesys Telecommunications Laboratories, Inc. Method and apparatus for extended management of state and interaction of a remote knowledge worker from a contact center
USRE46528E1 (en) 1997-11-14 2017-08-29 Genesys Telecommunications Laboratories, Inc. Implementation of call-center outbound dialing capability at a telephony network level
US6081506A (en) * 1997-11-19 2000-06-27 At&T Corp Integrating switching and facility networks using ATM
US6157655A (en) * 1998-02-17 2000-12-05 Genesys Telecommunications Laboratories, Inc. Method for estimating telephony system-queue waiting time in an agent level routing environment
US7907598B2 (en) 1998-02-17 2011-03-15 Genesys Telecommunication Laboratories, Inc. Method for implementing and executing communication center routing strategies represented in extensible markup language
US6332154B2 (en) 1998-09-11 2001-12-18 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing media-independent self-help modules within a multimedia communication-center customer interface
USRE46153E1 (en) 1998-09-11 2016-09-20 Genesys Telecommunications Laboratories, Inc. Method and apparatus enabling voice-based management of state and interaction of a remote knowledge worker in a contact center environment
US6259677B1 (en) * 1998-09-30 2001-07-10 Cisco Technology, Inc. Clock synchronization and dynamic jitter management for voice over IP and real-time data
US6584122B1 (en) * 1998-12-18 2003-06-24 Integral Access, Inc. Method and system for providing voice and data service
US6389032B1 (en) * 1999-02-11 2002-05-14 International Business Machines Corporation Internet voice transmission
US6735192B1 (en) * 1999-09-29 2004-05-11 Lucent Technologies Inc. Method and apparatus for dynamically varying a packet delay in a packet network based on a log-normal delay distribution
US6859460B1 (en) * 1999-10-22 2005-02-22 Cisco Technology, Inc. System and method for providing multimedia jitter buffer adjustment for packet-switched networks
US7929978B2 (en) 1999-12-01 2011-04-19 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing enhanced communication capability for mobile devices on a virtual private network
US7027989B1 (en) * 1999-12-17 2006-04-11 Nortel Networks Limited Method and apparatus for transmitting real-time data in multi-access systems
US20010052072A1 (en) * 2000-01-25 2001-12-13 Stefan Jung Encryption of payload on narrow-band IP links
US6937603B1 (en) * 2000-06-02 2005-08-30 Intel Corporation Optimizing buffer latency in a streamed packet delivery session
US6928078B2 (en) * 2000-06-13 2005-08-09 Altigen Communications, Inc. Packetized communications apparatus and method
JP2002281076A (en) * 2001-03-15 2002-09-27 Oki Electric Ind Co Ltd Fluctuation absorbing device
US7161905B1 (en) 2001-05-03 2007-01-09 Cisco Technology, Inc. Method and system for managing time-sensitive packetized data streams at a receiver
US7002979B1 (en) 2001-08-10 2006-02-21 Utstarcom, Inc. Voice data packet processing system
US7035250B2 (en) * 2001-08-13 2006-04-25 Utstarcom, Inc. System for organizing voice channel data for network transmission and/or reception
US6977948B1 (en) 2001-08-13 2005-12-20 Utstarcom, Inc. Jitter buffer state management system for data transmitted between synchronous and asynchronous data networks
US7142554B1 (en) 2001-08-13 2006-11-28 Utstarcom, Inc. Voice over network lookup method and apparatus
US7319703B2 (en) * 2001-09-04 2008-01-15 Nokia Corporation Method and apparatus for reducing synchronization delay in packet-based voice terminals by resynchronizing during talk spurts
US7251246B2 (en) * 2001-09-14 2007-07-31 Snowshore Networks, Inc. Selective packet processing in a packet based media processor for latency reduction
US6754203B2 (en) * 2001-11-27 2004-06-22 The Board Of Trustees Of The University Of Illinois Method and program product for organizing data into packets
US7106757B2 (en) * 2001-12-19 2006-09-12 Intel Corporation System and method for streaming multimedia over packet networks
US7079486B2 (en) 2002-02-13 2006-07-18 Agere Systems Inc. Adaptive threshold based jitter buffer management for packetized data
US7126957B1 (en) 2002-03-07 2006-10-24 Utstarcom, Inc. Media flow method for transferring real-time data between asynchronous and synchronous networks
US20030179780A1 (en) * 2002-03-20 2003-09-25 Zarlink Semiconductor V.N. Inc. Method of detecting drift between two clocks
US7072828B2 (en) * 2002-05-13 2006-07-04 Avaya Technology Corp. Apparatus and method for improved voice activity detection
US20050068952A1 (en) * 2002-05-24 2005-03-31 Deiss Michael S. Conditional access filter as for a packet video signal inverse transport system
US7133411B2 (en) * 2002-05-30 2006-11-07 Avaya Technology Corp Apparatus and method to compensate for unsynchronized transmission of synchrous data by counting low energy samples
US7233895B2 (en) * 2002-05-30 2007-06-19 Avaya Technology Corp. Apparatus and method to compensate for unsynchronized transmission of synchrous data using a sorted list
US6985459B2 (en) * 2002-08-21 2006-01-10 Qualcomm Incorporated Early transmission and playout of packets in wireless communication systems
US8520519B2 (en) * 2002-09-20 2013-08-27 Broadcom Corporation External jitter buffer in a packet voice system
US20050198681A1 (en) * 2004-03-08 2005-09-08 Sharp Laboratories Of America, Inc. Playout buffer management to minimize startup delay
US8804575B2 (en) * 2005-12-13 2014-08-12 Cisco Technology, Inc. Central entity to adjust redundancy and error correction on RTP sessions
US9008075B2 (en) 2005-12-22 2015-04-14 Genesys Telecommunications Laboratories, Inc. System and methods for improving interaction routing performance
US7729387B2 (en) 2007-01-31 2010-06-01 Agere Systems Inc. Methods and apparatus for controlling latency variation in a packet transfer network
US7821947B2 (en) * 2007-04-24 2010-10-26 Microsoft Corporation Automatic discovery of service/host dependencies in computer networks
US9246829B2 (en) * 2013-05-01 2016-01-26 Cisco Technology, Inc. Utilizing latency control to alleviate bufferbloat
US9674104B1 (en) 2013-05-01 2017-06-06 Cisco Technology, Inc Adapting proportional integral controller enhanced algorithm for varying network conditions in a network environment
KR102419595B1 (en) * 2016-01-07 2022-07-11 삼성전자주식회사 Playout delay adjustment method and Electronic apparatus thereof

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4453247A (en) * 1981-03-27 1984-06-05 Hitachi, Ltd. Speech packet switching method and device
US4607363A (en) * 1984-05-23 1986-08-19 International Business Machines Corp. Buffer device for a voice transmission network
US4748620A (en) * 1986-02-28 1988-05-31 American Telephone And Telegraph Company, At&T Bell Laboratories Time stamp and packet virtual sequence numbering for reconstructing information signals from packets
US4894823A (en) * 1986-02-28 1990-01-16 American Telephone And Telegraph Company Time stamping for packet system nodes
US5148429A (en) * 1988-10-27 1992-09-15 Kabushiki Kaisha Toshiba Voice data transmission system and method
US5278825A (en) * 1991-02-01 1994-01-11 Siemens Aktiengesellschaft Method for monitoring and smoothing data streams that are transmitted asynchronously

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0308565B1 (en) * 1987-09-23 1993-02-10 International Business Machines Corporation Improvement to digital packet switching networks
US4914650A (en) * 1988-12-06 1990-04-03 American Telephone And Telegraph Company Bandwidth allocation and congestion control scheme for an integrated voice and data network
US5224099A (en) * 1991-05-17 1993-06-29 Stratacom, Inc. Circuitry and method for fair queuing and servicing cell traffic using hopcounts and traffic classes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4453247A (en) * 1981-03-27 1984-06-05 Hitachi, Ltd. Speech packet switching method and device
US4607363A (en) * 1984-05-23 1986-08-19 International Business Machines Corp. Buffer device for a voice transmission network
US4748620A (en) * 1986-02-28 1988-05-31 American Telephone And Telegraph Company, At&T Bell Laboratories Time stamp and packet virtual sequence numbering for reconstructing information signals from packets
US4894823A (en) * 1986-02-28 1990-01-16 American Telephone And Telegraph Company Time stamping for packet system nodes
US5148429A (en) * 1988-10-27 1992-09-15 Kabushiki Kaisha Toshiba Voice data transmission system and method
US5278825A (en) * 1991-02-01 1994-01-11 Siemens Aktiengesellschaft Method for monitoring and smoothing data streams that are transmitted asynchronously

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP0683945A4 *

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2297456A (en) * 1995-01-26 1996-07-31 Siemens Ag Connections in ATM communications systems
GB2297456B (en) * 1995-01-26 1999-03-17 Siemens Ag Process and arrangement for connections in ATM communications systems
US5996018A (en) * 1995-12-06 1999-11-30 International Business Machines Corporation Method and apparatus to reduce jitter and end-to-end delay for multimedia data signalling
WO1997037466A1 (en) * 1996-03-29 1997-10-09 Nokia Telecommunications Oy Speech transmission in a packet network
US6738374B1 (en) 1996-03-29 2004-05-18 Nokia Telecommunications Oy Speech transmission in a packet network
WO1998004098A1 (en) * 1996-07-17 1998-01-29 Newbridge Networks Corporation Variation fluctuation smoothing (vfs) for atm circuit emulation
EP0838916A1 (en) * 1996-10-24 1998-04-29 KRONE Aktiengesellschaft Synchronisation procedure for transmissions with a constant bit rate (CBR) in ATM transmission networks and a circuit for executing this procedure
US6026074A (en) * 1996-10-24 2000-02-15 Krone Ag Method for synchronizing transmissions at a constant bit rate in ATM networks and circuit arrangements for carrying out the method
EP0859535A3 (en) * 1997-02-17 2000-04-19 Matsushita Electric Industrial Co., Ltd. Communications system
EP0859535A2 (en) * 1997-02-17 1998-08-19 Matsushita Electric Industrial Co., Ltd. Communications system
US6278691B1 (en) 1997-02-17 2001-08-21 Matsushita Electric Industrial Co., Ltd. Communications system
US6912224B1 (en) 1997-11-02 2005-06-28 International Business Machines Corporation Adaptive playout buffer and method for improved data communication
WO2000048421A1 (en) * 1999-02-12 2000-08-17 Koninklijke Philips Electronics N.V. Method of and apparatus for isochronous data communication
EP1104958A2 (en) * 1999-11-15 2001-06-06 Siemens Information and Communication Networks Inc. Jitter buffer adjustment algorithm
GB2360918A (en) * 1999-11-15 2001-10-03 Siemens Inf & Comm Networks Jitter buffer with adaptive depth
EP1104958A3 (en) * 1999-11-15 2004-10-06 Siemens Information and Communication Networks Inc. Jitter buffer adjustment algorithm
EP1161805A1 (en) * 1999-11-30 2001-12-12 Telogy Networks Inc. Synchronization of voice packet generation to unsolicited grants in a docsis cable modem voice over packet telephone
EP1161805A4 (en) * 1999-11-30 2003-04-23 Telogy Networks Inc Synchronization of voice packet generation to unsolicited grants in a docsis cable modem voice over packet telephone
WO2001048982A1 (en) * 1999-12-27 2001-07-05 Telefonaktiebolaget L.M. Ericsson (Publ.) Methods and systems for connecting telephony exchanges to packet switched networks using virtual trunks
WO2001067436A1 (en) * 2000-03-06 2001-09-13 Mitel Corporation Sub-packet insertion for packet loss compensation in voice over ip networks
GB2360178B (en) * 2000-03-06 2004-04-14 Mitel Corp Sub-packet insertion for packet loss compensation in Voice Over IP networks
US6901069B2 (en) 2000-03-06 2005-05-31 Mitel Networks Corporation Sub-packet insertion for packet loss compensation in voice over IP networks
WO2002045307A1 (en) * 2000-11-28 2002-06-06 Oz.Com Method and apparatus for progressive transmission of time based signals
EP1274206A1 (en) * 2001-07-06 2003-01-08 Zarlink Semiconductor Limited Buffering in hybrid packet-TDM gateway
EP1460810A3 (en) * 2003-03-20 2009-06-17 Siemens Aktiengesellschaft -Method and control circuit for jitter buffers
US7554915B2 (en) 2003-03-20 2009-06-30 Siemens Aktiengesellschaft Method and a jitter buffer regulating circuit for regulating a jitter buffer
EP1564940A2 (en) * 2004-02-17 2005-08-17 Fujitsu Limited Traffic shaping device and method
EP1564940A3 (en) * 2004-02-17 2005-11-02 Fujitsu Limited Traffic shaping device and method
US7660249B2 (en) 2004-02-17 2010-02-09 Fujitsu Limited Packet shaping device, router, band control device and control method
WO2008009111A1 (en) * 2006-07-19 2008-01-24 Dragonwave Inc. Expedited communication traffic handling apparatus and methods
US8081626B2 (en) 2006-07-19 2011-12-20 4472314 Canada Inc. Expedited communication traffic handling apparatus and methods
US20220350532A1 (en) * 2021-04-28 2022-11-03 Micron Technology, Inc. Techniques for memory system configuration using queue refill time
US11768629B2 (en) * 2021-04-28 2023-09-26 Micron Technology, Inc. Techniques for memory system configuration using queue refill time

Also Published As

Publication number Publication date
DE69431619T2 (en) 2003-02-27
AU7630394A (en) 1995-06-06
US6157653A (en) 2000-12-05
CA2152609C (en) 2000-12-12
DE69431619D1 (en) 2002-12-05
EP0683945A4 (en) 1998-05-20
EP0683945A1 (en) 1995-11-29
AU686225B2 (en) 1998-02-05
EP0683945B1 (en) 2002-10-30
CA2152609A1 (en) 1995-05-26

Similar Documents

Publication Publication Date Title
US6157653A (en) Method and apparatus for adaptive smoothing delay for packet voice applications
US7079486B2 (en) Adaptive threshold based jitter buffer management for packetized data
US6977942B2 (en) Method and a device for timing the processing of data packets
US6570849B1 (en) TDM-quality voice over packet
AU629757B2 (en) Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets
EP1183681B1 (en) Sub-packet insertion for packet loss compensation in voice over ip networks
US7877500B2 (en) Packet prioritization and associated bandwidth and buffer management techniques for audio over IP
JP2002009842A (en) Automatic adaptive jitter buffer
US6912224B1 (en) Adaptive playout buffer and method for improved data communication
EP1340344B1 (en) Latency management for a network
Liu et al. Packing density of voice trunking using AAL2
US7349419B1 (en) Queue sizing for packet routing
EP0786885B1 (en) Method for packet connection
US6931029B1 (en) System and method for synchronizing with data received over an unreliable asynchronous medium
US7088738B1 (en) Dynamic fragmentation of information
US7020128B1 (en) System and method for datagram staggering in a communication system
KR20040076887A (en) Method and system for converting data
Dong et al. Transmission of compressed voice over integrated services frame relay networks: priority service and adaptive buildout delay
WO2002035783A1 (en) Asynchronous packet processing using media stream functions
EP1274206A1 (en) Buffering in hybrid packet-TDM gateway
Gan et al. Performance of an ATM network with multimedia traffic-a simulation study
Onvural et al. A bibliography of ATM related papers

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

WWE Wipo information: entry into national phase

Ref document number: 2152609

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 1994926481

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1994926481

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1994926481

Country of ref document: EP