Changes between Version 10 and Version 11 of Intel_IPP_Codecs


Ignore:
Timestamp:
Sep 20, 2008 9:43:33 AM (11 years ago)
Author:
bennylp
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Intel_IPP_Codecs

    v10 v11  
    88The Intel IPP can be used with PJMEDIA library to provide the following codecs: 
    99 
    10  || '''Codec''' || '''Bitrate (Kbps)''' || '''Clock rate/'''[[BR]]'''frame ptime''' || '''default'''[[BR]]'''frames/pkt''' || '''default'''[[BR]]'''bitrate''' || '''VAD/DTX'''  || '''PLC'''      || '''Note''' || 
     10 || '''Codec''' || '''Bitrates (Kbps)''' || '''Clock rate/'''[[BR]]'''samples per frame''' || '''default'''[[BR]]'''frames/pkt''' || '''default'''[[BR]]'''bitrate''' || '''VAD/DTX'''  || '''PLC'''      || '''Note''' || 
    1111 || '''AMR NB'''     || 4.75 to 12.2           || 8000/160      || 4 || 5900  || internal       || internal       ||                  || 
    1212 || '''AMR WB'''     || 6.6 to 23.85           || 16000/320     || 1 || 15850 || internal       || internal       ||                  || 
     
    1515 || '''G.726'''      || 16, 24, 32, 40         || 8000/80       || 2 || -     || pjmedia        || pjmedia        || The bitrate is negotiated in SDP || 
    1616 || '''G.728'''      || 16                     || 8000/80       || 2 || 16000 || pjmedia        || internal       ||                  || 
    17  || '''G.729A'''     || 8                      || 8000/80       || 2 || 8000  || pjmedia        || internal       || 1) G.729 VAD (Annex B) is currently disabled.[[BR]] 2) Annex D and Annex E is supported for receive direction. || 
     17 || '''G.729A'''     || 8                      || 8000/80       || 2 || 8000  || internal       || internal       || 1) Annex D and Annex E is supported for receive direction. || 
    1818 
    1919[[BR]] 
     
    2525 * PJSIP version 1.0-rc1 or above 
    2626 * Intel IPP library for your platform 
    27  * Intel IPP samples 
    28  
    29 We tested with Intel IPP version 5.3. You may be able to use different Intel IPP version with PJMEDIA, however we have not tested this.  
    30  
    31 Note that the use of Intel IPP may require license, both from Intel and the parties who own the royalty of the codec. 
     27 * Intel IPP samples for your platform 
     28 
     29We tested with Intel IPP version 5.3. You may be able to use different Intel IPP versions with PJMEDIA, however we have not tested this.  
     30 
     31{{{ 
     32#!html 
     33<TABLE border=0 width="600" bgcolor=#E0E6FF><TR><TD> 
     34}}} 
     35 
     36 '''Note that the use of Intel IPP may require licenses, both from Intel and the parties who own the royalty of the codec.''' 
     37 
     38{{{ 
     39#!html 
     40</TD></TR></TABLE> 
     41}}} 
     42 
    3243 
    3344[[BR]] 
     
    4253 1. Download Intel IPP and Intel IPP samples from http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm 
    4354 1. Run the Intel IPP installer (e.g. ''w_ipp_ia32_p_5.3.3.082.exe''). The default installation will install it to {{{C:\Program Files\Intel\IPP\5.3.3.082}}} folder, and this is the folder that will be referred to by this tutorial. 
    44  1. Unzip the Intel IPP samples (e.g. ''w_ipp-samples_p_5.3.095.zip'') to a folder. This tutorial assumes that the samples are installed in {{{C:\ipp-samples}}}. 
     55 1. Unzip the Intel IPP samples (e.g. ''w_ipp-samples_p_5.3.095.zip'') to a folder. This tutorial assumes that the samples are installed in {{{C:\ipp-samples}}}, but it can be installed anywhere else with some modifications to the instructions below. 
    4556 
    4657==== Build the IPP samples ==== 
     
    4960 1. Open the {{{readme.htm}}} file, and follow the instructions there to build the samples from the source. 
    5061 
    51 Once the build process done, you should have '''{{{usc.lib}}}''' file somewhere inside {{{speech-codecs\bin}}} directory (in my case, it's in {{{C:\ipp-samples\speech-codecs\bin\win32_cl9\lib}}} folder). 
    52  
    53 If you have any problems with installing and/or building the IPP or IPP samples, please read the documentation or contact Intel for support. 
     62Once the build process done, you should have '''{{{usc.lib}}}''' file somewhere in a directory inside {{{speech-codecs\bin}}} directory (in my case, it's in {{{C:\ipp-samples\speech-codecs\bin\win32_cl9\lib}}} folder). The directory name corresponds to the platform where the samples are built for. 
     63 
     64If you have any problems with installing and/or building the IPP or IPP samples, please read the IPP documentation or contact Intel for support. 
    5465 
    5566==== Configure Visual Studio ==== 
    5667 
    57  1. Add Intel IPP include and library path to Visual Studio paths. For example if 32bit Intel IPP is installed in {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32}}} directory: 
    58        - add {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32\include}}} to the include path 
    59        - add {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32\stublib}}} to the library path 
    60  1. Add Intel IPP samples include and library path to Visual Studio directory options. For example, if Intel IPP samples are in {{{C:\ipp-samples}}}: 
     68 1. Add Intel IPP include and library paths to Visual Studio paths. For example if 32bit Intel IPP is installed in {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32}}} directory: 
     69       - add {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32\include}}} to the VS include path 
     70       - add {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32\stublib}}} to the VS library path 
     71 1. Add Intel IPP samples include and library path to Visual Studio paths. For example, if Intel IPP samples are located in {{{C:\ipp-samples}}}: 
    6172    - add {{{C:\ipp-samples\speech-codecs\core\usc\include}}} to the include path 
    62     - add {{{C:\ipp-samples\speech-codecs\bin\win32_cl9\lib}}} to the library path 
     73    - add {{{C:\ipp-samples\speech-codecs\bin\win32_cl9\lib}}} to the library path. Please replace {{{win32_cl9}}} with the actual directory name where the file '''{{{usc.lib}}}''' is found. Please see the IPP build instructions above. 
     74 
     75Note that you still need to enable IPP support in your {{{config_site.h}}} in order to use the IPP features. This will be explained in later sections. 
    6376 
    6477 
     
    6881 
    6982 1. Download Intel IPP and Intel IPP samples from http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm 
    70  1. Extract the archive to a temporary folder and run the installer (e.g. ''./install.sh''). The default installation options will install it to ''"/opt/intel/ipp/"'' directory (e.g. ''"/opt/intel/ipp/5.3.1.062/ia32/"''). 
     83 1. Extract the archive to a temporary folder and run the installer (e.g. ''./install.sh''). The default installation options will install it to ''"/opt/intel/ipp/"'' directory (e.g. ''"/opt/intel/ipp/5.3.1.062/ia32/"'' in my case). 
    7184 1. Extract IPP samples to a directory (e.g. to ''"~/Desktop/ipp-samples"''). 
    7285 
    7386 
    7487==== Build the IPP samples ==== 
    75  1. Go to the directory where IPP samples have been extracted (e.g. {{{~/Desktop/ipp-samples}}}). 
     88 1. Go to the directory where IPP samples have been extracted to (e.g. {{{~/Desktop/ipp-samples}}}). 
    7689 1. Go to {{{speech-codecs}}} folder. 
    7790 1. Open the {{{readme.htm}}} file, and follow the instructions there to build the samples from the source. 
    7891 
    79 Once the build process done, you should have '''{{{libusc.a}}}''' file somewhere inside {{{speech-codecs\bin}}} directory (in my case, it's in {{{~/Desktop/ipp-samples/speech-codecs/bin/linux32_gcc3/lib}}} directory). 
    80  
    81 If you have any problems with installing and/or building the IPP or IPP samples, please read the documentation or contact Intel for support. 
     92Once the build process done, you should have '''{{{libusc.a}}}''' file somewhere in a directory inside {{{speech-codecs\bin}}} directory (in my case, it's in {{{~/Desktop/ipp-samples/speech-codecs/bin/linux32_gcc3/lib}}} directory). The directory name corresponds to the platform where the samples are built for. 
     93 
     94If you have any problems with installing and/or building the IPP or IPP samples, please read the IPP documentation or contact Intel for support. 
    8295 
    8396 
    8497==== Running "configure" with IPP support ==== 
    8598 
    86 The {{{configure}}} script needs to be invoked with IPP options in order to set up IPP include and library paths. 
     99The {{{configure}}} script needs to be invoked with the appropriate IPP options in order to set up IPP include and library paths. 
    87100 
    88101For this tutorial, we'll use two environment variables to hold the location of IPP and IPP samples. Sample ''bash'' session to run the {{{configure}}} script: 
     
    126139 }}} 
    127140 
     141=== Verifying Intel IPP Codecs Support === 
     142 
     143To verify that Intel IPP codecs supports are present, you can run [http://www.pjsip.org/pjsua.htm pjsua] and enter "Cp" (codec priority) command from the menu. It should display all IPP codecs that are enabled at compile time, e.g.: 
     144 
     145{{{ 
     146>>> Cp 
     147List of codecs: 
     148  130   speex/16000/1 
     149  129   speex/8000/1 
     150  128   speex/32000/1 
     151  128   iLBC/8000/1 
     152  128   GSM/8000/1 
     153  128   PCMU/8000/1 
     154  128   PCMA/8000/1 
     155  128   G722/16000/1 
     156  128   AMR/8000/1 
     157  128   AMR-WB/16000/1 
     158  128   G729/8000/1 
     159  128   G723/8000/1 
     160  128   G726-32/8000/1 
     161  128   G728/8000/1 
     162  128   G7221/16000/1 
     163  128   G7221/16000/1 
     164  0     L16/44100/1 
     165  0     L16/44100/2 
     166  0     L16/8000/1 
     167  0     L16/8000/2 
     168  0     L16/11025/1 
     169  0     L16/11025/2 
     170  0     L16/16000/1 
     171  0     L16/16000/2 
     172  0     L16/22050/1 
     173  0     L16/22050/2 
     174  0     L16/32000/1 
     175  0     L16/32000/2 
     176  0     L16/48000/1 
     177  0     L16/48000/2 
     178 
     179Enter codec id and its new priority (e.g. "speex/16000 200"), empty to cancel: 
     180Codec name ("*" for all) and priority: 
     181}}} 
     182 
     183 
     184=== Manipulating IPP Codecs === 
     185 
     186To change the IPP codec properties at run-time (e.g. to enable/disable, change the priority, bitrate, vad/plc setting, etc.), use the usual codec manipulation API that is available from both PJSUA-LIB or PJMEDIA. 
     187 
     188More information is available in [wiki:#using Using in Application] section below. 
     189 
    128190 
    129191[[BR]] 
     
    163225---- 
    164226 
    165 == Using in Applications == 
     227== Using in Applications == #using 
    166228 
    167229=== Codec Registration === 
     
    208270=== Bitrate Selection === 
    209271 
    210 For codecs that support multiple bitrates (such as G.723.1 and AMR), the encoding bitrate is currently selected by setting [http://www.pjsip.org/pjmedia/docs/html/structpjmedia__codec__param.htm pjmedia_codec_param.info.avg_bps] field. This mechanism currently contradicts the normal convention of not modifying {{{pjmedia_codec_param.info}}} part. 
    211  
    212 === Bitrate negotiation for G.722.1 and G.726 === 
    213  
    214 SDP negotiation for selecting the appropriate bitrate for these codecs is currently not supported. 
    215  
    216 === G.729 Annex B === 
    217  
    218 This currently is not supported, and instead the usual PJMEDIA VAD/DTX is used. This should be compatible with G.729 though. 
     272For codecs that support multiple bitrates (such as G.723.1 and AMR), the encoding bitrate is currently selected by setting [http://www.pjsip.org/pjmedia/docs/html/structpjmedia__codec__param.htm pjmedia_codec_param.info.avg_bps] field. This mechanism currently contradicts the normal convention of not modifying {{{pjmedia_codec_param.info}}} part of {{{pjmedia_codec_param}}}. 
    219273 
    220274=== AMR Options === 
     
    225279 
    226280Although IPP is said to be supported for MacOS X (Intel), we don't know yet how to configure this support. 
     281 
     282=== Visual Studio 6 Support === 
     283 
     284Visual Studio 6 is not supported by the Intel IPP samples build system. If you wish to use Visual Studio 6 to build the samples, replace the {{{search_compilers.bat}}} in the {{{tools\env}}} directory under the IPP samples directory with the one from the attachment of this page below. 
     285