This Application Note illustrates steps to optimize the performance of JPEG coding in Linux* KDE image viewer application Ksquirrel using Intel® Integrated Performance Primitives (Intel® IPP) sample code.
"KSquirrel is an image viewer for KDE with disk navigator, file tree, thumbnails, extended thumbnails, dynamic format support, DCOP interface and tools to resize, rotate, convert, colorize and print images." Information about Ksquirrel can be found at Ksquirrel† website
This guide was created for the following product releases:
This Application Note covers both IA-32 and Intel64 applications. The configuration steps below provide separate instructions for each application.
Ksquirrel source code is available at Ksquirrel download page† . Please note both Ksquirrel library and Ksquirrel application need to be downloaded from website.
Please note that OpenGL libraries and headers, GLU headers, KDE 3.3x† , QT 3.3x† are required to build the Ksquirrel application, please refer to the Ksquirrel† website for Ksquirrel building requirement.
Hardware: This Application Note has been tested on Intel® Core®2 Duo processors.
Software: This Application Note applies to use of the Intel® C/C++ Compiler 10.0 for Linux* and GCC 3.4.6 Compiler, RedHat* Linux AS EL 4.
Step 1: Building Intel® IPP optimized IJG sample.
Step 2: Modifying Configuration files
Step 3: Changing Source Code
In order to record JPEG performance, you can modify some parts of the Ksquirrel source code. This is an optional step. The Ksquirrel application records all the image load time (including image decoding time, resizing time and display time). The following modification can help record JPEG decode performance.
SQ_GLWidget::slotDecode() function in /ksquirrel-0.6.3/ksquirrel/sq_glwidget.cpp need changed. Attached is a modified code for ksquirrel-0.6.3.
# cd ksquirrel-libs-0.6.3/
By default, the Ksquirrel application is installed at /usr/bin. Use “/usr/bin/Ksquirrel” command to run the application. By default, Intel IPP dynamical libraries are linked with the application. Intel IPP dynamic libraries must be on system's path. This can be done by invoking the appropriate batch file. For example, for IA32, you can use the following common to run the application:
When displaying a JPEG image in Ksquirrel, the image windows will display the time to load the image (see attached picture). If you have modified the code by following the step 3 in Configuration the image window will also display the JPEG decoding time, which can be used to measure IPP optimized IJG performance.
Intel IPP JPEG functions are highly optimized for the multi-core capabilities of new Intel Core 2 Duo processors. The table below shows that, for Core 2 Duo processors, Intel IPP based IJG sample performs always faster than Linux* JPEG libraries in Ksquirrel application.
(Tests run on Intel Core 2 Duo 2.13GHZ processors, 1.0GB RAM memory , Red Hat Enterprise Linux AS Release 4 and Intel IPP 5.2. The test JPEG files are sample images with Intel® IPP JPEG samples, which can be downloaded in Intel® Premier Support website under "Intel® IPP Sample" product.
The following steps can be used to verify the correctness:
The performance improvement obtained by using Intel IPP reduced for very small images, e.g. images of 100 pixels x 100 pixels or less.
† This link will take you off of the Intel Web site. Intel does not control the content of the destination Web Site.
Intel® Integrated Performance Primitives (Intel® IPP) for Linux* - Optimizing JPEG coding in the Ksquirrel application with Intel® IPP
Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.