WarpDT.co.uk

AmigaOS 4.0

MorphOS

IBrowse - Get It

Valid XHTML 1.0!

[counter]


News
DownloadDownload
Register Register Now
Bug Tracker
Futaura.co.uk / Oliver Roberts
JPEG 45.13
20.4.2016
PNG 45.21
24.3.2017
TIFF 45.9
4.5.2016
BMP 45.7
11.3.2011
PCX 45.5
25.2.2011
PSD 45.5
11.3.2011
Prefs 45.9
4.5.2016
 
 
· WarpJPEG.datatype
The fastest 24-bit JPEG picture datatype!
For 68k, OS4, WarpOS and MorphOS.
Copyright © 1999-2016 Oliver Roberts, All Rights Reserved.
Version: 45.13
Released: 20 April 2016
-Download


WarpJPEG.datatype is a yet another JFIF/JPEG datatype. The original difference being that it was for owners of PPC cards, and was targetted specifically at WarpUp (not PowerUp). Even better, it is fast, compact, clean, well behaved and fast - a true plug'n'play PPC datatype. Now though, 68k optimized and MorphOS + OS4 native versions have been added with AltiVec enhancements, which also benefit from my WarpDT engine. One of the key features is its superior speed, hence the name WarpJPEG. There are various user settings available, which can be changed using the WarpDT Preferences program.

· Features

  • Supports regular JFIF files, and also many JPEG variant formats such as Exif, Adobe, Photoshop, Mavi, Windows, JCCK/CMYK colorspace files and other less common formats
  • Supports both normal and progressive JPEG files
  • SmartScale lossless capable JPEG decoder
  • Can optionally downscale large images to fit the screen, during the JPEG decoding process, allowing huge oversized images to be loaded and displayed much faster.
  • Full true colour (24-bit) and high quality reduced colour (256 colours or less) and greyscale output modes, for graphics cards and native Amiga displays respectively
  • Highly optimized datatype dispatch engine, and fast JPEG decoder, resulting in a very efficient, compact and quick JPEG datatype
  • Asynchronous file i/o and double buffering techniques (WarpOS only), which speeds up image decoding
  • Optimized versions for 68020, 030, 040 and 060
  • PowerPC support with native OS4, WarpOS and MorphOS versions
  • AltiVec speed optimizations for OS4 and MorphOS
  • Alter the pen allocation precision when images are remapped to an 8-bit display
  • Specific support for the AmigaOS picture.datatype v44+, when available
  • The dithering feature of the AmigaOS picture.datatype v44+ can be configured to your liking (e.g. disabled for 15/16-bit displays)
  • Based on the Independent JPEG Group's jpeglib 9b/6b and libjpeg-turbo
Warp Datatypes

· Speed

The table below shows the time (in seconds) it took to decode 16 different images on my AmigaOne-XE G4-7455/800MHz with Radeon 7500. You may be aware that the jpeg.datatype supplied with OS4 was originally developed by myself and based on WarpJPEG, although WarpJPEG has moved on since then. It is therefore no surprise that without AltiVec there is not a lot of difference in speed between the two datatypes for smaller images, but WarpJPEG excels with images over 1 megapixels in size. With an AltiVec equipped processor, WarpJPEG comes into its own with a noticable performance increase - the performance gain on a PA6T is even greater than on a G4.

AmigaOS 4.x (PowerPC)
WarpJPEG 45.13OS 4.1
53.7
AltiVec OnAltiVec Off
6088x4550 24-bit colour, 3461416 bytes 1.7942.4963.008
4288x2848 24-bit colour, 2774552 bytes 1.0291.6221.702
2749x4049 24-bit colour, 1650665 bytes 0.6590.9471.210
3136x2352 24-bit colour, 438485 bytes 0.3540.5320.679
2000x3008 24-bit colour, 691688 bytes 0.3270.4810.612
3072x2048 24-bit colour, 421864 bytes 0.3060.4550.577
2008x1597 24-bit colour, 225570 bytes 0.1540.2310.291
1280x1012 24-bit colour, 148387 bytes 0.0680.1010.128
804x1040 24-bit colour, 306821 bytes 0.0770.1190.121
1024x766 24-bit colour, 244522 bytes 0.0710.1100.112
779x767 24-bit colour, 162752 bytes 0.0520.0810.082
779x767 24-bit colour progressive, 86016 bytes 0.1230.1480.150
450x450 24-bit colour, 50845 bytes 0.0180.0290.029
370x502 24-bit colour, 24480 bytes 0.0130.0180.022
506x1007 8-bit grey, 88115 bytes 0.0210.0270.029
761x495 8-bit grey progressive, 68593 bytes 0.0500.0500.053

