Quantcast
Channel: Intel® Integrated Performance Primitives
Viewing all 1294 articles
Browse latest View live

IppsPhase_32fc 3 times slower in 64bit

$
0
0

Hello.

I'm using IPP 8.1, in its 32 & 64bit forms, as DLLs (which I didn't compile myself, but the one who did guarantees that they are both the same version, compiled the same way).

To my experience, IppsPhase_32fc (used on the output of a 1024 bands FFT, thus around 500 pairs), which is already a pretty CPU-expensive function, is nearly three times slower in the 64bit build.

I'm using many IPP functions, and I have not noticed much difference for other functions (64bit versions sometimes very slightly slower), so it's most likely not a problem of branching, at least not a global one. It's of course not a problem of precision either, we're talking about the same _32fc here.



Has anyone experienced the same?

I haven't tested yet if it was the same deal for ATan2.


Problem installing IPP 8.1.1.174 in Linux

$
0
0

I am running the install.sh but I get the error :

./install.sh: line 307: syntax error: unexpected end of file.

The tgz was unpacked normally but the .sh seems to be missing parts.

What can I do with that?

Thanks in advance

Decode Mpeg2 Intra-Slice

$
0
0

Hello.


I try to develop mpeg 2 decoder with Intel IPP.


I want to decode Intra-Slice(P-Frame only) mpeg2 stream with it.


I use UMC::MPEG2VideoDecoder(Intel IPP Sample ver 7.1.1.013) for it.


But, if i try to decode, UMC::MPEG2VideoDecoder always return VM_NOT_ENOUGH_DATA.


So, I have question, Is it possible to decode Intral-Slice mpeg2 frame with it ?


If it posslibe, how can I decode it ?


Please advice to me.


Thank you.

Where are the AMR samples ?

The different output between run application under debugger (F5) and without debugger (Ctrl + F5) in visual studio

$
0
0

Hi all,

I have a problem with my source code.

I used IPP function to calculate matrix but the output value is different when I run application under debugger (F5) and without debugger (Ctrl + F5) in visual studio.

Do you help me explain clearly about it ?

Thanks,

Tam Nguyen

YUV422 to YUY2 (or Media SDK supported format conversion)

$
0
0

Hi,

     Media SDK does not support YUV422 format as input. How can i do YUV422 to YUY2 (or Media SDK supported format conversion) using IPP? Please give API name and how to incorporate this API with media SDK.

    For more details on Media SDK does not support YUV422 format as input: https://software.intel.com/en-us/forums/topic/517749    

Regards,

Tejash Patel

         

 

FilterBoxBorder, still not perfect?

$
0
0

I'm migrating my code from the deprecated FilterBox to the new FilterBoxBorder, and I was expecting it to fully address the problem with the old function: the need to create a temp image with proper borders.

Unfortunately, unless I'm missing something, it's still not able to do this, because it's missing a region of interest for the *source* image. Instead, it guesses it from the destination ROI, and that's only partially addressing the problem.



On this picture, if A was your image (the square itself being the full image), and you were to blur it (5x5 mask here), you would normally get B, with 2 pixels inside & outside of the image.

But all the API allows, because of the missing source ROI, is C. It's already better than the original FilterBox, but not by much, since you -still- need to create a temp image with borders, in this case, a version of A enlarged by 2 pixels & filled with the same color passed to FilterBoxBorder in ippBorderConst mode. The required border is smaller than what FilterBox required, but IppiCopyConstBorder is still needed I'm afraid.

ippiFilterBox accesses data beyond input buffer

$
0
0

I just recently noticed, that ippiFilterBox_32f_C1R can access data beyond the input buffers limits (including external border). Usually this does not cause much of a problem, but of course sometimes this can lead to an access violation. E.g. Microsofts Application Verifier can detect the issue reliably. I can reproduce with IPP 7.1 and 8.0.

An excerpt from the code triggering the problem:

