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.

 

Packet jitter buffer diagram v.1.0

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).

 

Tieline codecs can be used to program either a fixed or automatic jitter buffer and the setting you use depends on the IP network you are connecting over. Over LANs, WANs and wireless networks the automatic jitter buffer generally works well. It adapts automatically to the prevailing IP network conditions to provide continuity of audio streaming and minimizes delay.

 

A fixed jitter buffer is preferable over satellite connections to ensure continuity of signals.

 

Caution

CAUTION: If a Tieline codec connects to a device that is using non-compliant RTP streams then the last fixed setting programmed into the codec will be enabled (default is 500ms). Non-compliant devices include some other brands of codec, web streams and other devices.

Tieline ‘Auto Jitter Buffer’ Settings

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 reasonable level. This setting is the most aggressive in its adaptation to prevailing conditions, so jitter buffer may vary more quickly than with the other settings. It is not recommended in situations where jitter variation is significant and/or peaky. (E.g. 3G/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 down to reduce delay. The jitter-buffer setting will actually stay high 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 most highly desired and delay is not so critical. Unless delay is irrelevant, this setting is also not recommended over peaky jitter networks (such as 3G) and is best used on more stable networks where large jitter peaks are not as common.

 

Best Compromise: This (default) setting is literally the midpoint between the jitter buffer levels that would have been chosen for the Highest Quality and Least Delay settings. It is designed to provide the safest level of good audio quality without introducing too much extra delay.

 

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.

 

Which Algorithms can use Automatic Jitter Buffering?

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

Linear (Uncompressed)

cross

cross

Tieline Music

tick

cross

Tieline MusicPLUS

tick

cross

G.711

cross

tick

G.722

cross

tick

MPEG Layer 2

tick

tick

MPEG Layer 3

tick

cross

LC-AAC

tick

tick

HE-AAC v.1

tick

tick

HE-AAC v.2

tick

tick

AAC-LD

tick

tick

AAC-ELD

tick

tick

Opus

tick

tick

aptX Enhanced

cross

cross

 

Configuring Automatic Jitter Buffering (Default Setting)

1.Press the HOME home button button to return to the Home screen.

2.Use the navigation buttons on the front panel to select Connect and press the Ok button button.

3.Select IP and press the Ok button button.

4.Select your preferred IP Session mode and press the Ok button button.

5.Use the down down arrow button navigation button to select Setup and press the Ok button button.

6.Navigate to Jitter Buffer and press Ok button.

7.Select Auto Jitter Adapt and press Ok button.

8.Select your preferred jitter buffer setting and press Ok button.

 

information2

Important Notes:

Automatic jitter buffering is disabled for a PCM (linear uncompressed) audio connection.

There is no jitter buffer setting on a multicast server codec because it only sends and never receives audio packets.

 

How to get the Best Jitter Buffer Results

When programming automatic jitter buffer settings, establish the IP connection for a while before ‘going live’, to let the codec evaluate the 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 statistics can be viewed via HOME home button > Cxns and use the down down arrow button and up up arrow button navigation buttons to scroll through connection statistics. 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.

 

Auto Jitter Buffer and Forward Error Correction (FEC)

If forward error correction is programmed then additional data packets are sent over a connection to replace any data packets lost. 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 forward error correction is employed. We recommend you add 100ms to the 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 if FEC is being used.

 

Fixing Jitter Buffer Settings

The default jitter-buffer setting 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 set the jitter-buffer in your codec.

 

1.Press the HOME home button button to return to the Home screen.

2.Use the navigation buttons on the front panel to select Connect and press the Ok button button.

3.Select IP and press the Ok button button.

4.Select your preferred IP Session mode and press the Ok button button.

5.Use the down down arrow button navigation button to select Setup and press the Ok button button.

6.Navigate to Jitter Buffer and press Ok button.

7.Select Fixed Buffer Level and press Ok button.

8.Use the numeric KEYPAD to enter the fixed buffer value in milliseconds and press Ok button.

 

If you change the jitter buffer setting in a codec it will only adjust to the new level when link quality is high (e.g. above 70%). This is done to ensure audio quality is not compromised. When manually programming 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 programming 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 - 999 milliseconds

 

information2

Important Note: The preceding table assumes Tieline Music is the algorithm in use. Do not use PCM (uncompressed) audio over highly contended DSL/ADSL connections without enough bandwidth to support the high connection bit rates required.