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

AESEncryptECB

$
0
0

Encrypts plaintext message by using ECB encryption mode.

Syntax

IppStatus ippsAESEncryptECB(const Ipp8u *pSrc, Ipp8u *pDst, intsrclen, const IppsAESSpec*pCtx);

Include Files

ippcp.h

Domain Dependencies

Headers: ippcore.h

Libraries: ippcore.lib

Parameters

pSrc

Pointer to the input plaintext data stream of variable length.

pDst

Pointer to the resulting ciphertext data stream.

srclen

Length of the input plaintext data in bytes.

pCtx

Pointer to the IppsAESSpec context.

Description

The function encrypts the input data stream of a variable length according to the cipher scheme specified in [NIST SP 800-38A].

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or warning.

ippStsNullPtrErr

Indicates an error condition if any of the specified pointers is NULL.

ippStsLengthErr

Indicates an error condition if the input data stream length is less than or equal to zero.

ippStsUnderRunErr

Indicates an error condition if srclen is not divisible by cipher block size.

ippStsContextMatchErr

Indicates an error condition if the context parameter does not match the operation.

Legal Information

$
0
0

No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.

Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.

This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest forecast, schedule, specifications and roadmaps.

The products and services described may contain defects or errors which may cause deviations from published specifications.

MPEG-1, MPEG-2, MPEG-4, H.261, H.263, H.264, MP3, DV, VC-1, MJPEG, AC3, AAC, G.711, G.722, G.722.1, G.722.2, AMRWB, Extended AMRWB (AMRWB+), G.167, G.168, G.169, G.723.1, G.726, G.728, G.729, G.729.1, GSM AMR, GSM FR are international standards promoted by ISO, IEC, ITU, ETSI, 3GPP and other organizations. Implementations of these standards, or the standard enabled platforms may require licenses from various entities, including Intel Corporation.

Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products.

Cilk, Intel, the Intel logo, Intel Atom, Intel Core, Intel Inside, Intel NetBurst, Intel SpeedStep, Intel vPro, Intel Xeon Phi, Intel XScale, Itanium, MMX, Pentium, Thunderbolt, Ultrabook, VTune and Xeon are trademarks of Intel Corporation in the U.S. and/or other countries.

*Other names and brands may be claimed as the property of others.

Microsoft, Windows, and the Windows logo are trademarks, or registered trademarks of Microsoft Corporation in the United States and/or other countries.

Java is a registered trademark of Oracle and/or its affiliates.

Copyright© 2000-2015, Intel Corporation. All rights reserved.

Parameters

$
0
0

The parameters element specifies the function parameters (arguments).

The order of parameters is as follows:

  • All source operands. Constants follow vectors.
  • All destination operands. Constants follow vectors.
  • Other, operation-specific parameters.

A parameter name has the following conventions:

  • All parameters defined as pointers start with p, for example, pPhase, pSrc; parameters defined as double pointers start with pp, for example, ppState. All parameters defined as values start with a lowercase letter, for example, val, src, srcLen.
  • Each new part of a parameter name starts with an uppercase character, without underscore; for example, pSrc, lenSrc, pDlyLine.
  • Each parameter name specifies its functionality. Source parameters are named pSrc or src, in some cases followed by names or numbers, for example, pSrc2, srcLen. Output parameters are named pDst or dst followed by names or numbers, for example, pDst2, dstLen. For in-place operations, the input/output parameter contains the name pSrcDst or srcDst.

Building Intel® IPP Examples

Notational Conventions

$
0
0

The following font and symbols conventions are used in this document:

Italic

Italic is used for emphasis and also indicates document names in body text, for example:

see Intel IPP Reference Manual.

Monospace lowercase

Indicates filenames, directory names, and pathnames, for example:

/tools/ia32/perfsys

Monospace lowercase mixed with UPPERCASE

Indicates commands and command-line options, for example:

ps_ipps.exe -f FIRLMS_32f -r firlms.csv

UPPERCASE MONOSPACE

Indicates system variables, for example: $PATH.

monospace italic