void Convolution::conv2Box_IPP(Ipp32f* in, Ipp32f* out, int dataSizeX, int dataSizeY, int kSize)
{
    IppiSize inSize = { dataSizeX, dataSizeY };
    IppiSize outSize = { dataSizeX - kSize + 1, dataSizeY - kSize + 1 };
    IppiSize boxSize = { kSize, kSize };
    IppiPoint anchor = { (kSize - 1) / 2, (kSize - 1) / 2};
    int inStep = dataSizeX * sizeof(Ipp32f);
    int outStep = dataSizeX * sizeof(Ipp32f);
    Ipp32f* inOffset = in + inSize.width * anchor.y + anchor.x;
    Ipp32f* outOffset = out + inSize.width * anchor.y + anchor.x;
    ippiFilterBox_32f_C1R(inOffset, inStep, outOffset, outStep, outSize, boxSize, anchor);
}

//...
    float* a = new float[sizeY * sizeX];
    float* ai = new float[sizeY * sizeX];
//...
        Convolution::conv2Box_IPP(ai, a, sizeX, sizeY, filterSizeRho);

The input sizes are something like 400x300. The filter size equals 11 or 31.

Is this a bug in ippiFilterBox? Only in ippiFilterBox?

Must I use the ippiMalloc functions when working with ippiFilter functions? This would add quite a bit extra complexity and overhead - as the input buffer is passed in as an argument - the caller should not need to know I use IPP internally.

Any thoughts on this?

regards

Harald

PS: The Application Verifier catches the access at ippip8-8.0.dll!0956b1d0() ;  ippip8-8.0.dll    loaded at 08C40000-098D5000*   


Replacement for ippsSumWindow

$
0
0

ipp Sum Window function is deprecated now. There is very small information in documentation:

"Use vector function with vector length = 1 instead."

What function should I use?

WarpAffine vs WarpAffineQuad

$
0
0

I would have thought that WarpAffineQuad was branching to WarpAffine, and WarpPerspectiveQuad branching to WarpPerspective, is there a reason that they're not?

They differ in interpolation flags (both Quad versions are missing flags, but not the same ones). I thought it was an omission in the documentation but no, those flags aren't supported. Is it possible that those functions ARE branching to others, but they have a flag check that hasn't been updated?

The documentation hints that they are branching, but it's not very clear & maybe I'm misinterpreting.

The function ippiWarpPerspectiveQuad uses the same formulas for pixel mapping as in the

case of the WarpPerspective function. Transform coefficients are computed internally, based on the mapping

of the source quadrangle to the quadrangle dstQuad specified in the destination image pDst.

how to use Intel IPP with PJSIP G.729 codec

$
0
0

Hi,

1) I am using softphone which is built using PJSIP. Now i want to G.729 codec, i checked information on 

   http://trac.pjsip.org/repos/wiki/Intel_IPP_Codecs

2) I want to know, is Intel® IPP available through Intel® Parallel Studio XE 2015 only ?

   Is IPP libraries available separately ?

3) Also, If i have 100 users of softphone then how many licenses do i require of Intel® Parallel Studio XE 2015 

   Also for which edition should i go, Cluster or Professional  or Composer ?

pLevels of ippiHistogramEven_8u_C1R

$
0
0

Hello, I am wondering how do they calculate the pLevels in ippiHistogramEven_8u_C1R function? More specifically, if the lower level is 0, upper level is 255 and nLevels is 13, the returned pLevels of the function would be looked like this: { 0,22,44,66,87,108,129,150,171,192,213,234,255}

Now, for some reasons I need to reproduce the exact same sequence, I've tried some rounding methods such as round, floor and ceil, and so far still couldn't make it work.

Can anyone kindly tell me what method or equation do I need to use in order to get the same pLevels ??

Below is an example that I used to calculate pLevels (using round method):

   int nBins = nLevels-1;

   float binSize = (float)(upperLevel - lowerLevel) / (float)(nBins);

   for(int i=0; i<nLevels; ++i)

   {      

      float level = (float)i * binSize;

      if(level > 0)

      {

         level = floor(level + 0.5);

      }

      else

      {

         level = ceil(level - 0.5);

      }

      pLevels[i] = lowerLevel + (Ipp32s)level;

   }

And the result I get is

{0,21,43,64,85,106,128,149,170,191,213,234,255}

Any suggestions would be appreciated!

Unresolved external symbol ___intel_VEC_memzero referenced in function _png_set_dither

$
0
0

I have a custom IPP project with a custom 32-bit DLL setup.

