AmigaOS 4.0


IBrowse - Get It

Valid XHTML 1.0!


RegisterRegister Now
Bug Tracker
Futaura.co.uk / Oliver Roberts
· WarpPNG.datatype
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

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.39 and zlib 1.2.13
Warp Datatypes

· Speed

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)
OS 4.1
1024x768 24-bit colour, 833721 bytes0.140.21
1024x768 24-bit colour interlaced, 1037008 bytes0.170.27
779x767 24-bit colour, 946564 bytes0.120.21
473x639 24-bit colour, 377518 bytes0.060.09
473x639 24-bit colour interlaced, 459869 bytes0.070.12
368x463 24-bit colour, 279896 bytes0.040.06
251x400 24-bit colour, 136856 bytes0.020.04
718x425 8-bit grey, 157890 bytes0.040.05
718x425 8-bit grey interlaced, 182522 bytes0.040.06
1024x768 256 colours, 324599 bytes0.060.09
779x767 256 colours, 404245 bytes0.050.09
473x639 256 colours, 163397 bytes0.030.04
368x463 256 colours, 115942 bytes0.020.03
251x400 256 colours, 57056 bytes0.010.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
akPNG 44.131WarpPNG
PNGdt 44.6
1024x768 24-bit colour, 833721 bytes0.851.841.540.961.162.172.483.223.75
1024x768 24-bit colour interlaced, 1037008 bytes0.962.271.901.041.932.642.675.715.84
779x767 24-bit colour, 946564 bytes0.741.901.750.861.
473x639 24-bit colour, 377518 bytes0.350.630.800.390.490.610.981.301.53
473x639 24-bit colour interlaced, 459869 bytes0.420.791.000.460.800.771.082.282.44
368x463 24-bit colour, 279896 bytes0.250.450.580.270.340.340.640.891.07
251x400 24-bit colour, 136856 bytes0.160.270.350.
718x425 8-bit grey, 157890 bytes0.180.520.610.
718x425 8-bit grey interlaced, 182522 bytes0.220.570.680.230.580.310.481.291.53
1024x768 256 colours, 324599 bytes0.
779x767 256 colours, 404245 bytes0.260.911.040.280.401.590.570.871.04
473x639 256 colours, 163397 bytes0.150.490.560.150.210.420.260.430.53
368x463 256 colours, 115942 bytes0.110.330.380.
251x400 256 colours, 57056 bytes0.

· System Requirements

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.

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