Intel® Integrated Performance Primitives
AMR Wideband Sample for Linux*

Disclaimer
License Definitions
Overview
System Requirements
Package Contents
Installation
How to Build Source Code
Running the Software
Technical Support and Feedback
 

Disclaimer

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.

Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications. Intel may make changes to specifications and product descriptions at anytime, without notice.

License Definitions

By downloading and installing this sample, you hereby agree that the accompanying Materials are being provided to you under the terms and conditions of the End User License Agreement for the Intel® Integrated Performance Primitives product previously accepted by you. Please refer to the file ipplic.htm for more information.

AMR wideband speech codec is an international standard promoted by 3GPP and other organizations. Implementations of these standards, or the standard enabled platforms may require licenses from various entities, including Intel Corporation.

Overview

The multi-thread encoder and decoder samples included are fully compliant with the 3GPP TS 26 171, 173, 174, 190-194 specifications and have been implemented using the Intel® Integrated Performance Primitives (Intel® IPP) Speech Coding functions. This standard is also known as GSM AMRWB standard supported by ETSI and G.722.2 Recommendation supported by ITU.  Each of the two samples is a command line based application which processes a data given by single input file and stores result into output file.  The encode sample consumes 16bit 16KHz raw PCM data, produces compressed bitstream which is stored then into output file in conventional test vector format. The decode sample consumes such a file contains bitstream data, extracts a bitstream frames out, decompress them and stores it in file as 16bit 16KHz raw PCM data.

It shoud be noted that the size of an output bitstream file produced by the encoder sample should not be expected  to be smaller than the size of an input PCM file as every bit of each frame stored in bitstream file as 16bit data.    

Additional information on this software as well as other Intel® Software Development Products is available at http://developer.intel.com/software/products/.

To demonstrate that the codec implementation is thread-safe, the following procedure is performed: each thread processes its own copy of an input file independently, then the results are compared - if they are not identical an error is reported.

Note 1: This model differs from the model where many threads process the same stream in parallel, therefore it should not be expected that the given codec runs faster in the multi-threaded mode than it runs in the single-thread mode.

System Requirements

Recommended hardware:   Hardware requirements: Software requirements: 

Package Contents

The Intel® IPP AMR Wideband Sample for Linux* package contains the following files:

./ipp_sample/speech-coding/
ipplic.htm End User License Agreement
support.txt Contains information for technical support
./ipp_sample/speech-coding/AMRWB/
readme.htm This file
Makefile Makefile
build.sh Shell script to build the sample's executable files
./ipp_sample/speech-coding/AMRWB/include/
amrwb_types.h Coder type definition header file
amrwbapi.h API header
usc.h USC header file
./ipp_sample/speech-coding/AMRWB/api/
bitpack.c Bitstream pack/unpack functions file
encamrwb.c GSMAMR functions for encoding  speech file
decamrwb.c GSMAMR functions for decoding  speech file
dtx_util.c DTX functions file
ownamrwb.c Coder functions file
tab_util.c Coder tables file
util.c Auxiliary functions
uscamrwb.c USC functions file
ownamrwb.h Coder constants, types and inner functions definition header file
scratchmem.h Scratch/stack memory management header file
./ipp_sample/speech-coding/AMRWB/samples/
encoder.c Encoder main program file
encoder.h Encoder main header file
decoder.c Decoder main program file
decoder.h Decoder main header file
util_e.c Encoder utilities file
util_e.h Encoder utilities header file
util_d.c Decoder utilities file
util_d.h Decoder utilities header file
./ipp_sample/speech-coding/AMRWB/vm/include/  
vm_thread.h Header file containing definition of cross platform functionality, which provides threading support
vm_types.h Header file containing definition of cross platform types, which are used in definitions of cross platform functionality
./ipp_sample/speech-coding/AMRWB/vm/include/sys/
vm_types_linux32.h Header file containing definition of cross platform types for IA-32 platforms running Linux*
./ipp_sample/speech-coding/AMRWB/vm/src/
vm_thread_linux32.c Source file containing implementation of threading support for IA-32 platforms running Linux*

Installation

Extract all files in l_ipp-sample-speech-coding_*.tgz to a desired folder. Please make sure to preserve the directory structure. The files for the AMRWB sample will be found in the ./ipp_sample/speech-coding/AMRWB/ folder.

How to Build Source Code

Verify that the IPPROOT environment variables contain the path where the IPP package is installed.

Evaluation Users: If you are using an Evaluation version of Intel(R) IPP, please make sure that IPPROOT is changed to: /opt/intel/ipp41_eval/ia32_itanium (using the default install directory).

Execute the file build.sh to build the AMRWB coder sample.

Running the Software

After building, be sure that the LD_LIBRARY_PATH environment variable includes the directories of the .so files from the Intel® IPP installation. This can be accomplished by entering the following at the command prompt:    