I have a problem in IPP 8.1/8.2 in which memzero (and memset) cannot be found by the linker, and it is only in PNG module pngrtran.c it isn't resolved, assuming memset is used several other places.

If I compile using Visual Studio 2010 I haven't got this problem, but compiling with Intel Compiler 10.1.0.13 I do.

In IPP 6 and 7 I haven't got this problem.

I do use the same lib and include folders in both environments.

I tried using /verbose and I see lots of other code referring to memset and those are resolved, and also the memset referred to in pngrtran.c is actually  resolved and loaded from libircmt.lib. However, the linker still reports this:

   Creating library xxxx.exp

pngrtran.obj : error LNK2019: unresolved external symbol ___intel_VEC_memzero referenced in function _png_set_dither

pngrtran.obj : error LNK2019: unresolved external symbol ___intel_VEC_memset referenced in function _png_set_dither

xxxx.dll : fatal error LNK1120: 2 unresolved externals

The libircmt.lib file is taken from Intel Compiler 10.1.0.13, and it also contains the ___intel_VEC_memset functions.

Any ideas?

missing LIBs of IPP in Parallel Studio XE 2015

$
0
0

i'm trying to compile some IPP code (IPP_SEQUENTIAL_STATIC)

but the linker is missing some libs like

ippjmt.lib

Where can i find them?

Is IPP 8.2 complete delivered with XE 2015?

(I use XE 2015 in Testmode)

 

Ralf

Deprecated Threaded list

$
0
0

Hi,

I'm was currently updating from 8.0 to 8.2. In 8.2. a new 'threaded/deprecated' library path has been installed. I'm using many functions of the ippm (ippmAdd_mm_64f, ippmEigenValuesVectorsLeft_m_64f and so on) context. In IPP 8.2 these funtions are no longer available in a non threaded context. So, if I need these functions I have to link to libmmds.lib;libiomp5md.lib. Is there any way around? I dont want to use the deprecated threaded funtions, but need the small matrix functions. IN 8.0 I did not need to link to these libraries.

 

Regards


ippsc.lib did not found even Intel(R) Parallel Studio XE 2015 is installed

$
0
0

Hi,

I had installed trial version of Intel(R) Parallel Studio XE 2015 for Windows.

But it does not contain ippsc.lib in C:\Program Files (x86)\Intel\Composer XE 2015\ipp\lib\ia32 folder

how do i get ippsc.lib ?

Cryptography unresolved external symbol

$
0
0

I installed Trial Composer 15 Desktop and IPP and Cryptography lib 8.2. I have found below code. I run the code, there is no compilation error but there are  four link error like unresolved external symbol.  I searched some issues. Issues say that you must add lib called ippid.lib, libemerged ext. but there is no these libraries. How can I solve this problem.

1>IntelRijndael.obj : error LNK2019: unresolved external symbol _ippsRijndael128GetSize@4 referenced in function _main

1>IntelRijndael.obj : error LNK2019: unresolved external symbol _ippsRijndael128Init@12 referenced in function _main

1>IntelRijndael.obj : error LNK2019: unresolved external symbol _ippsRijndael128EncryptCTR@24 referenced in function _main

1>IntelRijndael.obj : error LNK2019: unresolved external symbol _ippsRijndael128DecryptCTR@24 referenced in function _main

1>D:\RijndaelRefactoring\IntelDeneme\Debug\IntelRijndael.exe : fatal error LNK1120: 4 unresolved externals

 

 

Code:

