EVRC-WB (EVRC-C)
CODEC OVERVIEW
Enhanced Variable Rate Codec Wideband (EVRC-WB or EVRC-C) was standardized by 3GPP2 in 2007. The EVRC-C codec operates on each 20ms frame of 16-bit speech signals sampled at 8 or16 KHz and generates compressed bit-stream of 171, 80, 40, or 16 bits respectively. EVRC-C splits the speech spectrum into low frequency and high frequency bands and compresses them separately. Coding of low frequency signal is based on EVRC-B standard while a LPC based coding scheme is used for the high frequency signal. It also contains a generic audio coding mode that can be used for handling non-speech signals such as music-on-hold and ring back tones. The principal applications of this codec are wideband telephony, video-telephony, gaming, streaming and ring back tones.
SALIENT FEATURES
- Based on 3GPP2 specification.
- Optimized ASM/C implementation.
- Re-entrant implementation.
- C-callable APIs.
- Operates on speech signals sampled at 8 or 16 KHz.
- Support for selecting anchor operating mode or average rate mode during initialization time.
- Support for 8.3, 7.42, and 4.0 kbps average source encoding bit-rates.
- The maximum and minimum bit-rates can be configured during initialization.
- The noise suppression module can be configured during initialization.
- Support for dim and burst, eighth rate hangover, and null traffic frame features specified in the standard.
- Support for RTP payload format as specified in RFC 5188.
- Support for DTMF and TTY/TDD signals as specified in the standard.
- Supports integrated Packet Loss Concealment (PLC) algorithm.
- Support for post-filter operation, configurable at frame boundary.
- Supports integrated DTX mode of operation.
- Support for choosing Motorola DTX/QualComm DTX at compile time.
- Support for encoding music signals.
- Support for decoding music signals.
- Support for setting the minimum and maximum DTX update interval during initialization.
- Optional support for xDM APIs on TI platforms.
TESTING FEATURES
- Tested for bit-exactness with standard as well as a large database of non-standard test ectors.
- Module is fully interruptible.
- Tested for compliance with register preservation requirements.
- Tested for Input buffer corruption.
- Tested for I/O buffer alignment requirements.
- Tested for multi-instance implementation.
- Tested for 100% code coverage.
- Range validation for all the API parameters.
- Tested with scratch contamination at frame boundaries.
- Tested for packet loss conditions with 5% loss to 25% loss.
- TI C55x implementation validated on Spectrum Digital C5510 DSK.
- TI C64x+ implementation validated on Spectrum Digital C6455 DSK, DM6467, DM6446, and OMAP3530 platforms.