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

Help understanding threading

John_Stevenson-hoare
373 Views
Hi,

Can anyone help me to understand how threading works in the 7.0.1 IPP libraries?

We want to use the ijg sample code (libjpeg) in our application as we believe that it performs much better than the version shipped with 5.3.1 IPP libraries particularly because it provides better multi-threading/multi-core support.

However, it is not clear to me whether I need to link this library (for Windows) using the _t or _l static libraries to benefit from this performance improvement.

If the performance improvement is independent of which libraries I choose, then when would I use the _t over the _l variants?

Thanks.
0 Kudos
3 Replies
Vladimir_Dudnik
Employee
373 Views
Hello,

libjpeg is not quite good sample to demonstrate multi-threading benefits. The reason is that the libjpeg library itself was not architected in the way to support threading (it was developed by IJG many years ago) and IPP functions used in libjpeg will not use threading because they work on small data blocks (like DCT operation on 8x8 block of coefficients).

If you are looking for threaded JPEG implementation I'd recommend you to take a look at UIC sample (Unified Image Codecs), which is C++ high-level image codec libs. In IPP 7.0 we do provide threaded JPEG, JPEG2000 and JPEGXR UIC codecs. They are threaded on top of IPP which is more efficient then threading on primitives level.

Regards,
Vladimir
0 Kudos
David_H_11
Beginner
373 Views

Hello,

its 2013 now and in IPP 7.1.1 samples I still find this comment:

UIC codecs are starting points, not product-ready components. They do not support their full specifications, including profiles and levels. They are also not fully optimized for performance.
When will they be product-ready?

Regards
David

0 Kudos
SergeyKostrov
Valued Contributor II
373 Views
>>...When will they be product-ready? David, My understanding is that Intel never tried to make these codes as product-ready and I don't think it will ever do that. Consider these codes as templates for R&D, etc.
0 Kudos
Reply