Internet Low Bitrate Codec (iLBC) is a royalty-free narrowband speech audio coding format and an open-source reference implementation (codec), developed by Global IP Solutions (GIPS) formerly Global IP Sound (acquired by Google Inc in 2011[2]). It was formerly freeware with limitations on commercial use,[3][4] but since 2011 it is available under a free software/open source (3-clause BSD license) license as a part of the open source WebRTC project.[5] It is suitable for VoIP applications, streaming audio, archival and messaging. The algorithm is a version of block-independent linear predictive coding, with the choice of data frame lengths of 20 and 30 milliseconds. The encoded blocks have to be encapsulated in a suitable protocol for transport, usually the Real-time Transport Protocol (RTP).
Filename extension |
.lbc[1] |
---|---|
Internet media type |
audio/iLBC[1] |
Magic number | '#!iLBC30\n' or '#!iLBC20\n'[1] |
Developed by | Global IP Solutions, now Google Inc |
Initial release | 2004[1] |
Type of format | Audio compression format |
Standard | RFC 3951 |
Developer(s) | Global IP Solutions, now Google Inc |
---|---|
Initial release | 2004 |
Written in | C |
Operating system | Cross-platform |
Type | Audio codec, reference implementation |
License | 3-clause BSD |
Website | https://webrtc.org/license/ilbc-freeware |
iLBC handles lost frames through graceful speech quality degradation. Lost frames often occur in connection with lost or delayed IP packets. Ordinary low-bitrate codecs exploit dependencies between speech frames, which cause errors to propagate when packets are lost or delayed. In contrast, iLBC-encoded speech frames are independent and so this problem will not occur.
iLBC is defined in RFC 3951. It is one of the codecs used by Gizmo5, WebRTC, Ekiga, Google Talk, Maemo Recorder (on the Nokia N800/N810), Polycom IP Phone, Cisco, QuteCom, Tuenti,[6] Yahoo! Messenger, Ooma[7] and many others.
iLBC was submitted to IETF in 2002[8][9] and the final specification was published in 2004.
Parameters and features
edit- Sampling frequency 8 kHz/16 bit (160 samples for 20 ms frames, 240 samples for 30 ms frames)
- Controlled response to packet loss, delay and jitter
- Fixed bitrate (15.2 kbit/s for 20 ms frames, 13.33 kbit/s for 30 ms frames)
- Fixed frame size (304 bits per block for 20 ms frames, 400 bits per block for 30 ms frames)
- Robustness similar to pulse-code modulation (PCM) with packet loss concealment, like the ITU-T G.711
- CPU load similar to G.729A, with higher basic quality and better response to packet loss
- Royalty-free
- Since 2011 it is available under an open source (3-clause BSD license) license as a part of the open source WebRTC project.[5] (previously commercial use of the source code supplied by GIPS required a licence[10])
- PSQM testing under ideal conditions yields mean opinion scores of 4.14 for iLBC (15.2 kbit/s), compared to 4.3 for G.711 (μ-law)
See also
editReferences
edit- ^ a b c d Duric, Alan; Andersen, Soren Vang (2004). "Real-time Transport Protocol (RTP) Payload Format for internet Low Bit Rate Codec (iLBC) Speech". Retrieved 2011-06-23.
- ^ Dana Blankenhorn (2010-05-18). "Why Google bought Global IP Solutions". ZDNet. Archived from the original on May 21, 2010. Retrieved 2011-06-23.
- ^ "Global IP Solutions iLBC Freeware Public License" (PDF). 2008-10-30. Archived from the original (PDF) on October 30, 2008. Retrieved 2011-06-23.
- ^ "iLBCfreeware". Archived from the original on December 19, 2008.
- ^ a b "iLBC Freeware". Archived from the original on 2011-07-05. Retrieved 2011-06-23.
- ^ "Tuenti+WebRTC (Voip2day 2014)".
- ^ Ooma * codes, 12 May 2015
- ^ Roar Hagen, Speech Coders - a VoIP perspective, retrieved 2011-06-23
- ^ Duric, Alan; Andersen, Steven C. (2002). "Internet Low Bit Rate Codec - draft-andersen-ilbc-00.txt". Retrieved 2011-06-23.
- ^ "former GIPS license" (PDF). Archived from the original (PDF) on October 30, 2008.