Integrated Performance Primitives
Encyclopedia
Intel Integrated Performance Primitives (Intel IPP) is a multi-threaded
software library
of functions for multimedia and data processing applications, produced by Intel.
The library supports Intel and compatible processors and is available for Windows, Linux, and Mac OS X operating systems. It is available separately or as a part of Intel Parallel Studio
.
, SSE2
, SSE3
, SSSE3
, SSE4
, AES-NI and multicore
processors. Intel IPP includes functions for:
Half the entry points are of the matrix type, a third are of the signal type and the remainder are of the image and cryptography types. Intel IPP functions are divided into 4 data types: Data types include 8u (8-bit unsigned), 8s (8-bit signed), 16s, 32f (32-bit floating-point), 64f, etc. Typically, an application developer works with only one dominant data type for most processing functions, converting between input to processing to output formats at the end points.
Version 6.1 was released with the Intel C++ Compiler
on June 28, 2009 and Update 1 for version 6.1 was released on July 28, 2009.
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...
software library
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....
of functions for multimedia and data processing applications, produced by Intel.
The library supports Intel and compatible processors and is available for Windows, Linux, and Mac OS X operating systems. It is available separately or as a part of Intel Parallel Studio
Intel Parallel Studio
Intel Parallel Studio is a software development product developed by Intel that plugs into the Microsoft Visual Studio Integrated Development Environment. Its purpose is to facilitate developing programs for parallel computing...
.
Features
The library takes advantage of processor features including MMX, SSEStreaming SIMD Extensions
In computing, Streaming SIMD Extensions is a SIMD instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series processors as a reply to AMD's 3DNow! . SSE contains 70 new instructions, most of which work on single precision floating point...
, SSE2
SSE2
SSE2, Streaming SIMD Extensions 2, is one of the Intel SIMD processor supplementary instruction sets first introduced by Intel with the initial version of the Pentium 4 in 2001. It extends the earlier SSE instruction set, and is intended to fully supplant MMX. Intel extended SSE2 to create SSE3...
, SSE3
SSE3
SSE3, Streaming SIMD Extensions 3, also known by its Intel code name Prescott New Instructions , is the third iteration of the SSE instruction set for the IA-32 architecture. Intel introduced SSE3 in early 2004 with the Prescott revision of their Pentium 4 CPU...
, SSSE3
SSSE3
Supplemental Streaming SIMD Extensions 3 is a SIMD instruction set created by Intel and is the fourth iteration of the SSE technology.- History :...
, SSE4
SSE4
SSE4 is a CPU instruction set used in the Intel Core microarchitecture and AMD K10 . It was announced on 27 September 2006 at the Fall 2006 Intel Developer Forum, with vague details in a white paper; more precise details of 47 instructions became available at the Spring 2007 Intel Developer Forum...
, AES-NI and multicore
Multicore
Multicore may refer to:* Multi-core processor ** Multicore Association, founded in 2005, a non-profit, industry consortium focused on multicore technology* multicore cable, a generic term for an electrical cable that has multiple cores...
processors. Intel IPP includes functions for:
- Video Decode/EncodeVideo codecA video codec is a device or software that enables video compression and/or decompression for digital video. The compression usually employs lossy data compression. Historically, video was stored as an analog signal on magnetic tape...
- Audio Decode/EncodeAudio codecAll codecs are devices or computer programs capable of coding or decoding a digital data stream or signal.The term audio codec has two meanings depending on the context:...
- JPEGJPEGIn computing, JPEG . The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and image quality. JPEG typically achieves 10:1 compression with little perceptible loss in image quality....
/JPEG2000/JPEG XR - Computer VisionComputer visionComputer vision is a field that includes methods for acquiring, processing, analysing, and understanding images and, in general, high-dimensional data from the real world in order to produce numerical or symbolic information, e.g., in the forms of decisions...
- CryptographyCryptographyCryptography is the practice and study of techniques for secure communication in the presence of third parties...
- Data CompressionData compressionIn computer science and information theory, data compression, source coding or bit-rate reduction is the process of encoding information using fewer bits than the original representation would use....
- Image Color ConversionColor managementIn digital imaging systems, color management is the controlled conversion between the color representations of various devices, such as image scanners, digital cameras, monitors, TV screens, film printers, computer printers, offset presses, and corresponding media.The primary goal of color...
- Image ProcessingImage processingIn electrical engineering and computer science, image processing is any form of signal processing for which the input is an image, such as a photograph or video frame; the output of image processing may be either an image or, a set of characteristics or parameters related to the image...
- Ray TracingRay tracingIn computer graphics, ray tracing is a technique for generating an image by tracing the path of light through pixels in an image plane and simulating the effects of its encounters with virtual objects. The technique is capable of producing a very high degree of visual realism, usually higher than...
/Rendering - Signal ProcessingSignal processingSignal processing is an area of systems engineering, electrical engineering and applied mathematics that deals with operations on or analysis of signals, in either discrete or continuous time...
- Speech CodingSpeech codingSpeech coding is the application of data compression of digital audio signals containing speech. Speech coding uses speech-specific parameter estimation using audio signal processing techniques to model the speech signal, combined with generic data compression algorithms to represent the resulting...
- Speech RecognitionSpeech recognitionSpeech recognition converts spoken words to text. The term "voice recognition" is sometimes used to refer to recognition systems that must be trained to a particular speaker—as is the case for most desktop recognition software...
- String Processing
- Vector/Matrix Mathematics
Organization
Intel IPP is divided into four major processing groups: Signal (with linear array or vector data), Image (with 2D arrays for typical color spaces), Matrix (with nxm arrays for matrix operations), and Cryptography.Half the entry points are of the matrix type, a third are of the signal type and the remainder are of the image and cryptography types. Intel IPP functions are divided into 4 data types: Data types include 8u (8-bit unsigned), 8s (8-bit signed), 16s, 32f (32-bit floating-point), 64f, etc. Typically, an application developer works with only one dominant data type for most processing functions, converting between input to processing to output formats at the end points.
History
Version 5.2 was introduced June 5, 2007, adding code samples for data compression, new video codec support, support for 64-bit applications on Mac OS X, support for Windows Vista, and new functions for ray-tracing and rendering.Version 6.1 was released with the Intel C++ Compiler
Intel C++ Compiler
Intel C++ Compiler is a group of C and C++ compilers from Intel Corporation available for GNU/Linux, Mac OS X, and Microsoft Windows....
on June 28, 2009 and Update 1 for version 6.1 was released on July 28, 2009.
Counterparts
- SunSun MicrosystemsSun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...
: mediaLibMediaLibmediaLib is a portable low level library for accelerating multimedia applications, with interfaces in C. It is developed by Sun Microsystems and open sourced under the CDDL license as part of the OpenSolaris project...
for Solaris - Apple: vDSP, vImage, Accelerate etc. for Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
- AMD: Framewave (formerly the AMD Performance Library or APL)
- Khronos GroupKhronos GroupThe Khronos Group is a not-for-profit member-funded industry consortium based in Beaverton, Oregon, focused on the creation of open standard, royalty-free APIs to enable the authoring and accelerated playback of dynamic media on a wide variety of platforms and devices...
: OpenMAX DL
External links
- Intel IPP Home Page
- Intel Parallel Studio Home Page
- Stewart Taylor, "Intel Integrated Performance Primitives - How to Optimize Software Applications Using Intel IPP", Intel Press.
- Jpeg Delphi implementation using official JPEG Group C library or Intel Jpeg Library 1.5 (ijl.dll included)
- How To Install OpenCV using IPP (french)