EVRC-B
Enhanced Variable Rate Coder Speech Codec-B
EVRC-B was designed for use in wideband spread spectrum (CDMA) systems.
Features
- Functions are C-callable.
- Multi–Channel capable.
- Can be integrated with echo cancellers, and tone detection/regeneration.
- Encodes frames of 20 ms sampled at 8KHz (160 samples) using above algorithms.
- Bit-exact with all EVRCB 3GPP2 test sequences
- The implementation support run time table relocation
- Fully interruptible Code
- Efficient scratch memory management with reduced stack requirements
- The C55x implementation is xDAIS/xDM1.0 complaint
Description
Enhanced Variable Rate Coder B (EVRC-B) is a speech codec used by CDMA (Code Division Multiple Access) networks. EVRC-B is an extension to EVRC and compresses each 20 millisecond FRAMES of 8000 Hz, 16-bit sampled speech input into output frames of one of the four different sizes: Rate 1 – 171 bits/frame, Rate 1/2 – 80 bits/frame, Rate 1/4 – 40 bits/frame, Rate 1/8 – 16 bits/frame.
One significant enhancement in EVRC-B vocoder is the use of 1/4-rate frames that were not used in EVRC. The EVRC-B makes use of the intermediate coding rates through increased awareness of the nature of the individual speech samples. This provides lower average data rates compared to EVRC, for a given voice quality.
The EVRC-B decoder works on various rate packets, performs FEC and generates 20msec speech data frames. With a sampling frequency of 8000Hz the decoder output frame contains 160 input samples. The format of the output samples is assumed to be 16 bit uniformly quantized (linear).
Availability
Availability
| Platforms |
| Texas Instruments – TI TMS320C7000 C7x || TMS320C6000 C64x / C64x+ / C66x || TMS320C5000 C55x |
| Win32 Static Lib / DLL |
Specification Tables
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.
TI Processors
EVRC-B C64x
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
| Software | MIPS – Peak Loading | Program Memory | Data Memory | Scratch | Per Channel Data Memory |
| EVRC-B | 28 | 1201.8KB | 7.46KB | 3004 | 2176 |
EVRC-B C55x
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
| Software | MEGACYCLES /SEC* | Program Memory | Data Memory |
| Encode | 23.1 | 83.94 | 45.81 |
| Decode | 8.1 | 53.09 | 44.46 |
| Encode/Decode | 31.2 | 118.7 | 48.19 |
*Measured with all program, constant tables, instance and CDP in SARAM, scratch in DARAM. All performance statistics with DTMF and TTY flags turned off.
Windows
EVRC-B Win32
CPU Utilization & Memory RequirementsAll Memory usage is given in units of byte.
| Software | MIPS – Peak Loading | Program Memory | Data Memory | Scratch | Per Channel Data Memory |
| Encode | 229 | — | — | 2280 | 7244 |
| Decode | 57 | — | — | 3004 | 2180 |
| Encode/Decode | 306 | 357KB | 41KB | — | — |
API Functions
API function call summary
InitializeEVRC_BEncoderChannel (. . .) Initializes the EVRC-B encoder
InitializeEVRC_BDecoderChannel (. . .) Initializes the EVRC-B decoder
EncodeEVRC_B (. . .) Executes the EVRC-B encoder
DecodeEVRC_B (. . .) Executes the EVRC-B decoder
Applications
Wireless/Mobile/Personal Communications (base-stations and handset)