VoIP Engine portable for use in conjunction with any application or operating system.
VoIP Engine (VE) is at the core of our ARM-based VoIP applications, it provides complete PCM to packet processing. The VoIP Engine software is a software engine package that handles all the voice processing from PCM to Packet and back. Its intended use is in VoIP enabled handsets or desktop phones.
VoIP ENGINE DATA FLOW
VoIP ENGINE IS PORTABLE FOR USE ON MULTIPLE H/W AND OPERATING SYSTEMS
AVAILABLE AT VARIOUS LEVELS OF INTEGRATION
– VE source Code
– VE object Code
– VE Class Library
– VE SDK includes VE Class library and SIP Class Library
– VE Reference Kit includes Class Libraries and Sample Application code
Customizable to include multiple algorithms
ADT VoIP Engine is available on the following Platforms: Other configurations are available upon request.
- Android Operating System: Android 2.1 and later
- iOS4, and iOS5 Operating Systems
- MIPS Technologies (Imagination)
- Windows 7, and Windows Vista
The VoIP engine is purely a data processing engine. It has no interface to drivers or peripherals and performs processing solely at the request of the host application. The host application feeds the VoIP engine PCM samples from the audio input and and RTP packets from the network input. The VoIP engine in turn returns, via callbacks to the host application, PCM samples to be sent to the audio output device and RTP packets to be sent to the network interface.
- G.711 with appendices 1 PLC and 2 (discontinuous transmission)
- G.729A Vocoder
- G.722 (wideband audio) with packet loss concealment
AMR NB Vocoder*
- AMR NB (G.722.2) Vocoder *
- RTP/Jitter Buffer
- DTMF tone relay transmit (IETF RFC2833)
PCM Front End (Independently Accessible)
- HD Acoustic Echo Cancellation
- Noise Reduction*
- Tone Generation
- Gain Control
- Automatic Gain Control
- Diagnostics to assist in acoustic tuning
Future enhancements will include:
G.729AB (with Appendix B), Plug-in Codecs
High Definition Acoustic Echo Cancellation
The HD AEC is able to operate in environments where the bulk delay (audio delay to the speaker and back from the microphone due to buffering) is not known. This is notably the case in Android-based mobile phones.
- The HD AEC is based upon Adaptive Digital’s field-tested AEC technology.
- Automatically learns about the acoustics and delay based upon normal conversation.
- Requires no manual training on a per-model basis or upon handset OS updates.
- Superior Double-Talk Performance
- Supports 8 kHz and 16 kHz sampling rates
- Able to achieve greater than 40 dB of ERLE without nonlinear processor
- Supports tail length up to 256 milliseconds
- HD AEC is a newly integrated addition to Adaptive Digital’s VoIP Engine for Mobile devices.
- Full duplex performance under a wide dynamic range of audio levels.
- Supports wideband audio (16 kHz, 32 kHz, 44.1, and 48 kHz sampling rates) with no artificial cutoff of high frequencies.
- Converges within one second regardless of tail length and sampling rate.
Today’s mobile phone applications include an extraordinary amount of functionality. In the Android space in particular, writing software at the native layer is difficult not only due to the complexity of Android but also due to the anarchistic nature of open-source software in general. The best-case scenario for a developer is therefore to work at the Java layer. But for performance reasons, much functionality needs to run at the native layer.
To make mobile phone application development manageable, developers have many development kits at their fingertips to handle the native layer complexity. Adaptive Digital’s VoIP Engine brings the necessary VoIP functionality to the native layer. All the developer needs to do is access the VoIP engine using a simple API, and package the supplied VoIP Engine native layer application with the end user Android application.
VoIP Engine is supplied with a sample Java application and a sample native application that in turn interfaces with the VoIP Engine software. The sample Java application interfaces with the sample native application via Java Native Interface (JNI) to setup an RTP/IP to RTP/IP VoIP connection. Android developers can incorporate the Java sample code into more complete VoIP-enabled Android applications.
The VoIP Engine API is clean and simple to use.
ANDROID PERFORMANCE SPECS
In order to provide the best software possible, Adaptive Digital Technologies measures the performance of the VoIP Engine software package. These measurements are published in the number (in millions) of instructions needed per second for real-time, full-duplex operation. To get this data, the execution time of specific functions are measured, and averaged, over a large sample size. In order to keep this document brief, performance statistics for other platforms are not shown but are generally similar.
MIPS utilization under typical use-cases:
For reference, a 1 Gigahertz processor equals 1000 Million Instructions per Second (MIPS).
CPU UTILIZATION – LnxVoice: Linux/Cortex-a8 VoIP Engine Mips, running at 720MHz on Sitara/Beaglebone AM335x