Indicates a parameter in discussions, such as routine parameters, for example: pSrc; makefile parameters, for example: function_list.

When enclosed in angle brackets, indicates a placeholder for an identifier, an expression, a string, a symbol, or a value, for example: <ipp directory>.

[ items ]

Square brackets indicate that the items enclosed in brackets are optional.

{ item | item }

Braces indicate that only one of the items listed between braces can be selected. A vertical bar ( | ) separates the items.

The following notations are used to refer to Intel IPP directories:

<install_dir>

The installation directory for the larger product that includes Intel IPP.

<ipp directory>

The main directory where Intel IPP is installed:

<ipp directory>=<install_dir>/ipp.

Replace this placeholder with the specific pathname in the configuring, linking, and building instructions.

AESDecryptCFB

$
0
0

Decrypts byte data stream according to AES in CFB mode.

Syntax

IppStatus ippsAESDecryptCFB(const Ipp8u*pSrc, Ipp8u*pDst, intsrclen, intcfbBlkSize, const IppsAESSpec*pCtx, const Ipp8u*pIV);

Include Files

ippcp.h

Domain Dependencies

Headers: ippcore.h

Libraries: ippcore.lib

Parameters

pSrc

Pointer to the input ciphertext data stream.

pDst

Pointer to the resulting plaintext data stream of variable length.

srclen

Length of the ciphertext data stream in bytes.

cfbBlkSize

Size of the CFB block in bytes.

pCtx

Pointer to the IppsAESSpec context.

pIV

Pointer to the initialization vector for the CFB mode operation.

Description

The function decrypts the input data stream of variable length according to the CFB mode as specified in [NIST SP 800-38A].

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or warning.

ippStsNullPtrErr

Indicates an error condition if any of the specified pointers is NULL.

ippStsLengthErr

Indicates an error condition if the output data stream length is less than or equal to zero.

ippStsCFBSizeErr

Indicates an error condition if the value for cfbBlkSize is illegal.

ippStsContextMatchErr

Indicates an error condition if the context parameter does not match the operation.

ippStsUnderRunErr

Indicates an error condition if srcLen is not divisible by cipher block size.

Overview

$
0
0

This manual describes the structure, operation, and functions of Intel® Integrated Performance Primitives (Intel® IPP) for cryptography. The manual provides a background for cryptography concepts used in the Intel IPP software as well as detailed description of the respective Intel IPP functions. The Intel IPP functions are combined in groups by their functionality. Each group of functions is described in a separate section.

For more information about cryptographic concepts and algorithms, refer to the books and materials listed in the Bibliography.

Reference Manual for Intel® Integrated Performance Primitives 8.2 Update 3 (ZIP)


Cryptography for Intel® Integrated Performance Primitives 8.2 Update 3 Reference Manual (ZIP)

Cryptography for Intel® Integrated Performance Primitives 9.0 Reference Manual (ZIP)

Reference Manual for Intel® Integrated Performance Primitives 9.0 (ZIP)

Reference Manual for Intel® Integrated Performance Primitives 9.0 - Volume 2: Image Processing (PDF)

Tutorial: Image Blurring and Rotation with Intel® Integrated Performance Primitives 9.0 (PDF)

Cryptography for Intel® Integrated Performance Primitives 9.0 Reference Manual (PDF)

Intel® IPP 9.0 is available

$
0
0

Intel® IPP 9.0 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, and included the new APIs to support external threading.

We will have a free technical webinar to talk about the new Intel IPP 9.0.  Check the following post to find more information:
https://software.intel.com/en-us/forums/topic/585054

What's New in Intel® IPP 9.0:

  • Extended optimization for Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instruction set in the Computer Vision and Image Processing functions.
  • Extended optimization for Intel® Atom™ processors in the Computer Vision and Image Processing functions.
  • Added optimization for Intel® Quark™ processors to the Cryptography and Data Compression functions.
  • Introduced the new Cryptography functions for SM2/SM3/SM4 algorithms.
  • Added a custom dynamic library building tool, which enables users to build the dynamic library containing the selected Intel® IPP functions.
  • Added the new APIs to support external threading.
  • Improved the CPU dispatcher by using target processor features instead of processor types. The static linkage does not require to explicitly call the processor initialization function now.
  • Provided the new native libraries for 64-bit Android* applications, and replaced the old ones from the Linux* binary.
  • Removed internal memory allocation in the single-threaded libraries.
  • The single-threaded libraries removed the dependency on the Intel® Compiler runtime libraries. The multi-threaded libraries only depends on the Intel® OpenMP* libraries.
  • Some specific Image Processing domain changes.
  • Some Intel IPP domains and functions are now legacy

