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

IPP 6 LZo example

constantine-vassilev
869 Views

I am looking for a quick IPP 6 LZO data compression
example. Also does IPP 6 has streaming compressions?

Thanks in advance,
Constantine

0 Kudos
11 Replies
Vladimir_Dudnik
Employee
869 Views
Hello,
you may find a simple sample code how to use LZO data compresiion IPP functions in IPP manual (volume 1. data compression functions).
Streaming is supported in high level libraries, like ZLIB (you may take a look at IPP data compression sample, which include ZLIB implementation speeded up with IPP functions and threading).
Regards,
Vladimir

0 Kudos
constantine-vassilev
869 Views
Quoting - vdudnik
Hello,
you may find a simple sample code how to use LZO data compresiion IPP functions in IPP manual (volume 1. data compression functions).
Streaming is supported in high level libraries, like ZLIB (you may take a look at IPP data compression sample, which include ZLIB implementation speeded up with IPP functions and threading).
Regards,
Vladimir

Do you mean LZO is not high level? Can I decompress LZO file in memory?

Regards,
Constantine

0 Kudos
Vladimir_Dudnik
Employee
869 Views
Correct. We do not have LZO high-level sample in IPP 6.0
Vladimir

0 Kudos
constantine-vassilev
869 Views
Quoting - vdudnik
Correct. We do not have LZO high-level sample in IPP 6.0
Vladimir

What do you mean by high level?
Constantine

0 Kudos
Vladimir_Dudnik
Employee
869 Views
Quoting - thstart
What do you mean by high level?
Constantine


I meant we do not have high-level sample for LZO like zlib or bzip2

Vladimir

0 Kudos
constantine-vassilev
869 Views
Quoting - vdudnik


I meant we do not have high-level sample for LZO like zlib or bzip2

Vladimir

I purchased IPP becauseit includedLZO. Want to know how better to use it because it is faster.
Agood example is the best way to learn that.

0 Kudos
Vladimir_Dudnik
Employee
869 Views
We understand that. This is why we have put example code into IPP documentation, so you may look at how LZO compressorshould look like.
Vladimir

0 Kudos
Sergey_K_Intel
Employee
869 Views
Agood example is the best way to learn that.

Constantine,

with "high level" examples I would mean here an example of usage of methods/functions in a widely-using application. So, for example, ZLIB/GZIP are the well-known examples of LZ77 usage.

For LZO there is no example like these. There is may be the only one fairly known application based on LZO. This is LZOP - an LZO packer.

The core of LZOP corresponds to the example provided in documentation.

Besides the archive header, LZOP does the following: it takes a next piece of input data, compresses it with LZO method, writes the header of compressed block and writes the block itself. And loops while there is anything to compress. The block header has size of uncompressed block, size of compressed block and checksum over uncompressed data (Adler32).

Regards,
Sergey

0 Kudos
idare75
Beginner
869 Views
We understand that. This is why we have put example code into IPP documentation, so you may look at how LZO compressor should look like.
Vladimir


Hi.
I have tried the ipp_bzip2 sample and compared with the standard linux bzip2 utility.

Compiler 11.0 for Linux
Linux: ubuntu 8.10
Hardware: eeebox, Atom N270 1,6 Gz, Hyperthreading
I have compressed a 68 Mo ISO CDROM
Here are my results:
With standard ubunti bzip2 tool: 1min 33 sec
With ipp_bzip2 compiled with gcc4 (build32.sh without parameter): 2min08
With ipp_bzip2 compiled with icc (build32.sh icc110): 2min08
With ipp_bzip2 compiled with icc, and optimizations options for the ATOM in the Makefile (-O3, -xSSE3_ATOM, -axSSSE3) : 2min06

I don't understand these results.

I have disassembled the binaries to look for sse instructions:
- standard bzip: 1 sse instruction
- with ipp_bzip2 / gcc: 1 sse instruction
- with ipp_bzip2 / icc ATOM optimized: about 382 sse instructions






0 Kudos
idare75
Beginner
869 Views
Quoting - idare75
We understand that. This is why we have put example code into IPP documentation, so you may look at how LZO compressor should look like.
Vladimir