// size of Rijndael-128 algorithm block is equal to 16

   const int aesBlkSize = 16;

 

   // get the size of the context needed for the encryption/decryption operation

   int ctxSize;

   ippsRijndael128GetSize(&ctxSize);

 

   // and allocate one

   IppsRijndael128Spec* pCtx = (IppsRijndael128Spec*)( new Ipp8u [ctxSize] );

   // define the key

   Ipp8u key[16] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,

                    0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15};

 

   // and prepare the context for Rijndael128 usage

   ippsRijndael128Init(key,IppsRijndaelKey128, pCtx);

 

   // define the message to be encrypted

   Ipp8u ptext[] = {"quick brown fox jupm over lazy dog"};

 

  // define an initial vector

   Ipp8u crt0[aesBlkSize] = {0xff,0xee,0xdd,0xcc,0xbb,0xaa,0x99,0x88,                         

   0x77,0x66,0x55,0x44,0x33,0x22,0x11,0x00};

   Ipp8u  crt[aesBlkSize];

 

   // counter the variable number of bits

   int ctrNumBitSize = 64;

 

 

    // allocate enough memory for the ciphertext

   // note that

   // the size of the ciphertext is always equal to that of the planetext

   Ipp8u ctext[sizeof(ptext)];

 

   // init the counter

   memcpy(crt, crt0, sizeof(crt0));

   // encrypt (CTR mode) ptext message

   // pay attention to the 'length' parameter

   // it defines the number of bytes to be encrypted

   memcpy(crt, crt0, sizeof(crt0));

   ippsRijndael128EncryptCTR(ptext, ctext, sizeof(ptext),

                             pCtx,

                             crt, ctrNumBitSize);

 

   // allocate memory for the decrypted message

   Ipp8u rtext[sizeof(ptext)];

 

   // init the counter

   memcpy(crt, crt0, sizeof(crt0));

 

 

   // decrypt (ECTR mode) ctext message

   // pay attention to the 'length' parameter

   // it defines the number of bytes to be decrypted

   ippsRijndael128DecryptCTR(ctext, rtext, sizeof(ptext),

                             pCtx,

                             crt, ctrNumBitSize);

   delete (Ipp8u*)pCtx;

IPP download link

$
0
0

Hello,

I'd like to download and buy Intel IPP but I can't find any download link. I'm sure that the link existed in past. Is is still possible to buy the IPP as a single product, not as a part of Parallel Studio or System Studio?

Thank you.

Deinterlacing frames...

$
0
0

Hey,

I get interlaced frames of an IP camera. So, I want to deinterlace them. The IPP has various functions to deinterlace the frame.

How can I find out what function I should use? Or all do the same thing but with different qualities?

If all do the same thing with different qualities. Which one has better quality and which is the fastest?

I will deinterlace each frame separately.

About how to use, I've only one doubt.

For example, in the legacy samples I found: 

ippStatus = ippiDeinterlaceFilterTriangle_8u_C1R(pSrc, iSrcStep, pDst, iDstStep, size, 128, IPP_LOWER | IPP_UPPER | IPP_CENTER);

I understand how use, it's ok, but I don't understand this:

size.width  = pSrcPlane->m_size.width * pSrcPlane->m_iSamples * pSrcPlane->m_iSampleSize;

size.height = pSrcPlane->m_size.height;

The "size.width" calculation...

Is this can work: size.width = size.width * step; ????

Best regards,

Linker Errors when Building IPPv7.1 simple_player application

$
0
0

Dear Support:

I recently downloaded v7.1 of the IPP and tried to build on my Windows 7 PC using Visual Studio 12. I was able to build all the audio-video-codecs libraries and compile the simple_player code successfully.  However during the linking stage I got a whole lot of unresolved external symbol errors due to it not being able to find the IPP API calls.  I noticed in the properties of the simple_player, that there isn't any reference to the IPP libraries that were installed by the SDK which explains the problem, but confused how I am supposed to build it if the libraries that are being used aren't called out.  Or am I missing something here?  I have attached the build output from the failed linking stage to this post as "BuildIPP7Problem.txt".  Obviously it can't find IPP functions, but how do I know which libraries to use to build correctly on a 64-bit Windows 7 PC running Visual Studio 2012?  I thought this would already be defined in the Visual Studio project that was provided for simple_player.

Alternatively I tried going to the audio-video-codecs directory under ipp-samples and use the "build_intel64.bat" file to build the simple_player example, but couldn't come up with the right options to use in my parameters on the command line by using:

build_intel64.bat "options"

How do I know what options to use for this build to work properly if I am using Visual Studio 2012 or alternatively some Intel compiler that is installed via IPP?   Any good examples of command lines to enter so that this batch file will work?  I am getting an error of "No any valid compiler environment found".  I have my IPPROOT environment variable set correctly, but it can't find any valid compiler and I noticed that it stops searching at Visual Studio 2010.  I am using VS2012, so is there a way to get this batch file to find this and use it or should I use some other method?  Please advise.

Thanks,

Tim

AttachmentSize
DownloadBuildIPP7Problem.txt149.21 KB
Viewing all 1294 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>