The fastest 24-bit PNG picture datatype!
For 68k, OS4, WarpOS and MorphOS.
Copyright © 1999-2017 Oliver Roberts, All Rights Reserved.
|Released: ||24 March 2017
WarpPNG.datatype is a yet another PNG
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, OS4 and MorphOS native
versions have been added, which also benefit from my WarpDT engine.
One of the key features is its superior speed, hence the name WarpPNG.
There are various user settings available, which can be changed
using the WarpDT Preferences program.
- Supports both normal and interlaced PNG files
- Gamma correction options allow the output image to be changed to
suit your monitor/environment
- Alpha channel handling can be configured to output RGBA bitmaps, or
RGB bitmaps either by combining the alpha information internally using a
configurable background colour or simply stripping it
- Highly optimized datatype dispatch engine, and fast PNG decoder,
resulting in a very efficient, compact and quick PNG 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
- Alter the pen allocation precision when images are remapped to an
- 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 libpng 1.6.28 and zlib 1.2.11
The table below shows the time (in seconds) it took to decode 14 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 WarpPNG'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 WarpPNG is noticably faster than all
alternative PPC datatypes.
The figures speak for themselves... WarpPNG for WarpOS is at least 75%
faster than other PPC datatypes in most cases (100-300% faster with palette
based and/or smaller files), and around 3 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 WarpPNG for yourself and you will see the difference! :)
The MorphOS version is round about the same speed as the WarpOS version
(above), but a little bit faster in some cases. It's 10-40% faster
than akPNG for non-interlaced images, and upto 2-3 times faster for
interlaced images. The PNG datatype supplied with MorphOS is somewhat
slower than WarpPNG in most cases.
The results for the 68k version are much tighter, with WarpPNG being around
10% faster than Gunther Nikl's excellent PNGdt on non-interlaced images.
For interlaced images, WarpPNG is 71% faster for 24-bit images, and 110%
faster for 8-bit images. akPNG is slower than both WarpPNG and Gunther
|PowerPC/68K (dual-cpu)|| ||PowerPC (no 68K)|| ||M68K|
|1024x768 24-bit colour, 833721 bytes
|1024x768 24-bit colour interlaced, 1037008 bytes
|779x767 24-bit colour, 946564 bytes
|473x639 24-bit colour, 377518 bytes
|473x639 24-bit colour interlaced, 459869 bytes
|368x463 24-bit colour, 279896 bytes
|251x400 24-bit colour, 136856 bytes
|718x425 8-bit grey, 157890 bytes
|718x425 8-bit grey interlaced, 182522 bytes
|1024x768 256 colours, 324599 bytes
|779x767 256 colours, 404245 bytes
|473x639 256 colours, 163397 bytes
|368x463 256 colours, 115942 bytes
|251x400 256 colours, 57056 bytes
Note: all tests were performed, multiple times, using Visage, with the following
command line: "visage test.png nopng time test".
- Kickstart 3.0 or higher
- picture.datatype v43 or higher
(i.e. either of the ones supplied with AmigaOS 3.5+, P96 or CGraphX)
- 68020 processor or higher (optimized versions included)
- PPC accelerator card + 68040/060
- WarpUp Release 5.0 or higher
- PPC accelerator card / AmigaOne / SAM
- AmigaOS 4.0 or higher
Note that a graphics card is not necessary.
- PPC accelerator card / Pegasos / Efika
- MorphOS 1.4 or higher