Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Intel® IPP 9.0 Beta is available

Chao_Y_Intel
Moderator
626 Views

Intel® IPP 9.0 Beta is now available.  The release added the new Intel® AVX-512 optimization for the computer vision and image processing functions, extended optimization for Intel® Atom™ and Intel® Quark™ processors, added the new APIs to support external threading, and provided the custom dynamic library building tool, which enables users to build the dynamic library containing the selected Intel® IPP functions.
 
We also provide some options on the deprecated IPP functions.  Please find more information on Intel IPP 9.0 Beta release note

Intel IPP 9.0 beta release is available as a part of the Intel Parallel Studio XE 2016 Beta, or Intel System Studio 2016 Beta now.

To sign up for the Intel System Studio 2016 Beta, visit this page.

To sign up for the Intel Parallel Studio XE 2016 Beta, visit this page.

Your feedback and question is welcome during your evaluation.

0 Kudos
10 Replies
Royi
Novice
626 Views

Hi,

Could you check the Gaussian Blur is faster than the Separable Filter (Given a Gaussian Kernel)?

It seems it is not optimized well enough and using the separable version is faster (Though the Gaussian version can take advantage of the symmetry of the Kernel).

Could you shed more details about the new Multi Threading API?

0 Kudos
Igor_A_Intel
Employee
626 Views

Hi Royi,

Gaussian Blur function is based internally on calls to ippiFilterRow/ColumnPipeline. Please, don't use the word "seems", please provide the reproducible code for your statements - in this case we can help you to find mistakes/misprints/incorrectness's in your approach.

regards, Igor

0 Kudos
Royi
Novice
626 Views

Hi Igor,

Why not take advantage of the symmetry of the Gaussian Kernel when using its 1D form?
It will reduce the number of multiplications by almost half.

Could you shed more details on the Multi Threading API?

Thank You.

0 Kudos
Chao_Y_Intel
Moderator
626 Views

Royi,

 

Regarding the external threading,  here is some details:

In the IPP 9.0 release:
1) The external threading is recommended, which is more  effective than the internal threading
2) To use the external threading in the high level, it often need the IPP APIs to support to handle "border" data.
3) The in APIs in the IPPs are updated to support this.


Let me give a ippsFIR_32f functions example, the following is using the external threadings:
The first threading: It has no history delay data(NULL),    No need to output delay data(NULL)
The last threading : It use previous data for the border(pSrc-dlyLineLen), Output the delay line data for future use(OutDelayLine)
For Other threadings: It use previous data for the border(pSrc-dlyLineLen), and it does not need to output delay data(NULL)

 

dlyLineLen = tapLen -1;//the delay line is used to keep old data.

ippsFIRSRGetSize_32f(… &specSize,&bufSize );
ippsFIRSRInit_32f(filterTaps,tapLen,…,pSpec );

len = LEN/NUNTHREADS; //simplified code, not consider for tail data

for(iThread=0;iThread< NUNTHREADS;iThread++)//it means parallel for
{
  Ipp32f* pSrc  = input+iThread*len;
  Ipp32f* pDst = ouput+iThread*len;
 
  if( iThread == 0)
     ippsFIR_32f( pSrc, pDst, len, pSpec, NULL, NULL , buffer);

  else if (iThread == NUMTHREADS - 1)
     ippsFIR_32f(pSrc, pDst, len, pSpec, pSrc-dlyLineLen,OutDlyLine, buffer);
  else
     ippsFIR_32f(pSrc,pDst, len, pSpec,  pSrc-dlyLineLen, NULL , buffer);
}

If you have chance to look at these APIs, let us know you feedback.

Thanks,
Chao

0 Kudos
Roman_S_3
Beginner
626 Views

What are the alternatives for speech processing function (ippSC)?

0 Kudos
Chao_Y_Intel
Moderator
626 Views

Roman,

Have you used any speech codec function in your application?  If so, which codecs are you using?

Thanks,
Chao

0 Kudos
Roman_S_3
Beginner
626 Views

Chao,

Yes, we are currently using AMR, AMR-WB, iLBC, Silk, Opus, G.722.1, G.729 and G.722 codecs implementations based on IPP.

So we use the following functions (and I am probably missing a few):

  • ippsAdaptiveCodebookContribution_G729_32f
    ippsAdaptiveCodebookGainCoeffs_GSMAMR_16s
    ippsAdaptiveCodebookSearch_GSMAMR_16s
    ippsAutoCorrLagMax_32f
    ippsAutoCorr_32f
    ippsAutoCorr_GSMAMR_16s32s
    ippsCrossCorrLagMax_32f64f
    ippsDCTFwd_G722_16s
    ippsDCTInv_G722_16s
    ippsDecodeAdaptiveVector_G729_32f_I
    ippsDecomposeDCTToMLT_G722_16s
    ippsDecomposeMLTToDCT_G722_16s
    ippsGainControl_G729_32f_I
    ippsHarmonicFilter_32f_I
    ippsHighPassFilterInit_G729
    ippsHighPassFilterSize_G729
    ippsHuffmanEncode_G722_16s32u
    ippsIIRGetStateSize_32f
    ippsIIRInit_32f
    ippsInterpolateC_G729_32f
    ippsInterpolateC_NR_G729_16s_Sfs
    ippsInterpolate_G729_16s
    ippsLPCToLSP_GSMAMR_16s
    ippsLSFDecodeErased_G729_32f
    ippsLSFDecode_G729B_32f
    ippsLSFToLSP_GSMAMR_16s
    ippsLSPToLPC_G729_32f
    ippsLSPToLPC_GSMAMR_16s
    ippsLSPToLSF_Norm_G729_16s
    ippsLevinsonDurbin_G729_32f
    ippsLevinsonDurbin_GSMAMR_32s16s
    ippsOpenLoopPitchSearchDTXVAD1_GSMAMR_16s
    ippsOpenLoopPitchSearchDTXVAD2_GSMAMR_16s32s
    ippsPreemphasize_32f_I
    ippsQMFDecode_G722_16s
    ippsQMFEncode_G722_16s
    ippsSynthesisFilter_G729_32f
    ippsSynthesisFilter_NR_16s_Sfs
    ippsVAD1_GSMAMR_16s
    ippsVAD2_GSMAMR_16s
    ippsWinHybridGetStateSize_G729E_32f
    ippsWinHybrid_G729E_32f
0 Kudos
Neil_Gunn
Beginner
626 Views

I am very surprised to see that Intel is dropping the codecs from the IPP library.  We are using a lot of the speech codecs and video codecs from the IPP library in our application: G.711, G.729, AMR, AMR-WB, G.722, H.263, MPEG-4, and H.264.  Is the Media SDK going to provide support for all of these? As far as I am aware, only H.264 is currently supported?

0 Kudos
Chao_Y_Intel
Moderator
626 Views

Neil, 

thanks for the feedback. I will check some details with you if some legacy libraries can provide some help for your problem. 

Regards,
Chao


 

0 Kudos
Chao_Y_Intel
Moderator
626 Views
Hi All, the legacy libraries are available now. Please check this article to download and lean the usage of the libraries: https://software.intel.com/en-us/articles/intel-ipp-legacy-libraries Thanks, Chao
0 Kudos
Reply