Packet loss concealment
# Packet loss concealment

Packet loss concealment (PLC) is a technique to mask the effects of packet loss in voice over IP (VoIP) communications. When the voice signal is sent as VoIP packets on an IP network, the packets may (and likely will) travel different routes. A packet therefore might arrive very late, might be corrupted, or simply might not arrive at all. One example case of the last situation could be, when a packet is rejected by a server which has a full buffer and cannot accept any more data. Other cases include network congestion resulting in significant delay. In a VoIP connection, error-control techniques such as automatic repeat request (ARQ) are not feasible and the receiver should be able to cope with packet loss. Packet loss concealment is the inclusion in a design of methodologies for accounting for and compensating for the loss of voice packets.

## PLC techniques

* Zero insertion: the lost speech frames are replaced with silence.
* Waveform substitution: the missing gap is reconstructed by repeating a portion of already received speech. The simplest form of this would be to repeat the last received frame. Other techniques account for fundamental frequency, gap duration etc. Waveform substitution methods are popular because of their simplicity to understand and implement. An example of such an algorithm is proposed in International Telecommunication Union (ITU) recommendation G.711 Appendix I.
* Model-based methods: algorithms that take advantage of speech models of interpolating and extrapolating speech gaps have been introduced and developed.

## Use

PLC is used with the codecs Internet Low Bitrate Codec (iLBC) and SILK in Skype, in Jitsi with the SILK and Opus codecs, and in the pjsip stack used by CSipSimple. Google Duo uses WaveNetEQ, a generative model based on DeepMind/Google AI’s WaveRNN.

