|
The fastest 24-bit PNG picture datatype!
For 68k, OS4, WarpOS and MorphOS.
Copyright © 1999-2023 Oliver Roberts, All Rights Reserved.
|
Version: | 45.27 |
Released: | 8 May 2023 |
| Download |
|
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
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 libpng 1.6.39 and zlib 1.2.13
|
|
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.png nopng time test". For a
fair comparison, other datatypes tested were configured as close as
possible to WarpPNG's default settings (libpng defaults).
The table below shows the time (in seconds) it took to decode 14 different
images on my AmigaOne-XE G4-7455/800MHz with Radeon 7500. You may be
aware that the png.datatype supplied with OS4 was originally developed
by myself and based on WarpPNG, but since then other developers have taken
it backwards in terms of speed. Whilst WarpPNG itself continues to evolve
bringing more performance, now 60-100% faster than the OS4 png.datatype:
Benchmarked system AmigaOne-XE G4-7455/800MHz with Radeon 7500 | AmigaOS 4.x (PowerPC) |
WarpPNG 45.27 | OS 4.1 54.2 |
1024x768 24-bit colour, 833721 bytes | 0.14 | 0.21 | 1024x768 24-bit colour interlaced, 1037008 bytes | 0.17 | 0.27 | 779x767 24-bit colour, 946564 bytes | 0.12 | 0.21 | 473x639 24-bit colour, 377518 bytes | 0.06 | 0.09 | 473x639 24-bit colour interlaced, 459869 bytes | 0.07 | 0.12 | 368x463 24-bit colour, 279896 bytes | 0.04 | 0.06 | 251x400 24-bit colour, 136856 bytes | 0.02 | 0.04 | 718x425 8-bit grey, 157890 bytes | 0.04 | 0.05 | 718x425 8-bit grey interlaced, 182522 bytes | 0.04 | 0.06 | 1024x768 256 colours, 324599 bytes | 0.06 | 0.09 | 779x767 256 colours, 404245 bytes | 0.05 | 0.09 | 473x639 256 colours, 163397 bytes | 0.03 | 0.04 | 368x463 256 colours, 115942 bytes | 0.02 | 0.03 | 251x400 256 colours, 57056 bytes | 0.01 | 0.02 |
The table below shows the time (in seconds) it took to decode 14 different
images on my A1200 + BlizzardPPC 603e+/240MHz 060/50MHz, with BVision and
CGX picture.datatype, and test files located on a SCSI2SD V6. Other tested
datatypes were configured as close as possible to WarpPNG's internal
settings. However, 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 WarpPNG is noticably faster than all alternative PPC
datatypes.
The figures speak for themselves... WarpPNG for WarpOS is at least 70%
faster than other PPC datatypes in most cases (175-270% 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 slower is most 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.
With the 68k version, for non-interlaced images, WarpPNG is around 25%
faster than Gunther Nikl's PNGdt for 24-bit images and 50% faster for
8-bit images. For interlaced images, WarpPNG is 100% faster for
24-bit images, and 150% faster for 8-bit images. akPNG is slower than
both WarpPNG and Gunther Nikl's PNGdt.
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 |
WarpPNG 45.27 | akPNG 44.131 | WarpPNG 45.27 | akPNG 45.60 | MorphOS 50.4 | WarpPNG 45.27 | PNGdt 44.6 G.Nikl | akPNG 45.95 |
PowerUp (emul) | PowerUp (native) |
1024x768 24-bit colour, 833721 bytes | 0.85 | 1.84 | 1.54 | 0.96 | 1.16 | 2.17 | 2.48 | 3.22 | 3.75 | 1024x768 24-bit colour interlaced, 1037008 bytes | 0.96 | 2.27 | 1.90 | 1.04 | 1.93 | 2.64 | 2.67 | 5.71 | 5.84 | 779x767 24-bit colour, 946564 bytes | 0.74 | 1.90 | 1.75 | 0.86 | 1.08 | 2.04 | 2.26 | 2.96 | 3.50 | 473x639 24-bit colour, 377518 bytes | 0.35 | 0.63 | 0.80 | 0.39 | 0.49 | 0.61 | 0.98 | 1.30 | 1.53 | 473x639 24-bit colour interlaced, 459869 bytes | 0.42 | 0.79 | 1.00 | 0.46 | 0.80 | 0.77 | 1.08 | 2.28 | 2.44 | 368x463 24-bit colour, 279896 bytes | 0.25 | 0.45 | 0.58 | 0.27 | 0.34 | 0.34 | 0.64 | 0.89 | 1.07 | 251x400 24-bit colour, 136856 bytes | 0.16 | 0.27 | 0.35 | 0.17 | 0.20 | 0.18 | 0.36 | 0.51 | 0.63 | 718x425 8-bit grey, 157890 bytes | 0.18 | 0.52 | 0.61 | 0.19 | 0.24 | 0.21 | 0.43 | 0.61 | 0.76 | 718x425 8-bit grey interlaced, 182522 bytes | 0.22 | 0.57 | 0.68 | 0.23 | 0.58 | 0.31 | 0.48 | 1.29 | 1.53 | 1024x768 256 colours, 324599 bytes | 0.25 | 1.00 | 1.16 | 0.26 | 0.37 | 1.68 | 0.58 | 0.83 | 0.92 | 779x767 256 colours, 404245 bytes | 0.26 | 0.91 | 1.04 | 0.28 | 0.40 | 1.59 | 0.57 | 0.87 | 1.04 | 473x639 256 colours, 163397 bytes | 0.15 | 0.49 | 0.56 | 0.15 | 0.21 | 0.42 | 0.26 | 0.43 | 0.53 | 368x463 256 colours, 115942 bytes | 0.11 | 0.33 | 0.38 | 0.11 | 0.16 | 0.19 | 0.18 | 0.28 | 0.39 | 251x400 256 colours, 57056 bytes | 0.08 | 0.23 | 0.26 | 0.08 | 0.11 | 0.11 | 0.11 | 0.16 | 0.25 |
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.
|