Note: the above benchmarks measure the time taken by NewDTObject() to load and decode the image from a HDD, and are the average of 10 iterations.

The table below shows the time (in seconds) it took to decode 10 different images on my A1200 603e/240MHz 060/50MHz, with BVision and CGX picture.datatype, with other tested datatypes configured as close as possible to WarpJPEG's internal settings. However, I should emphasize that the figures above are for comparison purposes only - the actual values are likely to be slightly different (faster or slower) on your system, but I'm confident that the WarpOS version of WarpJPEG is noticably faster than all alternative PPC datatypes.

The figures speak for themselves... WarpJPEG for WarpOS is around 70-90% faster on most images (twice as fast on greyscale and small colour images) than other PPC datatypes and around 3-4 times faster than 68k datatypes on a 060 (the speed difference will be even greater on 040 systems with a fast PPC). Maybe you don't believe these claims - my answer to that is simple... Try WarpJPEG for yourself and you will see the difference! :)

The results for the MorphOS version are interesting. It's actually on par with the WarpOS version (above), and actually even faster in some cases, especially with larger images. It's also faster than the PowerUp version of akJFIF running under PowerUp emulation in MorphOS, where it's at least 30% faster. For smaller images, it's twice as fast, and for greyscale images it can be upto 5 times faster than akJFIF! No benchmarks for 68k versions are included because they were found to be many times slower.

The results for the 68k version are much tighter, although overall, WarpJPEG comes out on top. Not by that much, but faster nonetheless.

PowerPC/68K (dual-cpu) PowerPC (no 68K) M68K
WarpOSPowerUpMorphOS
WarpJPEG
45.11
akJFIF 44.112WarpJPEG
45.11
akJFIF 44.112WarpJPEG
45.11
JFIFdt 44.7
G.Nikl
akJFIF
45.95
OS
3.9
PowerUp
(emul)
PowerUp
(native)
PowerUp
(emul)
2008x1597 24-bit colour, 225570 bytes 1.983.863.601.542.035.565.856.758.77
1280x1012 24-bit colour, 148387 bytes 0.881.741.590.741.012.632.753.093.96
804x1040 24-bit colour, 306821 bytes 0.881.561.460.871.133.283.343.633.50
1024x766 24-bit colour, 244522 bytes 0.841.541.410.831.133.093.193.453.31
779x767 24-bit colour, 162752 bytes 0.621.111.020.600.822.192.252.452.33
779x767 24-bit colour progressive, 86016 bytes 1.131.631.470.771.052.602.973.193.03
450x450 24-bit colour, 50845 bytes 0.250.480.410.240.420.720.730.810.76
370x502 24-bit colour, 24480 bytes 0.180.380.320.160.340.430.450.530.63
506x1007 8-bit grey, 88115 bytes 0.220.510.450.241.140.720.910.830.76
761x495 8-bit grey progressive, 68593 bytes 0.380.610.540.321.071.001.141.091.05

Note: all tests were performed, multiple times, using Visage, with the following command line: "visage test.jpg nojpeg time test".

· Requirements

  • Kickstart 3.0 or higher
  • picture.datatype v43 or higher (i.e. either of the ones supplied with AmigaOS 3.5+, P96 or CGraphX)
68k version
  • 68020 processor or higher (optimized versions included)
WarpOS version
  • PPC accelerator card + 68040/060
  • WarpUp Release 5.0 or higher
OS4 version
  • PPC accelerator card / AmigaOne / SAM
  • AmigaOS 4.0 or higher
MorphOS version
  • PPC accelerator card / Pegasos / Efika
  • MorphOS 1.4 or higher
Note that a graphics card is not necessary.


Page design by Oliver Roberts - Copyright © 2001-2017, All Rights Reserved - Terms & Conditions.