Tieline Technologies

IP FAQ: How do I program FEC in my IP codec?

Forward Error Correction is designed to increase the stability of UDP/IP connections. It is configurable for UDP data streams only. Both the local and remote codec FEC settings can be configured before dialing and ‘on the run’ when the codecs are connected.

Important Note: FEC can only be programmed for use with the Music, Music Plus and Voice G3 algorithms. FEC is only a benefit if link quality (LQ) displayed on your codec is below “L99 R99”.

Understanding DSL (ADSL) and FEC

In general, the higher the bit rate you require for a codec’s IP connection, the more likely it is that you will encounter connection instability. The relationship between the codec connection bit rate and your broadband uplink speed is useful to help you choose the IP settings you should use for different IP profile connections. 

The way FEC works is by sending a secondary stream of audio packets so that if your primary audio packets are lost or corrupted, then packets from the secondary stream can be substituted to correct the primary stream. The amount of FEC that you require is will depend on how many data packets are being lost over the network connection.

As an example of how FEC works, if you have a FEC setting of 20% and you are losing one packet in every five that is sent, this packet will be replaced by FEC to maintain the quality of the connection. If you are losing more packets than this, say one in three, it will be necessary to increase the FEC setting to 33% to compensate.

Please note: There is an inverse relationship between FEC settings and the jitter-buffer millisecond setting that you use for IP connections.

So why not use 100% FEC every time? The answer is because you need twice the bit rate to achieve full redundancy and depending on the link conditions, this could potentially cause more dropouts because of network congestion than it fixes. Here is a simple rule to remember: Your maximum uplink speed is all the bandwidth you have to play with. As a rule of thumb, try not to exceed more than 80% of your maximum bandwidth. If your link is shared, be even more conservative.

You should also consider the remote end too. What is their maximum upload speed? Is the connection shared at either end? Your bit rates, FEC settings and buffer rates must be pre-configured at both ends before you connect therefore so it's always better to set your connection speed and balance your FEC according to the available uplink bandwidth at each end for best performance.

FEC Setting Bitrate Ratios Connection Use
100% (Lowest delay) A simultaneous dual-redundant stream (1:1 ratio) is sent from the codec. Twice the connection bit rate is required to operate the codec using the 100% setting. For example, if your connection is at a bit rate of 14,400, you will require an additional 14,400 kilobytes of bandwidth to allow for the FEC data stream – a total of 28,800. Recommended to be used over wireless and international connections.
50% Additional data is sent by FEC in a ratio of 2:1. Recommended to be used over international & national connections
33% Additional data is sent by FEC in a ratio of 3:1. Recommended to be used over national and local connections.
20% (Highest delay) Additional data is sent by FEC in a ratio of 5:1. Recommended to be used over local and LAN connections.
Off FEC is off in the codec and the connection bandwidth is equal to the connection bit rate setting in the codec. Recommended to be used over wired LAN connections as well as managed T1 & E1 connections for STLs that have connections that aren’t shared & have quality of service (QOS).


Calculating FEC Bandwidth Requirements

As an example, if you want 15 kHz mono (using the Tieline Music Algorithm) you will need at least a 24kbps connection for audio. Adding 100% FEC will add another 24kbps making your bit rate 48kbps plus some overhead of around 10kbps. If you're on a 64kbps uplink, you should consider reducing your FEC or switching to a 7kHz audio link at 14.4kbps with the Voice G3  algorithm and 100% FEC

Here is another example, if you want 15 kHz stereo, you need at least 56kbps for the audio. 100% FEC requires at least 112kbps and 50% FEC requires at least 84kbps. If your uplink speed is 256kbps and you're on a shared connection, then choosing a lower FEC% of 20%-33% may give you better results. 

Conserving Bandwidth with FEC  

As mentioned previously, there is a trade-off between the quality and the reliability of an IP connection – particularly when FEC is activated on your codecs. However, it is possible in certain situations to set different FEC on the remote and local codecs to conserve bandwidth and create more stable IP connections.

For example, if your broadcast is a one-way broadcast from a remote site, i.e. you are not using the return path from the studio, or only using it for communications purposes, it is possible to reduce or turn off FEC at the studio codec. This effectively reduces the bandwidth required over the return link (communications channel) and increases the overall bandwidth available for the incoming broadcast signal from the remote site. This could be particularly useful if you have limited uplink bandwidth at the remote location.

Keep in mind that as you move from local to national to international connections, you should be more conservative with your FEC and connection rates.