Adaptive Jitter Buffer for VoIP applications
Product description

DIGITAL SPEECH offers integrated solution Adaptive Jitter Buffer for VoIP systems. Adaptive jitter buffer module is intended for resolving the following problems of the VoIP (voice over internet protocols) systems

Delay
There are two basic types of delay in network with packet transmission. The algorithmic delay is caused by encoding and decoding delay in vocoders and audio codec's. The processing delay is delay in data queues of receivers, transmitters and routers. The delay between two participants is one of the most critical parameters of voice quality during conversation. Voip application should have tools which try to decrease delay to minimum.
Delay jitter
In modern VoIP systems voice packets can be transferred  via big number of routers and amount of routers can be changed during conversation. So transmission delay can be changed during conversation. Additionally delay in routers can be changed when two or more users try to get access to network via one gateway. All these reasons create delay jitter in VoIP systems. Also non-real time operational systems used in receivers, transmitters, gateways can create delay jitter  too. If jitter buffer has size less then real network jitter, then sometimes there are no voice packets in receiver buffer for playing. In this case zero or interpolated speech should be played. It significantly decreases voice quality. If jitter buffer has size bigger then real jitter, then additional delay is created during conversation. It decreases voice quality too. For the best voice quality VoIP application should have jitter buffer size equals to real network jitter.
Time clock drift in terminal equipment
For the most terminal equipment in Internet there is time clock drift. For some equipment it can achieve great values (to 2000ppm). If sound packets are played faster than they are received from networks then sometime there are no packets in receiver buffer. In this case zero or interpolated signal should be played via loudspeaker. In other case, when sound packets are played slower than they are received from the network, playing delay is increased. This terminal equipment behavior can significantly decrease voice quality. So special subsystems should be used to decrease influence of these factors to voice quality.
Instantaneous delay (Spiky delay)
Sometimes (for example when two users try to get Internet access via one gateway ) during data transmission via network delay between two consecutive received packets can be great increased (for example by 250ms). But delayed packets are not lost in this case and come to receiving point simultaneously. After this delay between two consecutive packet is decreased. The delay in this case has "spiky" nature. VoIP application should support minimal transmission delay and maximal voice quality in "spiky" delay condition.
Packet loss
Sometimes packets can be lost in network or they arrive to terminal equipment very late to be played. In these cases receiver should play some artificial signal instead of lost voice packets. For better voice quality VoIP client should conceal packets loss or recover lost packets using forward error correction mechanism.
DIGITAL SPEECH offers Adaptive Jitter Buffer algorithm for resolving described above network problems. It can works with arbitrary external vocoders and audio codec's, with arbitrary size of network packets, with external and internal PLC (packet loss concealment) algorithms. If internal PLC is used then it can dramatically improve voice quality in networks with packets loss in respect to standards algorithms.
Adaptive jitter buffer flow chart
Adaptive jitter buffer components:
  • Time scale modification algorithm (TSM)
  • Packet loss concealment (PLC)
  • State machine