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 any time, without notice.
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.
G.729/A/B/D/E/I/C/C+ are international standards promoted by ITU-T (http://www.itu.int/publications/itut.html) and other organizations. Implementations of these standards, or the standard enabled platforms may require licenses from various entities, including Intel Corporation.
The G729 floating-point based sample is fully compliant with the ITU-T G.729/C/C+ recommendations. Functionality, the G729 floating-point based sample is the same as of G729 sample released in Intel IPP 4.0. The only difference is that G729 floating-point based sample is implemented in floating point arithmetic and extensively uses a floating point portion of Streaming SIMD Extensions (SSE) and Streaming SIMD Extensions 2 (SSE2) instruction sets while the G729 sample was implemented in only integer arithmetic and extensively used integer portion of SSE and SSE2 instruction sets. The sample has been implemented using the Intel® IPP Speech Coding functions.
Each of 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 8KHz 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 8KHz raw PCM 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. Sample is targeted to demonstrate MT safety of a codec.
The Intel® IPP G.729 Floating-Point Based Sample for Linux* package contains the following:
./ipp_sample/speech-coding/ | |
ipplic.htm |
End User License Agreement |
support.txt | Contains information for technical support |
./ipp_sample/speech-coding/G729-float/ | |
readme.htm |
This file |
Makefile | Makefile |
build.sh |
Shell script to build the sample's executable files |
./ipp_sample/speech-coding/G729-float/api/ |
|
encg729fp.c |
G.729 functions for encoding speech |
decg729fp.c |
G.729 functions for decoding speech |
owng729fp.c |
Auxiliary functions for encoding/decoding speech |
owng729fp.h |
Coder constants, types and inner functions definition header file |
uscg729fp.c | USC interface implementation file |
scratchmem.h | Local memory definition header file |
./ipp_sample/speech-coding/G729-float/include/ |
|
usc.h | USC interface main header file |
g729api.h |
API header file |
./ipp_sample/speech-coding/G729-float/samples/ |
|
encoder.c |
USC encoder main program file |
encoder.h | USC encoder main header file |
decoder.c | USC decoder main program file |
decoder.h | USC decoder main header file |
util_d.c | decoder utility program file |
util_d.h | decoder utility header file |
util_e.c | encoder utility program file |
util_e.h | encoder utility header file |
./ipp_sample/speech-coding/G729-float/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/G729-float/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/G729-float/vm/include/src/ | |
vm_thread_linux32.c | Source file containing implementation of threading support for IA-32 platforms running Linux* |
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 G.729 floating-point based sample will be found in the ./ipp_sample/speech-coding/G729-float/ folder.
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 samples.
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 encoder samples, type:
encoder729fp [options] <inPCMFile> <outBitstreamTestFile>
Encoder option list:
-r<mode> <mode>: A - specify G.729 Annex A encoder, D - Annex D, E - Annex E, default G.729 main body encoder. Otherwise
<mode> specifies name of file where bit rates are given on per frame basis: G.729 main body, Annex D or Annex E.
-v
Voice Activity Detection enabled (VAD). Default: VAD disabled.
-n
output additional information.
-c
write to codecspeed.csv file information about encoder 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 8 KHz PCM to encode,
<outBitstreamTestFile> - output file, contains the encoded bit-stream in test vectors format.
Note: if repeater is specified (-s option) only the result of last encoding will be written into output file
To run the decoder sample, type:
decoder729fp [options] <inBitstreamTestFile> <outPCMFile>
Decoder option list:
-r<mode> <mode>: A - specify G.729 Annex A decoder, other modes are bit-stream controlled (either G.729 main body or annexes D or E bit-stream types).
See note below about the format of the bit-streams.
-n
option reports.
-c
write to codecspeed.csv file information about coder performance.
-s <rep>
repeater, how many times input file shall be decoded without reset of decoder,
default: <rep>=1
-t <num>
number of threads to perform the same decoding operation , default:
<num>=1.
<inBitstreamTestFile> - input file contains bit-stream to decode,
<outPCMFile> - output file, to write the decoded 16-bit 8 KHz PCM.
if repeater is specified (-s option) only the result of last encoding will be written into output file.
NOTE: ITU-T does not support yet test files for the G.729C/C+ codec. However, for G729 floating-point based sample testing purpose the format of intermediate bitstream files was chosen similar to the format of the test files available from ITU-T for the G.729/A/B/I simulation software.
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:
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:
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 © 2002-2004 Intel Corporation.