Comment 4 for bug 612377

Revision history for this message
ghepeu (ghepeu) wrote :

I second the request.

I'm usually very skeptic about purported performance improvements, but I did my tests on a couple of machines and I think that given the ubiquity of JPEG pictures the upgrade to libjpeg-turbo could be one of the most important user-visible speed improvements in the last few releases of Ubuntu.

I compiled libjpeg-turbo 1.0.1 and selected with LD_LIBRARY_PATH the new libjpeg.so.62.0.0 instead of the system library provided by Ubuntu 10.04.

On a Athlon 4850e (dual core 64bit cpu, 32 bit userspace) working at 2.5 Ghz, converting a not-so-large RPG PPM image (7200x4500) to and from JPEG (average of 5 runs):

time convert image.ppm image.jpg

libjpeg-classic real 2.709s user 2.364s sys 0.318s
libjpeg-turbo real 1.646s user 1.301s sys 0.317s

time convert image.jpg image.ppm

libjpeg-classic real 2.130s user 1.703s sys 0.359s
libjpeg-turbo real 1.292s user 0.872s sys 0.356s

On a Acer Aspire One 532h netbook with a Atom N450 cpu (64 bit userspace) working at 1.67 Ghz, the same test gives:

time convert image.ppm image.jpg

libjpeg-classic real 5.763s user 5.996s sys 0.770s
libjpeg-turbo real 2.612s user 2.900s sys 0.720s

time convert image.jpg image.ppm

libjpeg-classic real 4.588s user 3.816s sys 0.858s
libjpeg-turbo real 2.602s user 1.692s sys 0.868s

Occasionally I use the netbook to stream video from the integrated webcam to another pc with this gstreamer pipeline:

gst-launch-0.10 v4l2src ! video/x-raw-yuv,width=640,height=480 ! ffmpegcolorspace ! jpegenc ! multipartmux ! udpsink host=192.168.1.2 port=5000

With the frequency forced to 1GHz the cpu usage is:

libjpeg-classic 37-38%
libjpeg-turbo 10-11%

With the frequency forced to 1.67Ghz the cpu usage is:

libjpeg-classic 22-23%
libjpeg-turbo 6-7%

More importantly, when the default ondemand governor is used, with libjpeg-turbo the frequency stays mostly at 1 Ghz, while with libjpeg-classic it divides almost equally between 1 Ghz and 1.67Ghz, with the obvious consequences in terms of battery life.

On this machine more than on the faster desktop pc the difference between libjpeg-turbo and libjpeg-classic is clearly visible: when nautilus is thumbnailing the images in a directory, when I open an image with oeg, when I'm looking at a f-spot gallery, when I change wallpaper, etc. etc. The upgrade should be considered before 10.10.