Community
cancel
Showing results for 
Search instead for 
Did you mean: 
133 Views

IPP 6 LZo example

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
133 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

133 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

Vladimir_Dudnik
Employee
133 Views

Correct. We do not have LZO high-level sample in IPP 6.0
Vladimir

133 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

Vladimir_Dudnik
Employee
133 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

133 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.

Vladimir_Dudnik
Employee
133 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

Sergey_K_Intel
Employee
133 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

idare75
Beginner
133 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






idare75
Beginner
133 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
avolmat
Beginner
133 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
Reply