export LD_LIBRARY_PATH=/opt/intel/ipp41/ia32_itanium/sharedlib:/opt/intel/ipp41/ia32_itanium/sharedlib/linux32:$LD_LIBRARY_PATH

or by running the shell script ippvars32.sh from the Intel® IPP installation (located in /opt/intel/ipp41/ia32_itanium/tools/env/ by default).

To run one of the AMRWB encoder sample, type: 

encodergsmamr [options] <inPCMFile> <outBitstreamTestFile> 

Encoder option list: 

     -r660|r885|r1265|r1425|r1585|r1825|r1985|r2305|r2385|r<filename>  bit rates 6.6, 8.85, 12.65, 14.25, 15.85, 18.25, 19.85,23.05 or 23.85 kbit/s or bit rates given by file on per frame basis.
     -v                  VAD enabled. Default: VAD disabled. 

     -a                  input data is A-Law PCM.

     -u                  input data is Mu-Law PCM.

                          Default: input data is 16-bit linear PCM.

     -T                 don`t truncate input data to 14 bits.

     -n                  output additional information.
     -c                  write to codecspeed.csv file information about coder performance.
     -s  <rep>      repeater, how many times input file shall be encoded without reset of encoder,  default: <rep>=1
     -t  <num>      number of threads to perform the same encoding operation , default: <num>=1.

<inPCMFile> - input file contains 16-bit 16 KHz PCM to encode,

<outBitstreamTestFile> - output file, to write the encoded bit-stream,  if repeater is on only the result of last encoding will be written into output file. 

To run one of the AMRWB decoder sample, type: 

decodergsmamr [options] <inBitstreamFile> <outPCMFile> 

Decoder option list: 

     -a                  Write the output data in A-Law PCM format.

     -u                  Write the output data in Mu-Law PCM format.

                          Default: Write the output data in 16-bit linear PCM format.

     -T                 don`t truncate output data to 14 bits.

     -n                  output additional information.
     -c                  write to codecspeed.csv file information about coder performance.
     -s  <rep>      repeater, how many times input file shall be encoded without reset of encoder,  default: <rep>=1
     -t  <num>      number of threads to perform the same encoding operation , default: <num>=1.

<inBitstreamFile> - input file contains bit-stream to decode,

<outPCMFile> - output file, to write the decoded PCM,  if repeater is on only the result of last encoding will be written into output file. 

NOTE: The bit-stream and PCM files (after decode) are used in the format of the test files of  the AMRWB simulation software which is available via  ETSI official WEB site. To check the bit-to-bit exactness against them, correspondent bit-stream and PCM test files shall be used in pair.

Technical Support and Feedback

Your feedback on the Intel IPP samples is very important to us and your input will be considered for future releases.

When building original sample code, let us know if you have any problems with:

  1. Installation
  2. Compiling errors
  3. Linking errors
  4. Runtime errors or incorrect output

To receive technical support and product updates for the tools provided in this product you need to register at the Intel® Registration Center and click on "Create New Account".

For information about the Intel® IPP's FAQ's, tips and tricks, and other support information, please visit: http://support.intel.com/support/performancetools/libraries/

Note:
If you are having trouble registering or unable to access your Premier Support account, contact developer.support@intel.com. Please do not email your technical issue to developer.support@intel.com as it is not a secure medium.

To submit an issue via the Intel® Premier Support website please perform the following steps:

  1. Ensure that Java* and JavaScript* are enabled in your browser.
  2. Go to https://premier.intel.com/.
  3. Type in your Login and Password.  Both are case-sensitive.
  4. Click the "Submit" button.
  5. Read the Confidentiality Statement and click the "I Accept" button.
  6. Click on the "Go" button next to the "Product" drop-down list.
  7. Click on the "Submit Issue" link in the left navigation bar.
  8. Choose "Development Environment (tools,SDV,EAP)" from the "Product Type" drop-down list.
  9. If this is a software or license-related issue choose "Intel® IPP Samples*" from the "Product Name" drop-down list.
  10. Enter your question and complete the fields in the windows that follow to successfully submit the issue.

Please follow these guidelines when you submit a technical issue to Intel Premier Support:
http://support.intel.com/support/performancetools/libraries/ipp/sb/cs-010663.htm

For product user forum, on-line help and other support information, please visit: http://support.intel.com/support/performancetools/libraries/ipp/

Celeron, Dialogic, i386, i486, iCOMP, Intel, Intel logo, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2, Intel Inside, Intel Inside logo, Intel NetBurst, Intel NetStructure, Intel Xeon, Intel XScale, Itanium, MMX, MMX logo, Pentium, Pentium II Xeon, Pentium III Xeon, and VTune are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
 
* Other names and brands may be claimed as the property of others.
 
Copyright © 2004 Intel Corporation.