AmigaOS 4.0


IBrowse - Get It

Valid XHTML 1.0!


RegisterRegister Now
Bug Tracker
Futaura.co.uk / Oliver Roberts
JPEG 45.13
PNG 45.21
TIFF 45.9
BMP 45.7
PCX 45.5
PSD 45.5
Prefs 45.9
· WarpPNG.datatype
The fastest 24-bit PNG picture datatype!
For 68k, OS4, WarpOS and MorphOS.
Copyright © 1999-2017 Oliver Roberts, All Rights Reserved.
Version: 45.21
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.

· Features

  • 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.28 and zlib 1.2.11
Warp Datatypes

· Speed

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 Nikl's PNGdt.

PowerPC/68K (dual-cpu) PowerPC (no 68K) M68K
akPNG 44.112WarpPNG
PNGdt 44.6
1024x768 24-bit colour, 833721 bytes1.
1024x768 24-bit colourinterlaced, 1037008 bytes1.422.442.741.191.932.643.415.856.20
779x767 24-bit colour, 946564 bytes1.001.822.110.971.082.042.793.053.68
473x639 24-bit colour, 377518 bytes0.470.910.980.440.490.611.231.351.63
473x639 24-bit colourinterlaced, 459869 bytes0.631.061.170.520.800.771.392.352.53
368x463 24-bit colour, 279896 bytes0.340.640.700.300.340.340.810.921.13
251x400 24-bit colour, 136856 bytes0.220.430.420.
718x425 8-bit grey, 157890 bytes0.240.490.510.
718x425 8-bit greyinterlaced, 182522 bytes0.310.550.570.260.580.310.621.311.57
1024x768 256 colours, 324599 bytes0.360.770.840.300.371.680.780.891.04
779x767 256 colours, 404245 bytes0.360.780.810.330.401.590.770.921.10
473x639 256 colours, 163397 bytes0.210.460.440.170.210.420.370.460.57
368x463 256 colours, 115942 bytes0.160.340.320.
251x400 256 colours, 57056 bytes0.

Note: all tests were performed, multiple times, using Visage, with the following command line: "visage test.png nopng 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-2020, All Rights Reserved - Terms & Conditions