Check the Intel® IPP 9.0 release notes to find more information.

Intel® IPP packages are as part of Intel® Parallel Studio XEIntel® System Studio. You can obtain as part of Intel fully supported suites, or you may qualify for free versions of such suites if you are an educator, open source developer or researcher, or you can obtain Intel IPP with a Community License at no charge.

  • Intel fully supported suites: Intel IPP is part of a suite of Intel Software Development Products which are available worldwide for purchase.  These products are backed by Intel, include Intel® Premier Support (which includes private direct support from Intel and support for past versions). Learn more at Intel® Parallel Studio XE, or Intel® System Studio
  • You may qualify for free versions of such suites if you are an student, educator, open source developer or academic researcher: learn about requirement to qualify at software.intel.com/qualify-for-free-software
  • Community Licenses for Intel Performance Libraries: Community licensing for Intel performance libraries comes with no access to Intel Premier Support, but (like the regular products) has no royalties, and no restrictions based on company or project size. Learn how to register for Community Licenses at software.intel.com/nest

AES_GCMGetSize

$
0
0

Gets the size of the IppsAES_GCMState context for use of the AES-GCM implementation with the specified characteristics.

Syntax

IppStatus ippsAES_GCMGetSize(int*pSize);

Include Files

ippcp.h

Domain Dependencies

Headers: ippcore.h

Libraries: ippcore.lib

Parameters

pSize

Pointer to the size of the IppsAES_GCMState context.

Description

The function gets the size of the IppsAES_GCMState context (in bytes) and stores the size in *pSize.

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or warning.

ippStsNullPtrErr

Indicates an error condition if the specified pointer is NULL.

AES_CCMInit

$
0
0

Initializes user-supplied memory as the IppsAES_CCMState context for future use.

Syntax

IppStatus ippsAES_CCMInit(const Ipp8u*pKey, intkeyLen, IppsAES_CCMState*pState, intctxSize);

Include Files

ippcp.h

Domain Dependencies

Headers: ippcore.h

Libraries: ippcore.lib

Parameters

pKey Pointer to the secret key.

keyLen Length of the secret key.

pState Pointer to the buffer being initialized as IppsAES_CCMState context.

ctxSize Size of the buffer being initialized.

Description

The function initializes the memory pointed by pState as the IppsAES_CCMState context. In addition, the function uses the initialization variable and additional authenticated data to provide all necessary key material for both encryption and decryption.

Note

If the pKey pointer is NULL, the function initializes the context with the zero key, which can help you to clean up the actual secret before releasing the context.

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or warning.

ippStsNullPtrErr

Indicates an error condition if the pState pointer is NULL.

ippStsLengthErr

Indicates an error condition an error condition if keyLen is not equal to 16, 24, or 32.

ippStsMemAllocErr

Indicates an error condition if the allocated memory is insufficient for the operation.

AESSetKey

$
0
0

Resets the AES secret key in the initialized IppsAESSpec context.

Syntax

IppStatus ippsAESSetKey(const Ipp8u*pKey, intkeylen, IppsAESSpec*pCtx);

Include Files

ippcp.h

Domain Dependencies

Headers: ippcore.h

Libraries: ippcore.lib

Parameters

pKey

Pointer to the AES key.

keylen

Length of the secret key.

pCtx

Pointer to the initialized IppsAESSpec context.

Description

This function resets the AES secret key in the initialized IppsAESSpec context with the user-supplied secret key.

Note

If the pKey pointer is NULL, the function resets the context with the zero key, which can help you to clean up the actual secret before releasing the context.

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or warning.

