I remeber that Intel JPEG Library(IJL) was available for this purpose.
It was allowing me to read JPEG image from buffer and decompress it
and write to output buffer.
// Initialize the IntelR JPEG Library.
IJLERR jerr = ijlInit(&jcprops);
// Use the IJL to read data from a buffer or a file.
jerr = ijlRead(&jcprops, iotype);
// Now get the actual JPEG image data into the pixel buffer.
jerr = ijlRead(&jcprops, IJL_JBUFF_READWHOLEIMAGE);
// Use the IJL to write data into a buffer or a file.
IJLERR ijlWrite (JPEG_CORE_PROPERTIES *jcprops, IJLIOTYPE iotype);
// Clean up the IJL.
IJLERR ijlFree (JPEG_CORE_PROPERTIES *jcprops);
I found from there website that, IJL has been moved to Intel IPP. But
in Intel IPP does not have similar methods.
So can anybody suggest me, which library I have to use?
The Intel JPEG Library product was end of lifed several years ago. In 2001we introduced a new Intel Integrated Performance Primitives product which has a different concept. The IPP provides you with low level optimized functions, which are simple, atomic and structureless entry points for most time critical parts of complex algorithms. By using these low level building blocks youmay construct more complex solutions in efficient and flexible way and be sure that allperformance critical parts are optimized for any upcoming new Intel processor generations with the next versions of IPP. In fact, each IPP major release is related to new Intel processor launch to immediately provide the performance benefits for software developers.In other words, IPP provides you "standard" low level API which we are committed to optimize for each new processor generation and for number of supported operating systems. You may consider that like hardware abstraction layer which free you up from low level optimization work and allow to focus your effort on your application functionality. We provide with IPP number of examples how to usethat APIto build some middle layer software, like media codecs, including JPEG and JPEG2000 codecs. One of such samples isimplementation of Intel JPEG Library API based on IPP functions. It is available in source code in IPP sample package. Note though, I would recommend you to migrate to new API for image codecs we introduced in IPP 6.0 beta. That is Intel Unified Image Codec (UIC) API which unifies to some extend the usage of different image codecs in application due to C++ abstract base classes which define the base interface and derived implementation of JPEG, JPEG2000, BMP and PNM codecs.
The IPP based IJL sample has almost the same functionality as the original IJL had. I would recommend you to migrate to our new, Unified Image Codec API, which is available in IPP 6.0 beta. Or to use IPP JPEG codec from JPEGView sample in IPP 5.3 release. The JPEG implementation in UIC or JPEGView is threaded and support 12-bit extended baseline compression and 16-bit lossless compression modes.