MELPe - enhanced MELP

The MELPe codec can transcode its bitstream directly to another rate.

Suitable for band limited or efficiency limited communication systems such as satellite links and military applications.

Military Codec

MELP DoD standard specifies a 2400 bps mode of operation

MELPe is a triple-rate low codec that supports rates of 600 bps, 1200 bps, and 2400 bps

MELP: Overview

MELP (Multi-Excited-Linear-Prediction) is a voice compression codec originally developed for and standardized by the U.S. Department of Defense (DoD) as MIL-STD-3005 in 1997 and superseded LPC-10 as the low bit rate DOD standard.  Furthering the codec’s development, enhancements were incorporated into the MELP standard.  As a result MELPe (Enhanced  MELP (Multi-Excited-Linear-Prediction) was adopted in 2001 as the new standard. MELPe incorporates lower bit rates (1200 bps, and 600 bps) and includes a noise preprocessor (NPP) which is intended to reduce many types of background noise. Additionally MELPe’s decoder incorporates a postfilter to improve voice quality.  MELPe was standardized across NATO platforms (STANAG 4591) in 2002.

DOD’s primary goal was to develop a digitally narrowband codec that could perform well in adversarial jamming conditions. Sampled at 8 kHz, MELPE achieves this by compressing digital speech to 2400 bps, 1200 bps or 600 bps.   

Adaptive Digital's MELPe Codec

Adaptive Digital’s highly optimized MELPe voice compression codec supports the following platforms: Texas Instruments’ TMS320C6000, TMS320C5000 | Arm Architectures (v5, v6, v7-A/R, Armv7E-M, Armv8-A, Armv8-R) | Linux 32-bit/64-bit | Windows x86 / x64.

Adaptive Digital has optimized MELPe to run on the  Xilinx MicroBlaze™ Soft Processor Core. A first in the industry, Adaptive Digital is opening new doors  by giving our clients the opportunity to consider FPGAs as platforms for the codec requirements.

Features List

  • Functions are C-calleble

  • Multiple channel capable

  • Improved postfilter to enhance speech quality

  • Optional noise preprocessing to reduce background noise
  • Transcodes between rates
  • Interoperable with the legacy MELP systems, enhancing speech quality of both ends
The MELPe voice channel is show in the block diagram above.

Coding Rates: 2400, 1200, and 600 bps
Sampling Rate: 8 kHz 

FRAME SIZE
The MELPe coder frame size is dependent on the Encode/Decode rate

RateFrame Size (Samples)Frame Size (msec)
600 bps72090.0
1200 bps54067.5
2400 bps18022.5

Availability

Platforms / Operating Systems / Core
Arm ® Devices – Armv7 Cortex-A5/A7/A8 / A9 / A15, | Cortex-M3 / M4 / M7 | Cortex-R5 | Legacy Arm9E/Arm11
Arm ® Devices – Armv8-A Cortex-A53 / A57 | Cortex-A72 / A73
Texas Instruments – TI TMS320C6000 C64x/C64x+, C674x, TMS320C5000 C55x / C54x
Windows x86 (32-bit) / x64 (64-bit)
Linux 32-bit / 64-bit
FPGA – Xilinx MicroBlaze 32-bit RISC Harvard architecture soft processor core

ADT MELPe is available on the above Platforms: Other configurations are available upon request.

Specifications

Description

The MELP Vocoder uses a mixed-excitation model that can produce more natural sounding speech because it can represent a richer ensemble of possible speech characteristics. The MELPe enhanced speech coders’ quality surpasses that of the original MELP vocoder. The MELPe software is capable of running multi streams (multi-channel) together, either encoding and decoding concurrently.

The MELPe codec supports three different vocoder bitrates: 2400, 1200, and 600 bps. The basic 2400 bps bitrate vocoder uses a 22.5 ms frame of speech consisting of 180 8000-Hz, 16-bit speech samples. The 1200 and 600 bps bitrate vocoders each use three and four 22.5 ms frames of speech, respectively.

These reduced-bitrate vocoders internally use multiple 2400 bps parameter sets with further processing to strategically remove redundancy. The payload sizes for each of the bitrates are 54, 81, and 54 bits for the 2400, 1200, and 600 bps frames, respectively.

The MELPe algorithm distinguishes between voiced and unvoiced speech and encodes each differently. Unvoiced speech can be coded with fewer information bits for the same quality. 

Commercial applications have arisen because of the low-bitrate property of MELPe with its (relatively) high intelligibility. Because of this, MELPe is being used in a variety of wired and radio communications systems.

Function API's

API function call summary

MELPE_ADT_initEncode (…) Initializes the MELPe encoder 
MELPE_ADT_initDecode (…) Initializes the MELPe decoder
MELPE_ADT_encode (…) Executes the MELPe encoder
MELPE_ADT_decode (…) Executes the MELPe decoder
NPP_ADT_init (…) Initializes the Melpe noise pre-processor
NPP_ADT_process (…) Executes the Melpe noise pre-processor