The build process was successfully completed and the ijg_timing.exe was generated, for example. However, the core library ijg80b.lib ist still a static library. I tried to adapt the project settings of the ijg80b project, but as soon as I set the IJG_DLLdefine within the jmorecfg.h file, I get a link error telling me that the ijg80b.lib file cannot be opened.
Could you please help me to generate the DLL of ijg80b project?
We plan to buy the IPP 7.1 license. Will we then get the prebuild ijg80b.dll, too? Thanks.
I have managed to build a DLL out of the ijg80b project, finally.
I have done a performance comparison between the basic ijg library (version 8d), the IPP adapted ijg80b and the libjpeg-turbo (version 1.1.1). I did this comparison with a 800x600 px RGB24 images coming from the webcam and be directly encoded and decoded on the fly. "jpeg_set_defaults()" is called and then only the quality of 75% is set. The underlying system is Win 7 64 bit, Intel Core 2 Duo 3 GHz, 2 GB RAM.
Actually, I thought that the performance between IPP based and turbo library would not differ that much. May be, I have to do more on my project settings to accelerate the IPP based library a little bit more. I use the "ippj.lib" as inlcude library only. Furthermore, I have generated the image-codecs sample for 32 bit system "ia32". I will try the 64 bit version and see, whether it will increase the performance.
If you have some advices concerning how to get the IPP based ijg80b version faster, then let me please know about it. Thanks.
1) My test application links to the .lib file of the basic IJG library and imports the "jpeglib.h" header file of the basic library. I use the standard function calls for compression and decompression as: "jpeg_mem_dest()", "jpeg_set_defaults()", "jpeg_start_compress()", "jpeg_write_scanlines()" and so on.
2) As I have already explained, I have downloaded the IPP 7.1 Samples in order to compile the ijg80b as a DLL. Therefore, I have made some project settings of ijg80b project. It links the "ippj.lib" only.
3) Before executing my test application, I place the DLLs one after the other into the same directory, where my .exe file is. For the ijg80b DLL I place the following IPP DLLs additionally:
These IPP DLLs come from the IPP 7.0.7 ia32 evaluation installation.
I do not initialize the IPP at all. I substitute the DLL of the basic JPEG library by the IPP adapted version. Since they both have the same interface, it works well. I have debuged into such calls as "jpeg_write_scanlines()" and have seen that the IPP macros/defines work and thus the IPP specific functions are called. The lightly better performance indicates that the IPP is involved, too.
Where should I initialize the IPP? Once, within the constructor of my application? Thanks.