|
The fastest 24-bit JPEG picture datatype!
For 68k, OS4, WarpOS and MorphOS.
Copyright © 1999-2022 Oliver Roberts, All Rights Reserved.
|
Version: | 45.17 |
Released: | 8 October 2022 |
 | 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.
- 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 9e/6b and libjpeg-turbo
|
|
All benchmarks below were calculated with PicDTBench and its default
settings, loading images from a HDD, using the average of 10 iterations,
functionally comparable to "visage test.jpg nojpeg time test". For a
fair comparison, other datatypes tested were configured as close as
possible to WarpJPEG's default settings (jpeglib defaults), including
best quality, slower integer IDCT. Obviously, you can get faster speeds
by choosing to switch to the faster less accurate IDCT.
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.
Benchmarked system AmigaOne-XE G4-7455/800MHz with Radeon 7500 | AmigaOS 4.x (PowerPC) |
WarpJPEG 45.17 | OS 4.1 54.1 |
AltiVec On | AltiVec Off |
6088x4550 24-bit colour, 3461416 bytes | 2.40 | 3.21 | 3.79 | 4288x2848 24-bit colour, 2774552 bytes | 1.28 | 1.95 | 2.03 | 2749x4049 24-bit colour, 1650665 bytes | 0.98 | 1.29 | 1.53 | 3136x2352 24-bit colour, 438485 bytes | 0.56 | 0.77 | 0.91 | 2000x3008 24-bit colour, 691688 bytes | 0.49 | 0.67 | 0.77 | 3072x2048 24-bit colour, 421864 bytes | 0.47 | 0.66 | 0.78 | 2008x1597 24-bit colour, 225570 bytes | 0.25 | 0.34 | 0.40 | 1280x1012 24-bit colour, 148387 bytes | 0.11 | 0.15 | 0.17 | 804x1040 24-bit colour, 306821 bytes | 0.10 | 0.14 | 0.15 | 1024x766 24-bit colour, 244522 bytes | 0.09 | 0.13 | 0.14 | 779x767 24-bit colour, 162752 bytes | 0.07 | 0.10 | 0.10 | 779x767 24-bit colour progressive, 86016 bytes | 0.14 | 0.17 | 0.17 | 450x450 24-bit colour, 50845 bytes | 0.03 | 0.04 | 0.04 | 370x502 24-bit colour, 24480 bytes | 0.02 | 0.03 | 0.03 | 506x1007 8-bit grey, 88115 bytes | 0.04 | 0.05 | 0.05 | 761x495 8-bit grey progressive, 68593 bytes | 0.06 | 0.07 | 0.07 |
The tables below shows the time (in seconds) it took to decode 13 different
images on my A1200 + BlizzardPPC 603e+/240MHz 060/50MHz, with BVision and
CGX picture.datatype, and test files located on a SCSI2SD V6. I should
emphasize that the figures below 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 60-80%
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
similar speed as the WarpOS version (above), although a little
slower for larger images. It's faster than both akJFIF and the
JPEG datatype supplied with MorphOS, where it is up to 30% faster.
Obviously, if running the MorphOS version on AltiVec capable
hardware, you can expect WarpJPEG to be much faster, of a
magnitude similar to the AmigaOS 4.x version.
The results for the 68k version are much tighter, and in some cases
WarpJPEG is actually much faster, especially for larger images.
Benchmarked system A1200 + BlizzardPPC 603e+/240MHz 060/50MHz, BVision, CGX picture.datatype + SCSI2SD V6 | PowerPC/68K (dual-cpu) | | PowerPC (no 68K) | | M68K |
WarpOS | PowerUp | MorphOS |
WarpJPEG 45.17 | akJFIF 44.131 | WarpJPEG 45.17 | akJFIF 45.57 | MOS 44.2 | WarpJPEG 45.17 | JFIFdt 44.11 G.Nikl | akJFIF 45.95 | OS 3.9 | CGX 43.10 |
PowerUp (emul) | PowerUp (native) |
3136x2352 24-bit colour, 438485 bytes | 2.90 | 5.10 | 5.04 | 3.12 | 3.93 | 4.62 | 10.81 | 12.02 | 12.27 | 18.59 | 21.77 | 2000x3008 24-bit colour, 691688 bytes | 2.49 | 4.51 | 4.47 | 2.77 | 3.68 | 4.16 | 11.11 | 12.18 | 12.84 | 17.81 | 21.63 | 3072x2048 24-bit colour, 421864 bytes | 2.59 | 4.54 | 4.49 | 2.71 | 3.44 | 4.14 | 8.79 | 9.63 | 10.18 | 15.47 | 17.75 | 2008x1597 24-bit colour, 225570 bytes | 1.32 | 2.21 | 2.19 | 1.35 | 1.66 | 2.06 | 4.87 | 5.37 | 5.54 | 8.22 | 9.61 | 1280x1012 24-bit colour, 148387 bytes | 0.57 | 1.03 | 1.00 | 0.57 | 0.73 | 0.83 | 2.29 | 2.50 | 2.65 | 3.76 | 4.45 | 804x1040 24-bit colour, 306821 bytes | 0.64 | 1.04 | 1.04 | 0.69 | 0.84 | 0.73 | 2.95 | 2.90 | 3.37 | 3.37 | 4.29 | 1024x766 24-bit colour, 244522 bytes | 0.61 | 1.07 | 1.05 | 0.66 | 0.89 | 0.75 | 2.82 | 2.80 | 3.22 | 3.19 | 4.09 | 779x767 24-bit colour, 162752 bytes | 0.44 | 0.73 | 0.73 | 0.46 | 0.56 | 0.51 | 1.99 | 1.97 | 2.26 | 2.24 | 2.86 | 779x767 24-bit colour progressive, 86016 bytes | 0.66 | 0.97 | 0.96 | 0.66 | 0.95 | 0.71 | 2.21 | 2.53 | 2.76 | 2.72 | x | 450x450 24-bit colour, 50845 bytes | 0.16 | 0.31 | 0.30 | 0.16 | 0.20 | 0.18 | 0.65 | 0.64 | 0.73 | 0.73 | 0.90 | 370x502 24-bit colour, 24480 bytes | 0.11 | 0.24 | 0.23 | 0.10 | 0.14 | 0.14 | 0.37 | 0.41 | 0.44 | 0.60 | 0.71 | 506x1007 8-bit grey, 88115 bytes | 0.15 | 0.68 | 0.67 | 0.15 | 0.21 | 0.17 | 0.62 | 1.07 | 0.75 | 0.71 | 1.01 | 761x495 8-bit grey progressive, 68593 bytes | 0.26 | 0.65 | 0.63 | 0.23 | 0.28 | 0.25 | 0.91 | 1.15 | 0.98 | 0.95 | x |
(x = not supported)
68k version
- Kickstart 3.0 or higher
- 68020 processor or higher (optimized versions included)
- picture.datatype v43 or higher (supplied with AmigaOS 3.1.4, 3.2, 3.5, 3.9, CyberGraphX, P96 or AfA OS)
WarpOS version
- Kickstart 3.0 or higher
- PPC accelerator card + 68040/060
- WarpUp Release 5.0 or higher
- picture.datatype v43 or higher (supplied with AmigaOS 3.1.4, 3.2, 3.5, 3.9, CyberGraphX, P96 or AfA OS)
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.
|