iLBC Speech Codec
internet Low Bitrate Codec
iLBC ia a high-complexity speech codec suitable for robust voice communication over IP.
Features List
- The only codec ever to be standardized by the IETF
- Royalty-free with speech quality better than G.729A and G.723.1.
- Better packet loss robustness compared to other low-bit rate codecs, including G.729A, G.729E, G.723.1 and G.728
- iLBC supports multiple frame sizes giving increased flexibility to meet the needs of different applications and/or VoIP equipment
- iLBC delivers the same basic quality as G.729E and exceeds G.729E under packet loss conditions
ILBC DELIVERS SPEECH QUALITY BETTER THAN G.729A AND EQUAL TO G.729E, WHILE OFFERING SIGNIFICANTLY BETTER QUALITY OVER CONGESTED NETWORKS WITH PACKET LOSS.
Availability
Platforms |
Arm ® Devices Armv7-A / Armv8-A / Armv9-A || Armv7-M / Armv8-M || Legacy Cortex-M3 |
Texas Instruments – TI TMS320C6000 C64x/C64x+/C66x, C674x, TMS320C5000 C55x / Legacy C54x |
Win32 DLL / Static LIB |
Linux 32 Bit / 64 Bit |
ADT iLBC is available on the above Platforms: Other configurations are available upon request.
Specifications
NOTE: We specify MIPS (Millions of Instructions Per Second) as MCPS (Millions of Instruction Cycles Per Second). Unless otherwise specified, peak MIPS are indicated.
↓ Click on links below to view specification tables.
iLBC Armv9-A Neoverse N2
CPU UtilizationThe ARM Neoverse is a group of 64-bit ARM processor cores.
Function | MIPS |
iLBC 30 Wideband WB | 6.2 |
iLBC 20 Narrowband NB | 5.6 |
iLBC ARM Cortex-A8 / A9 / A15 || Armv7-A, Armv8-A
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
Function | MIPS @20ms | MIPS @30ms | Program Memory | Data Memory | Per Channel Data Memory |
Encode | 30 | 36 | 79768 | 3165 | 688 |
Decode | 9 | 10 | 2032 |
iLBC ARM Cortex-M4
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
Function | MIPS @20ms | MIPS @30ms | Program Memory | Data Memory | Per Channel Data Memory |
Encode | 35 | 40.5 | 78448 | 3165 | 688 |
Decode | 9.5 | 10.3 | 2032 |
iLBC ARM Cortex-M7 – Estimate
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
Function | MIPS @20ms | MIPS @30ms | Program Memory | Data Memory | Per Channel Data Memory |
Encode | 21 | 24.3 | 78448 | 3165 | 688 |
Decode | 5.7 | 6.18 | 2032 |
iLBC ARM Cortex-M33/M35 – Estimate
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
Function | MIPS @20ms | MIPS @30ms | Program Memory | Data Memory | Per Channel Data Memory |
Encode | 29.4 | 34 | 78448 | 3165 | 688 |
Decode | 8 | 8.7 | 2032 |
iLBC C64x / C64x+ / C66x /C674x
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
Function | MIPS @20ms | MIPS @30ms | Program Memory | Data Memory | Per Channel Data Memory | |||
Processor | C64x | C64x+ | C64x | C64x+ | C64x | C64x+ | C64x/C64x+ | C64x/C64x+ |
Encode | 30.3 | 29.1 | 37.3 | 35.8 | — | — | — | 288 |
Decode | 8.8 | 8.1 | 9.4 | 8.7 | — | — | — | 2032 |
Decode / Enable | 39.1 | 37.2 | 46.7 | 44.5 | 78.4 k | 56.7 k | 3495 | 2720 |
iLBC C55x
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
Codec Mode | MIPS | Program Memory | Data Memory | Per Channel Data Memory |
20 ms | 11.12 | 29350 | 6848 | 1359 |
30 ms | 12.65 | 29350 | 6848 | 1359 |
iLBC C54x
CPU Utilization & Memory RequirementsAll Memory usage is given in units of 16 bit word.
Codec Mode | MIPS | Program Memory | Data Memory | Per Channel Data Memory |
20 ms | 15.65 | 15446 | 4560 | 1357 |
30 ms | 17.95 | 15446 | 4560 | 1357 |
iLBC Win32 (Dll and Static lib)
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
Function | MIPS @20ms | MIPS @30ms | Program Memory | Data Memory | Per Channel Data Memory |
Encode | 2.2 | 2.5 | 44623 | 6916 | 832 |
Decode | 0.5 | 0.6 | 2032 |
iLBC 32 Bit*
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
*Contact Sales for 64 bit numbers.
Function | MIPS @20ms | MIPS @30ms | Program Memory | Data Memory | Per Channel Data Memory |
Encode | 2.3 | 2.5 | 58636 | 3268 | 688 |
Decode | 0.7 | 0.66 | 2032 |
Description
iLBC ia a high-complexity speech codec suitable for robust voice communication over IP. iLBC is the first codec ever to be standardized by the IETF (RFC3951 and RFC3952) and is designated by CableLabs as a mandatory component of PacketCable voice-over-cable telephony systems. iLBC, uses a block-independent linear-predictive coding (LPC) algorithm and has support for two basic frame lengths: 20 ms at 15.2 kbit/s and 30 ms at 13.33 kbit/s.
Other standard low bit rate codecs make use of dependencies between speech frames, resulting in error proliferation when packets are lost or delayed. In contrast, iLBC encoded speech frames are independent. This unique technology gives iLBC robustness against packet loss and delay.
Function APIs
API function call summary
iLBCFIX_GIPS_decoderinit(): initialize an iLBC decode channel
iLBCFIX_GIPS_encode(): perform iLBC encode
iLBCFIX_GIPS_decode(): perform iLBC decode