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 zero
- 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: an increasing number of algorithms that take advantage of speech models of interpolating and extrapolating speech gaps are being introduced and developed.
Use
PLC is used with the codecs Internet Low Bitrate Codec (iLBC)[1][2] and SILK[3] in Skype, in Jitsi with the SILK and Opus codecs,[4][5] and in the pjsip stack used by CSipSimple.[6] Google Duo uses WaveNetEQ, a generative model based on DeepMind/Google AI’s WaveRNN.[7]
References
- "blog.radvision.com". Archived from the original on 2012-06-12.
- "ANALYSIS AND EVALUATION OF THE SKYPE AND GOOGLE-TALK VOIP SYSTEMS". CiteSeerX 10.1.1.81.4153. Cite journal requires
|journal=
(help) - "SILK_RTP_PayloadFormat.pdf" (PDF).
- https://web.archive.org/web/20161230114150/https://java.net/nonav/projects/jitsi/lists/commits/archive/2013-04/message/192
- "Opus Codec". opus-codec.org.
- "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com.
- "Improving Audio Quality in Duo with WaveNetEQ". Google AI Blog. Retrieved 2020-04-01.