A new faster version of WarpJPEG (http://www.warpdt.co.uk/jpeg.html) and associated WarpDTPrefs (http://www.warpdt.co.uk/prefs.html) has been released, bringing AltiVec speed optimisations to AmigaOS 4.x and MorphOS users, making JPEG decoding at least 1.5x faster than before, along with several other improvements for WarpOS and AmigaOS 3.x also. You may be aware that I originally wrote the jpeg.datatype supplied with AmigaOS 4.x, but now WarpJPEG outperforms it by some considerable margin.-- eliyahu(http://www.warpdt.co.uk/logo150x50.jpg)Full list of changes:
* Added AltiVec speed optimizations for the OS4 and MorphOS versions making decoding speed of baseline images 1.5x faster on a G4 and 1.9x faster on a PA6T, with fancy upsampling off, on average. With fancy upsampling on, the AltiVec speed gain is even greater - 1.9x faster on a G4 and 2.3x faster on a PA6T. These optimizations can be toggled off/on using the new USE_ALTIVEC setting.
* Huffman decoder in PowerPC versions is now 5-10% faster.
* Reintegrated higher quality fancy upsampling smoothing feature from IJG jpeglib v6b which had not been present since WarpJPEG 45.5 due to its removal from IJG jpeglib v7 and higher.
* MorphOS and WarpOS versions recompiled with VBCC 0.9d.
* Added new set of benchmarks for OS4 (benchmark updates for other platforms suspended until my A1200 motherboard has been repaired).
In MorphOS JPEG datatype is already Altivec accelerated so unfortunately there is very little to gain.
AltiVec acceleration isn't just a matter of flicking a compiler switch though - the AltiVec optimisations in WarpJPEG are certainly not the same as in the MorphOS jpeg.datatype. I've no idea how good the AltiVec code is in the MorphOS datatype - it may be better/faster than WarpJPEG, or vice versa (I don't have the hardware to benchmark them).
AltiVec acceleration isn't just a matter of flicking a compiler switch though - the AltiVec optimisations in WarpJPEG are certainly not the same as in the MorphOS jpeg.datatype. I've no idea how good the AltiVec code is in the MorphOS datatype - it may be better/faster than WarpJPEG, or vice versa (I don't have the hardware to benchmark them).
True. Just out of interest, did you optimize it yourself or is it based on turbo-jpeg? Or both?
The AltiVec code came from libjpeg-turbo which became available earlier this year (although not in a release version yet). But, unlike libjpeg-turbo, WarpJPEG is still mainly jpeg-9a based, with a bit of old code from jpeg-6b, and the libjpeg-turbo AltiVec code bolted on, with added optimisations and features from myself. Hopefully it won't get too complicated to maintain this mix of code bases in the future :).
Probably a dumb question, but I noticed your user icon has IBrowse in it. Is that by any chance hinting at anything? Can't speak for everyone on the forum, but I know I'd pay good money for some updates to that browser for classic systems. *hint hint* ;)
Nice to hear :D. My avatar isn't new - it has been like that for quite a few years :) . IBrowse has not been forgotten about though - it is going to be tough, but I fully intend for IBrowse 2.5 to be released at some point, especially as I'd rather all my work in it doesn't go completely to waste. The OS4 native version will get AltiVec in the internal JPEG decoder, of course. The main stumbling block, apart from Stefan, is AmiSSL right now - many websites have shut off SSL v3 completely, so IBrowse desperately needs the updated AmiSSL which is also being worked on (albeit very slowly).