License Definitions
Overview
Intel IPP
Functions Used In The Interface
System Requirements
Package Contents
How to Build Source Code
Prepare LZOP Open-Source Utility
Build target by command
line build scripts
Check The Build
LZOP Utility Usage
IPP_LZOP Utility Command-Line
Options Changes
Technical Support And Feedback
Disclaimer
By downloading and installing this interface, you hereby agree that the accompanying Materials are being provided to you under the terms and conditions of the End User License Agreement for the Intel® Integrated Performance Primitives product previously accepted by you. Please refer to the file ippEULA.rtf or ippEULA.txt located in the root directory of your Intel® IPP product installation for more information.
The Data Compression-based IPP_LZOPACK interface (IPP_LZOPACK) illustrates the way of implementing simple lossless data compression solution by using Intel® Integrated Performance Primitives Data Compression domain API.
The interface uses dictionary-based IPP functions implementing Lempel-Ziv-Oberhumer (LZO) algorithm (www.oberhumer.com/opensource/lzo). The result compressed data format is similar to Oberhumer's LZOP file format (www.lzop.org) though it differs from LZOP format by file header method byte.
Additional information on this software as well as other Intel software performance products is available at http://www.intel.com/software/products/.
IPP_LZOPACK interface uses the following functions from Intel® Performance Primitives Data Compression library:
IPP_LZOPACK Function | IPP Function | Function Description |
Compression | ippsEncodeLZOGetSize | Returns size of data buffer to be allocated to hold IPP LZO data structure |
ippsEncodeLZOInit_8u | Initializes IPP LZO data structure | |
ippsEncodeLZO_8u | Encodes (compresses) data block | |
ippsAdler32_8u | Data checksum computing function | |
Decompression/Test | ippsDecodeLZO_8u | Decodes (uncompresses) data block |
Hardware requirements:
Software requirements:
- Red Hat Enterprise Linux* OS 3 ,4 or
- 5 SUSE Linux Enterprise Server* 10 or
- 11 Debian* 4.0r1 or
- 5 Ubuntu* 8 or 9
- Asianux* Server 3.0
- Red Flag* 5.0
The Intel® IPP Data Compression IPP_LZOPACK interface for Linux contains the following files:
./interfaces |
|
ippEULA.rtf or ippEULA.txt |
End User License Agreement |
support.txt |
Contains technical support information |
./interfaces/data-compression/ipp_lzopack |
|
build_ia32.sh |
Shell script file for building IPP_LZOPACK interface for a Linux system based on the
|
build_intel64.sh |
Batch file for building IPP_LZOPACK interface for a Linux system based on the
|
Makefile |
Make file to build IPP_LZOPACK interface |
readme.htm |
This file |
./interfaces/data-compression/ipp_lzopack/patch |
|
lzop-1.02rc1.patch | Patch file for LZOP v1.02rc1 |
Obtain the following source code tar files
Create a working directory "lzop" in /interfaces/data-compression/ipp_lzopack
$ mkdir lzop
Untar LZO library v2.03 and LZOP v1.02rc1 into that directory
$ cd lzop
$ tar xfz <tar_dir>/lzo-2.03.tar.gz
$ tar xfz <tar_dir>/lzop-1.02rc1.tar.gz
Patch LZOP utility with the commands
$ cd lzop-1.02rc1
$ patch -l -p1 -N < ../../patch/lzop-1.02rc1.patch
Set up your build environment by creating an environment variable named IPPROOT that points to the root directory of your Intel ® IPP installation. The shared libraries are located in the sharedlib subdirectory of the root directory of the Intel® IPP installation $(IPPROOT). This can be done by setting the LD_LIBRARY_PATH environment variable manually or by invoking the batch file "$IPPROOT/bin/ippvars.sh" from the Intel® IPP installation.
Note:
1) With default settings the interface will be built using the Intel C++ compiler.
To change the default settings, see Makefile for brief description of available variables and
additional options.
2) The build scripts will try to do patching with "-N" option, which
means "do not apply patch again", so ignore patch utility messages
Verify the correctness of build using "-V" command line option, i.e. "./bin/{ia32|intel64}_<compiler_name>/lzop -V".
For ia32 version you must get something like
Lempel-Ziv-Oberhumer
Packer
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
lzop v1.02rc1 Markus Franz Xaver Johannes Oberhumer Jul 25th 2005
lzop version: v1.02rc1, Jul 25th 2005
lzop build date: Jun 30 2010 13:27:48
IPP Core lib libippcore.so.7.0 7.0 build 205.3 7.0.205.967
IPP Signal lib libippsv8.so.7.0 7.0 build 205.3 7.0.205.1004
IPP Data Compression lib libippdcv8.so.7.0 7.0 build 205.3 7.0.205.911
For intel64 version the output must be like
Lempel-Ziv-Oberhumer
Packer
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
lzop v1.02rc1 Markus Franz Xaver Johannes Oberhumer Jul 25th 2005
lzop version: v1.02rc1, Jul 25th 2005
lzop build date: Jun 30 2010 13:28:11
IPP Core lib libippcore.so.7.0 7.0 build 205.3 7.0.205.967
IPP Signal lib libippsu8.so.7.0 7.0 build 205.3 7.0.205.1004
IPP Data Compression lib libippdcu8.so.7.0 7.0 build 205.3 7.0.205.911
Note:
1) actual IPP library version numbers, build numbers may be
different according to IPP package installed on your computer
2) to be able to start the application dynamically linked to
IPP, make sure your LD_LIBRARY_PATH environment variable points to the actual
IPP dynamic library location
3) in IPP signal and data compression library names the last
two letters of the name denote CPU model. In our case "v8" represents Intel® Core™ processor
in 32-bit mode, "u8" represents Intel® Core™ processor
in 64-bit mode.
To obtain LZOP utility main options and command line form enter "lzop" in command line window. The output will be
Lempel-Ziv-Oberhumer Packer
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
lzop v1.02rc1 Markus Franz Xaver Johannes Oberhumer Jul 25th 2005
Usage: lzop [-dxlthIVL19] [-qvcfFnNPkUp] [-o file] [-S suffix] [file..]
Commands:
-1 compress faster -9 compress better
-d decompress -x extract (same as -dPp)
-l list compressed file -I display system information
-t test compressed file -V display version number
-h give this help -L display software license
Options:
-q be quiet -v be verbose
-c write on standard output -oFILE write output to `FILE'
-p write output to current dir -pDIR write to path `DIR'
-f force overwrite of output files
-n do not restore the original file name (default)
-N restore the original file name
-P restore or save the original path and file name
-S.suf use suffix .suf on compressed files
-U delete input files after successful operation (like gzip and bzip2)
file.. files to (de)compress. If none given, try standard input.
LZOP utility command line options information can be found in "lzop-1.02rc1\doc" of LZOP source file directory.
LZOP utility command line options information can be found in "lzop-1.02rc1/doc" of LZOP source file directory.
After applying the patches included into this IPP interface the following options added to utility's option set
Note 1: Command line options "-1" (compress faster) and "-9" (compress better) do not work in patched version, since IPP LZO functions have no choice to select compression ratio. Moreover, these options forcedly make utility to call original LZO functions. Thus, with new "--ipplzost/ipplzomt" command line options do not use "-1/-9" options, or make sure the new options are used at the end of command line.
Note 2: The above options are applied to compression commands only. For example, "lzop --ipplzost data.dat" to produce "data.dat.lzo" compressed file. During decompression the LZOP utility automatically calls IPP's ippsDecodeLZO function, so there is no need to specify additional options explicitly.
Note 3: Using multi-thread mode is not always beneficial for performance. If the input file is too short, the overhead of starting/stopping additional execution threads may negatively affect the overall operation performance. Use multi-thread mode if the input file size is more than ~ 100 KB * <number of host computer cores> (e.g. more than 200 KB for two-core computer, more than 400 KB for four-core computer, etc).
To receive support or provide feedback refer to the "Technical Support and Feedback" section of the release notes (ReleaseNotes.htm) provided in the Intel® IPP product installation.
Your feedback on the Intel IPP samples is very important to us and your input will be considered for future releases. The Intel IPP sample code is intended only as an example of how to use the APIs to implement algorithms in different development environments. Please submit problems with installation, compiling, linking, runtime errors or incorrect output to Intel® Premier Support.
You can also share and discuss the experience of IPP sample usage with other developers at Intel Software Developer Forum.
Optimization Notice |
---|
The Intel® Integrated Performance Primitives (Intel® IPP) library contains functions that are more highly optimized for Intel microprocessors than for other microprocessors. While the functions in the Intel® IPP library offer optimizations for both Intel and Intel-compatible microprocessors, depending on your code and other factors, you will likely get extra performance on Intel microprocessors. While the paragraph above describes the basic optimization approach for the Intel® IPP library as a whole, the library may or may not be optimized to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include Intel® Streaming SIMD Extensions 2 (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel® SSE3), and Supplemental Streaming SIMD Extensions 3 (Intel® SSSE3) instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Intel recommends that you evaluate other library products to determine which best meets your requirements. |
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS.
NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL
PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S
TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY
WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING
TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES
RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT
OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED
NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD
CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.
Intel may make changes to specifications and product descriptions at any time,
without notice. Designers must not rely on the absence or characteristics of any
features or instructions marked "reserved" or "undefined." Intel reserves these
for future definition and shall have no responsibility whatsoever for conflicts
or incompatibilities arising from future changes to them. The information here
is subject to change without notice. Do not finalize a design with this
information.
The products described in this document may contain design defects or errors
known as errata which may cause the product to deviate from published
specifications. Current characterized errata are available on request.
Contact your local Intel sales office or your distributor to obtain the latest
specifications and before placing your product order.
Copies of documents which have an order number and are referenced in this
document, or other Intel literature, may be obtained by calling 1-800-548-4725,
or go to:
http://www.intel.com/#/en_US_01
Intel processor numbers are not a measure of performance. Processor numbers
differentiate features within each processor family, not across different
processor families. See
http://www.intel.com/products/processor_number
for details.
BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Inside, Core Inside,
i960, Intel, the Intel logo, Intel Atom, Intel Atom Inside, Intel Core,
Intel Inside, Intel Inside logo, Intel NetBurst, Intel NetMerge,
Intel NetStructure, Intel SingleDriver, Intel SpeedStep,
Intel Sponsors of Tomorrow., the Intel Sponsors of Tomorrow. logo,
Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, InTru, the InTru logo,
InTru soundmark, Itanium, Itanium Inside, MCS, MMX, Moblin, Pentium,
Pentium Inside, skoool, the skoool logo, Sound Mark, The Journey Inside,
vPro Inside, VTune, Xeon, and Xeon Inside
are trademarks of Intel Corporation in the U.S. and other countries.
* Other names and brands may be claimed as the property of others.
Microsoft, Windows, Visual Studio, Visual C++, and the Windows logo are trademarks, or registered trademarks of Microsoft Corporation in the United States and/or other countries.
Copyright (C) 2009-2010, Intel Corporation. All rights reserved.