Note to Defense Contractor Management
MELPe software and hardware functionality is COTS, available in various form-factors ranging from small chip-level modules to board-level.
When engineers tell management that C54xx and C55xx MELP is not COTS -- or they provide the familiar confidence that source code available online can easily be converted to a form compatible with in-house hardware -- they are likely making some incorrect assumptions. Like other standardized speech codecs, the NSA/NATO MELPe algorithm (STANAG 4591) is available in source code form. Nevertheless, a competent, highly experienced DSP engineer still faces a time-consuming, difficult challenge -- a minimum of 4 months, and even then the result may accumulate into a unwieldly collection of files, rather than a well-organized, efficient code base. Typically the large firm assigns one "DSP guru" to the task, thinking it's business as usual. But things have a way of changing; DSP development is no longer the small group, "single threaded" development situation it once was.
Not What You Would Expect
Why? Well, to start with, the NSA source is not what you would expect. Some interesting facts:
It is 100% assembly language. There is no C source. It does not contain the words "void main" -- ask your engineers to grep for that, if you don't believe me.
It does not conform to standard C environment conventions, including stack usage, function calling parameters, heap usage, link and debug support for standard COFF sections such as .text, .bss, .sysmem, etc.
It is not supported with standard Texas Inst Code Composer Studio (CCS) software projects, including DSP/BIOS version or ExpressDSP / XDAIS algorithm standard version.
The NSA release contains real-time problems at 1200 bps. It will pass test vectors, but will not run in real-time given a wide range of arbitrary input data. It will eventually hang given enough audio input to cause the necessary combination of conditions.
Issues of memory usage, including far-mode support, are not addressed and will take additional engineering time.
C55xx architecture new features are not supported.
Unless your engineers take additional time to rework and redesign the NSA release, it may morph into a mixture of files containing obscure combinations of assembly language, C code, and non-standard linking options, maintainable by one or two persons -- as long as those persons continue to work at your company. After he/she leaves, it can become an unsupportable code base.
What We Did
Signalogic has addressed this situation over an extended and sustained period of MELP algorithm support since 1999. In addition to upgrading the source code, we have:
Added support for RS-422 or other synchronous byte-stream transmission of compressed data, including byte-packing across 54-bit and 81-bit packet boundaries, and bitstream sync acquisition
Added variable framesize to the MELPe algorithm to allow packet-size matching in situations where MELP must be transcoded to standard G.7xx VoIP codecs. For example, a 20 msec packet size (160 samples) may be used, vs. the MELPe standard of 22.5 msec (180 samples)
Corrected algorithm-level coding errors, including pitch and gain calculation and interpolation, and enabled these corrections at run-time with a software initialization property in a "MELPe-Plus" version.
Created demo builds in CCS that include transcoding, dynamic algorithm adaptation to different bit-rates and other parameters
Added software PLL to maintain sync between analog and digital domain clocks
Executive Summary
Thanks for taking the time to read this. I continue to encounter large companies spending years and huge amounts of tax dollars on gov and mil projects to recreate what is already available off-the-shelf. Our MELP efforts have extended over a period years, carefully and painstakingly balanced between optimization, bit-exactnesss, and compatibility with embedded system coding standards. We are always cognizant of new DSP techniques and trends, and we pay constant attention to compatiblity with future DSP and VoIP technology. We have strong incentive to work to create a maintainable code base, because for us the objective is not a "one off" project or product, but a series of customers.
Signalogic continues to create increasingly advanced, complete working systems, both hardware and software that integrate speech codecs such as MELPe with other functions such as modem and VoIP. If you are at Director level or above, please don't hesitate to call me to discuss further.
Jeff Brower
Signalogic
President