Download presentation
Presentation is loading. Please wait.
2
Understanding the Internet Low Bit Rate Coder
Jan Linden Vice President of Engineering Global IP Sound Presented by Jan Skoglund Sr. Research Scientist
3
iLBC – Background info Development started in Summer 2000
Contributed to IETF as an internet draft in Feb 2002 Accepted as work item in IETF AVT group Mar 2002 Contributed to CableLabs RFP in June 2002 Improved version to IETF, Fall 2002 ECR submitted in May 2003 Support for 20 ms frames spring 2003 Successful interoperability events Past Working Group Last call in IETF Jan 2004 April 2004 added as a mandatory codec in PacketCable 1.1 December 2004 IETF process finalized (became Experimental RFC 3951 and 3952)
4
Design Principles Free of 3rd party IPR Packet independency
extensive experience in speech coding patents by design team patent and research situation monitored since 2000 has been public in IETF since March 2002 and reviewed by independent speech coding researchers Packet independency no coding interdependency between frames increased packet loss robustness suitable for IP networks Linear Predictive Coding well know highly successful coding model novel coding techniques of residual signal
5
iLBC Features Sampling Rate: 8 kHz
Supports 30 ms and 20 ms speech frame modes Bitrate 13.3 kbps (399 bits, packetized in 50 bytes) for 30 ms frames 15.2 kbps (303 bits, packetized in 38 bytes) for 20 ms frames Computational complexity (TI C54x) 30 ms frames: appr. 18 MIPS/channel 20 ms frames: appr. 15 MIPS/channel Memory 400 Words/channel state memory (RAM) less than 4 kWords table memory (ROM) Stack and program memory requirements similar to other low bit rate codecs (e.g. G.729A)
6
The Core iLBC method Start state encoding
Gain-shape waveform matching forward in time Gain-shape waveform matching backward in time Pitch enhancement Packet loss concealment
7
iLBC Encoding Incoming speech Packets to network
8
iLBC Decoding Decoded speech Packets from network
9
20 ms vs 30 ms sub-blocks 20 ms frame size mode - 4 sub-blocks with the total length of 160 samples 30 ms frame size mode - 6 sub-blocks with the total length of 240 samples
10
20 ms vs 30 ms mode – bit allocation
240 samples encoded to 399 bits = 13.3 kbit/s (50 oct) 160 samples encoded to 303 bits = 15.2 kbit/s (38 oct) Parameter Bits LPC Start state position Start state scale Start state samples Shapes Gains 40 4 6 174 115 60 Total 399 Parameter Bits LPC Start state position Start state scale Start state samples Shapes Gains 20 3 6 171 67 36 Total 303
11
Advantage over CELP original iLBC g729 g723 State recovery PLC
12
iLBC Performance vs G.729A & G.723.1 old version from Winter 2002
Source: Dynastat
13
iLBC Performance Equivalent or slightly lower performance than G.729E in clean. Improved robustness to packet loss compared to G.729E. iLBC showed better than G.728 in other testing.
14
Implementation Fixed Point Source Floating Point Source DSP Source
Significant signal processing skills necessary Quality / efficiency trade-off ~ 6 Months Optimization skills ~ 4 Months
15
iLBC Specifications Available in floating point , fixed point ANSI C, TIc54x, TIc55x, TIc64x,… Supports 20 and 30 ms speech frames Algorithmic delay: Same as frame size Sampling Rate: 8 kHz Bit rate: kpbs for 30ms and 15.2 kpbs for 20ms Product Frame size Complexity (max) Program Memory Data Memory Static Data Memory Dynamic Encoder Decoder Fix Per channel GIPS iLBC TIc54x 20 ms 11.5 MIPS 4.1 MIPS 17.6 2.4 1.4 2.3 30 ms 13.5 MIPS 4.4 MIPS GIPS iLBC TIc55x 7.5 MIPS 3.0 MIPS 15.6 8.8 MIPS 3.1 MIPS Memory in kWord16
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.