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

Which JPEG encoder should I use


I have downloaded the 7.1 IPP samples and noticed that there are 2 jpeg encoder/decoder's. One is in UIC and one is in image codecs. The UIC one uses just IPP but the image codec uses ijg8. Is there a preferred one to use? Does one have better performance? Also the image codec is reliant on the ijg library which is separate from the IPP so does that mean I need to include the IPP and IJG libraries?

0 Kudos
1 Reply

Hi Miranda,

Yes, there are two kinds on JPEG codec. Here I would say, that IJG-type is more standard (since IJG is de-facto standard of JPEG libraries like "libjpeg" for Linux), the second - UIC - must have better performance. UIC does not contain internal format conversions, which we had to create to fit IPP image compressing functions into IJG infrastructure. IJG patching with IPP had the goal of minimizing user's efforts to get performance boost in imaging applications. Suppose, that you have an application based on IJG (or, libjpeg). So, in order to use IPP all you have to do is to make OS' linker to take ijg-ipp library (in binary form of course) instead of original IJG library.

In the samples, the "image-codecs/ijg" contains the whole IJG library + IPP function calls. So, if you manage to compile "image-codecs/ijg" and to make, say, static library out of its object files, you need to specify in command line  for linker that particular library and all required IPP libraries neccesary to make complete application. There must be core, image compression, color conversion, image processing and signal processing libraries.

Hope, this will help. Regards,

0 Kudos