Hi.
I have tried the ipp_bzip2 sample and compared with the standard linux bzip2 utility.

Compiler 11.0 for Linux
Linux: ubuntu 8.10
Hardware: eeebox, Atom N270 1,6 Gz, Hyperthreading
I have compressed a 68 Mo ISO CDROM
Here are my results:
With standard ubunti bzip2 tool: 1min 33 sec
With ipp_bzip2 compiled with gcc4 (build32.sh without parameter): 2min08
With ipp_bzip2 compiled with icc (build32.sh icc110): 2min08
With ipp_bzip2 compiled with icc, and optimizations options for the ATOM in the Makefile (-O3, -xSSE3_ATOM, -axSSSE3) : 2min06

I don't understand these results.

I have disassembled the binaries to look for sse instructions:
- standard bzip: 1 sse instruction
- with ipp_bzip2 / gcc: 1 sse instruction
- with ipp_bzip2 / icc ATOM optimized: about 382 sse instructions






I have to make precision. I have just realized that icc110 package did not include ipp in lp32 version, just in ia32 version. So the result
"with ipp_bzip2 compiled with icc, and optimizations options for the ATOM in the Makefile (-O3, -xSSE3_ATOM, -axSSSE3) : 2min06" is with ipp ia32.

I have download ipp 6.02 for ATOM (lp32), modified the iccvars.sh , and tried to build it but it can't link if i let -O3 -xSSE3_ATOM -axSSSE3 options (undefined reference to `__intel_new_proc_init_L') so i didn't modified the Makefile. It linked, and lauch the test: bzipping the 68 MO file:

2min27!! it is worse again..

standard bzip2 ubuntu 8.10 binary: 1min33
binary build with icc110 update 1 and ipp 6.02 for ATOM: 2min27 ...

I don't understand, could somebody help me?

Regards,
Gaetan
0 Kudos
avolmat
Beginner
869 Views
Quoting - idare75
Quoting - idare75
We understand that. This is why we have put example code into IPP documentation, so you may look at how LZO compressor should look like.
Vladimir


Hi.
I have tried the ipp_bzip2 sample and compared with the standard linux bzip2 utility.

Compiler 11.0 for Linux
Linux: ubuntu 8.10
Hardware: eeebox, Atom N270 1,6 Gz, Hyperthreading
I have compressed a 68 Mo ISO CDROM
Here are my results:
With standard ubunti bzip2 tool: 1min 33 sec
With ipp_bzip2 compiled with gcc4 (build32.sh without parameter): 2min08
With ipp_bzip2 compiled with icc (build32.sh icc110): 2min08
With ipp_bzip2 compiled with icc, and optimizations options for the ATOM in the Makefile (-O3, -xSSE3_ATOM, -axSSSE3) : 2min06

I don't understand these results.

I have disassembled the binaries to look for sse instructions:
- standard bzip: 1 sse instruction
- with ipp_bzip2 / gcc: 1 sse instruction
- with ipp_bzip2 / icc ATOM optimized: about 382 sse instructions






I have to make precision. I have just realized that icc110 package did not include ipp in lp32 version, just in ia32 version. So the result
"with ipp_bzip2 compiled with icc, and optimizations options for the ATOM in the Makefile (-O3, -xSSE3_ATOM, -axSSSE3) : 2min06" is with ipp ia32.

I have download ipp 6.02 for ATOM (lp32), modified the iccvars.sh , and tried to build it but it can't link if i let -O3 -xSSE3_ATOM -axSSSE3 options (undefined reference to `__intel_new_proc_init_L') so i didn't modified the Makefile. It linked, and lauch the test: bzipping the 68 MO file:

2min27!! it is worse again..

standard bzip2 ubuntu 8.10 binary: 1min33
binary build with icc110 update 1 and ipp 6.02 for ATOM: 2min27 ...

I don't understand, could somebody help me?

Regards,
Gaetan

Hi,

I got the same undefined reference when compiling the audio_video samples.
At least you should be able to use -xSSE3 instead of -xSSE3_ATOM and thus achieve about the same performance
as when using ia32 IPP. (That's what I noticed in my case)

However I haven't yet compared IPP encoder performance with other encoders.

Regards,
Alain
0 Kudos
Reply