ippStsNullPtrErr

Indicates an error condition if the pCtx pointer is NULL.

ippStsLengthErr

Returns an error condition if keyLen is not equal to 16, 24, or 32.

How to set a 'rec' structuring element in ippiMorphCloseBorder_8u_C1R

$
0
0

Hello,

I am using IPP 9.0 Intel 64 to try to reducing processing time in a morphology closing operation on a 2048x2048 image.  I have used perfsys and am seeing a significant reduction in the processing time when Parm5 is 'rec'.  I'm assuming that this is a rectangular structure element, which is what I'm using. 

function
Parm1
Parm2
Parm3
Parm4
Parm5
Parm6
Parm7
Parm8
Comment
Clocks
per
Time (usec)

ippiMorphCloseBorder
8u
C1R
2048x2048
9x9
gen
repl
-
-
nLps=4
26.3
pxch
3.94E+04

ippiMorphCloseBorder
8u
C1R
2048x2048
9x9
ell
repl
-
-
nLps=4
26.4
pxch
3.96E+04

ippiMorphCloseBorder
8u
C1R
2048x2048
9x9
crs
repl
-
-
nLps=4
26.2
pxch
3.92E+04

ippiMorphCloseBorder
8u
C1R
2048x2048
9x9
rec
repl
-
-
nLps=4
2.2
pxch
3.29E+03

 

Here is the C++ code that I'm using in my test program.  It is taking 0.039 seconds which indicates a non 'rec' Parm5.  I'm using Visual Studio 2013 compiling x64 and testing on Window7 64 bit.  My test HW is Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz, 2801 Mhz, 2 Core(s), 4 Logical Processor(s):

 

        IppiMorphAdvState* pSpec = NULL;
        Ipp8u* pBuffer = NULL;
        IppiSize roiSize = { src.cols, src.rows };
        int specSize = 0, bufferSize = 0;
        IppiBorderType borderType = ippBorderRepl;
        Ipp16u borderValue = 0;
        Ipp8u pMask[9 * 9] = { 0 };
        IppiSize maskSize = { 9, 9 };
        ippiSet_8u_C1R(1, pMask, 9, maskSize);

        IppStatus status = ippiMorphAdvGetSize_8u_C1R(roiSize, maskSize, &specSize, &bufferSize);
        if (status != ippStsNoErr) return status;

        pSpec = (IppiMorphAdvState*)ippsMalloc_8u(specSize);
        pBuffer = (Ipp8u*)ippsMalloc_8u(bufferSize);

        status = ippiMorphAdvInit_8u_C1R(roiSize, pMask, maskSize, pSpec, pBuffer);
        if (status != ippStsNoErr) {
            ippsFree(pBuffer);
            ippsFree(pSpec);
            return status;
        }

        t = (double)getTickCount();

        status = ippiMorphCloseBorder_8u_C1R(detected_edges.data, detected_edges.step,
            joined.data, joined.step, roiSize, borderType, borderValue, pSpec, pBuffer);

        t = ((double)getTickCount() - t) / getTickFrequency();

        ippsFree(pBuffer);
        ippsFree(pSpec);

The source and destination images are OpenCV Mat types which were created with pointer/step that was allocated with ippiMalloc_8u_C1.

How can I modify my code to give similar times to the perfsys for 'rec' type?  

Thank you,
Alex

Using IPP with pjsip

$
0
0

Hi

I want to integrate IPP (Intel® Parallel Composer) with pjsip. I have installed w_ipp_7.0.2.154_ia32.exe.

There is an installation guide from pjsip: https://trac.pjsip.org/repos/wiki/Intel_IPP_Codecs. The installation is tested up to Intel version 7.0 update 2

The guide says that you have to use Intel IPP sample code (w_ipp-samples_p_5.3.095.zip). From the sample code speech.lib can be build.

PJSIP use the speech.lib, how do I get the sample code, so that I can build the lib ?

When I compile the Intel file usc.h is missing, how do I get that file ?

Best Regards

KrestenT

Viewing all 1040 articles
Browse latest View live


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