Jitter, (also known as latency or delay), is the amount of time it takes for a packet of data to get from one point to another. A jitter buffer is a temporary storage buffer used to capture incoming data packets. It is used in packet-based networks to ensure the continuity of audio streams by smoothing out packet arrival times during periods of network congestion. Data packets travel independently and arrival times can vary greatly depending on network congestion and the type of network used, i.e. LAN versus wireless networks. The concept of jitter buffering is displayed visually in the following image.
Jitter-buffer management is encompassed within Tieline's SmartStream IP technology which can:
•Remove duplicate packets.
•Re-order packets if they arrive out-of-order.
•Repair the stream in the event of packet loss (error concealment).
•Manage delay dynamically based on current network congestion.
•Manage forward error correction (FEC).
With Tieline codecs you can configure either a fixed or automatic jitter buffer and the settings you use depend on the IP network over which you are connecting. Over LANs, WANs and wireless networks the automatic jitter buffer generally works well. It adapts automatically to prevailing IP network conditions to provide continuity of audio streaming and minimize delay.
A fixed jitter buffer is preferable over satellite or high latency connections to ensure continuity of signals.
CAUTION: If a Tieline codec connects to a device that is using non-compliant RTP streams then the last fixed setting configured in the codec will be enabled (default is 500ms). Non-compliant devices include some other brands of codec, web streams and other devices. |
Least Delay: This setting attempts to reduce the jitter buffer to the lowest possible point, while still trying to capture the majority of data packets and keep audio quality at a high level. This setting is the most aggressive in adapting to prevailing conditions, so the jitter buffer may vary more quickly than with the other settings. It is not recommended in situations where jitter variation is significant, or occurs in bursts. (E.g. cellular/multi-user wireless networks). It is best for stable and reliable links such as dedicated or lightly-loaded WAN/LANs.
Highest Quality: This setting is the most conservative in terms of adapting to reduce delay. The jitter-buffer will remain higher for a longer period after a jitter spike is detected – just in case there are more spikes to follow. This setting is best used where audio quality is the most important factor and delay is not as critical. Unless delay is irrelevant, this setting is not recommended over peaky jitter networks (e.g. cellular networks) and is best used on more stable networks where fluctuating jitter bursts are not common.
Best Compromise: This default setting is literally the midpoint between the jitter buffer settings applicable for 'Highest Quality' and 'Least Delay'. It is designed to provide the safest level of good audio quality without introducing too much extra delay. In most situations it will deliver very high quality and low delay to support live bidirectional communications.
Good Quality and Less Delay: These two settings lie between the mid-point setting of Best Compromise and two settings Highest Quality and Least Delay. They indicate a slight preference and may assist in achieving better performance from a connection without incurring extreme delays in transmission or packet loss.
The jitter Depth setting allows you to select predetermined minimum and maximum jitter settings within the auto jitter buffer's minimum and maximum jitter limitations. The default setting of 60 to 1000ms is a good starting point for most networks. It may be necessary to increase the maximum auto jitter latency setting for networks experiencing higher packet latency, or the minimum depth depending on the reliability of the network.
The following table provides an overview of which algorithms are capable of using the automatic jitter buffer feature over SIP and non-SIP connections.
Algorithm |
Non-SIP Connections |
SIP Connections |
PCM Linear (Uncompressed) |
||
Tieline Music |
||
Tieline MusicPLUS |
||
G.711 |
||
G.722 |
||
MPEG Layer 2 |
||
MPEG Layer 3 |
||
LC-AAC |
||
HE-AAC v.1 |
||
HE-AAC v.2 |
||
AAC-LD |
||
AAC-ELD |
||
Opus |
||
aptX Enhanced |
1.Press the HOME button to return to the Home screen, then tap Dialer
.
2.Jitter Buffer to select a different automatic jitter buffer setting for your connection, or to enter a fixed buffer setting in milliseconds (maximum 5000 ms). The default Auto, Best Compromise setting is a good starting point for most internet connections.
3.Tap Automatic to select Automatic Jitter Buffering.
4.Tap to select a preferred setting.
5.Use the on-screen keyboard to set the minimum jitter buffer depth. Note: The Depth setting allows you to select predetermined minimum and maximum jitter settings within the auto jitter buffer's minimum and maximum jitter limitations. The default setting of 60 to 1000ms is a good starting point for most networks. Note: the codec will not allow you to enter an invalid minimum or maximum buffer depth setting.
6.Use the on-screen keyboard to set the maximum jitter buffer depth, then tap Done in the top right-hand corner of the TOUCH SCREEN to complete configuration.
When configuring automatic jitter buffer settings, establish the IP connection for a while before ‘going live’, to allow the codec to evaluate prevailing network conditions. The initial jitter buffer setting when a codec connects is 500ms and it is kept at this level for the first minute of connection (as long as observed delay values are lower than this point).
After the initial connection period the jitter buffer is adapted to suit the current network conditions and is usually reduced. Establish a connection for at least 5 minutes prior to broadcasting, so that the codec has been provided with enough jitter history to ensure a reliable connection.
There are five jitter buffer states. Jitter buffer and connection status information can be viewed in an active connection by pressing the HOME button to return to the Home screen and tap Connections
. Then swipe left once to view the Connection Status screen with Jitter and Send/Return values.
The first four stages are observed in “auto” jitter buffer mode.
1.Stabilization period (a1): A few seconds at the start of a connection where no action is taken at all while the establishment of a stable connection means analysis of jitter data is not valid.
2.Stage 2 (a2): A compatibility check to ensure the RTP connection is compliant and RTP clocks are synchronized enough to perform jitter analysis.
3.Stage 3 (a3): If the compatibility check is successful, this is the analysis hold-off period. During a minute, the jitter buffer is held at a safe, fixed value of 500ms while enough history is recorded to start jitter buffer adaptation.
4.Stage 4 “live” (A): This is where the codec determines it is safe enough to start broadcasting using the auto-jitter buffer level. We recommend running the codec for a few more minutes to obtain a more comprehensive history of the connection’s characteristics.
5.Fixed (F): This state is displayed if the jitter buffer is fixed.
Session data is exchanged when a Tieline codec dials another Tieline codec and this configures the answering codec algorithm, bit-rate and jitter buffer etc. Depending on the capability of your network infrastructure, you may want to independently configure the jitter buffer settings on the answering codec. To do this:
1.Create a new answering program on the answering codec.
2.Configure preferred jitter buffer settings in this answering program.
3.Lock the answering program in the codec.
This ensures the answering program jitter buffer settings will be used when answering a call from a Tieline codec.
The default jitter-buffer latency in Tieline codecs is 500 milliseconds. This is a very reliable setting that will work for just about all connections. However, this is quite a long delay and we recommend that when you set up an IP connection you test how low you can configure the jitter-buffer in your codec before the broadcast.
1.Press the HOME button to return to the Home screen, then tap Dialer
.
2.Tap Jitter Buffer to configure a fixed buffer setting in milliseconds (maximum 5000 ms).
3.Tap Fixed to select fixed jitter.
4.Use the on-screen keyboard to set the fixed jitter buffer depth, then tap Done in the top right-hand corner of the TOUCH SCREEN to complete configuration.
When manually configuring the jitter-buffer delay in a codec it is necessary to think carefully about the type of connection you will be using. Following is a table displaying rule of thumb settings for configuring jitter-buffer delays into your codec.
Connection |
Jitter-Buffer Recommendation |
Private LAN |
60 milliseconds |
Local |
100 - 200 milliseconds |
National |
100 - 300 milliseconds |
International |
100 – 400 milliseconds |
Wireless Network |
250 - 750 milliseconds |
Satellite IP |
500 - 5000 milliseconds |
Important Note: The preceding table assumes Tieline Music is the algorithm in use. Do not use PCM (linear uncompressed) audio over highly contended DSL/ADSL connections without enough bandwidth to support the high connection bit rates required. |
If forward error correction is configured then additional data packets are sent over a connection to replace any lost data packets. There is no need to modify jitter buffer settings if you are sending FEC data, only if you are receiving FEC data.
The jitter buffer depth on the receive codec needs to be increased if FEC is employed. We recommend you add 100ms to the fixed jitter buffer on a codec receiving FEC at a setting of 20% and 20ms at a setting of 100%.
Tieline’s auto jitter buffer detects the amount of FEC that is being used and automatically compensates to increase the codec jitter buffer when this feature is enabled.