Apple
IIgs Super Hi-Res (SHR) Converter Output Comparison A2B and Prism - Summer
2015
Dithered
and Raw (non-dithered) Output
A2B
Multipalette Output compared to Prism Brooks Mode3200 Output
Brooks
Mode3200 Comparisons Unplugged
Converted
GIF File Comparison Girl256
Equivalent Prism and A2B Output
Converted
24-bit Input File Comparison RAM
Equivalent
Prism and A2B Output
Converted
24-bit Input File Comparison SUNDOWN
Equivalent
Prism and A2B Output
Converted
24-bit Input File Comparison TETONS
Equivalent
Prism and A2B Output
Sample
Slideshows (Thousands of SHR files)
Additional
Development and Downloads
This article compares the external segmented palette output from A2B Version 7.0 to the default output from Prism.
Prism is a native mode SHR graphics converter for the Apple IIgs written by Ron Mercer and released in 1992. Prism provides non-dithered 320 x 200 output only, in 1-palette, 16-palettes, and 200-palettes.
Prism does not accept common modern 24-bit graphics files like bmp, jpg or png as input files, and even though it accepts GIF files for input, the GIFs I used as Prisms input files for this article needed to be resaved in an old MS-DOS graphics converter in order to get Prism to load them. Unlike other old native mode SHR converters like Convert3200 and SuperConvert which can be used with input files that are still generally available today, it is not very convenient to use Prism anymore.
Prisms 320 x 200 output is generally quite posterized and provides much fewer colors than A2Bs output. In fact, A2Bs 16-palette SHR output generally has more unique colors than Prisms 200-palette output.
Palette segments in Prisms 16-palette output can be quite visible.
By default A2B uses my own E-dither (the Buckels dither). A2B optionally provides Floyd-Steinberg and Atkinson. Dithering is also optional in A2B. By default output is raw. My preference in general is to use E-dithering for SHR output because I think it provides the best results overall.
For most of the informal comparison that follows, A2Bs E-dithered output is used. A2Bs default E-dithering applies leftover error correction randomly within the dithering pattern. The idea is not to provide a completely random dither because that is just noise. The idea is to provide a different random distribution for each of the 3 RGB color channels of any remaining color error caused by an integer divide. These remainders are small amounts added to the normal weight of one of the locations in the pattern. Normally this would be weighted to one of the larger weights or thrown away altogether effectively resulting in an error under-run and loss of precision in color channels with darker values.
The last comparison set in the informal comparison is the only comparison that uses raw output from A2B.
Prisms output is is effectively raw.
In my other articles that compare A2Bs output to other SHR converters that run on the Apple IIgs, like Convert3200 and SuperConvert, I used a consistent set of 4 images representing some things that I look for in 320 x 200 SHR output from any converter. This set of 4-images constitutes what I am calling the formal comparison.
The formal comparison in this article is at the end. What follows next is an informal comparison of what I am looking for in Prism.
In the typical Multipalette output below, A2B averaged almost 3 times as many unique colors per image as Prism.
A2B 20 images Total unique IIgs colors = 1770, Average colors = 89 per image 284% more colors than Prism - (1770 / 6.23)
|
Prism 20 images Total unique IIgs colors = 623, Average colors = 31 per image 65% fewer colors than A2B - (100-(623 / 1770)) |
A2B 16 palettes 73 unique IIgs Colors A2B 16 palettes 98 unique IIgs Colors A2B 16 palettes 61 unique IIgs Colors A2B 16 palettes 80 unique IIgs Colors A2B 16 palettes 88 unique IIgs Colors A2B 16 palettes 76 unique IIgs Colors A2B 16 palettes 56 unique IIgs Colors A2B 16 palettes 92 unique IIgs Colors A2B 16 palettes 104 unique IIgs Colors A2B 16 palettes 68 unique IIgs Colors A2B 16 palettes 73 unique IIgs Colors A2B 16 palettes 108 unique IIgs Colors A2B 16 palettes 99 unique IIgs Colors A2B 16 palettes 104 unique IIgs Colors A2B 16 palettes 131 unique IIgs Colors A2B 16 palettes 72 unique IIgs Colors A2B 16 palettes 106 unique IIgs Colors A2B 16 palettes 110 unique IIgs Colors A2B 16 palettes 97 unique IIgs Colors A2B 16 palettes 74 unique IIgs Colors |
Prism 16 palettes 27 unique IIgs Colors Prism 16 palettes 31 unique IIgs Colors Prism 16 palettes 32 unique IIgs Colors Prism 16 palettes 23 unique IIgs Colors Prism 16 palettes 23 unique IIgs Colors Prism 16 palettes 28 unique IIgs Colors Prism 16 palettes 28 unique IIgs Colors Prism 16 palettes 29 unique IIgs Colors Prism 16 palettes 33 unique IIgs Colors Prism 16 palettes 27 unique IIgs Colors Prism 16 palettes 35 unique IIgs Colors Prism 16 palettes 34 unique IIgs Colors Prism 16 palettes 34 unique IIgs Colors Prism 16 palettes 30 unique IIgs Colors Prism 16 palettes 43 unique IIgs Colors Prism 16 palettes 19 unique IIgs Colors Prism 16 palettes 41 unique IIgs Colors Prism 16 palettes 35 unique IIgs Colors Prism 16 palettes 39 unique IIgs Colors Prism 16 palettes 32 unique IIgs Colors |
70% of A2Bs Multipalette output below (14 out of 20 images) uses more unique colors per image than the same image converted to Brooks Mode3200 200-palette output using Prism, also shown below. Overall, A2Bs Multipalette output below has 11% more unique Apple IIgs colors on the average than Prisms 200-palette rendering. Due to A2Bs higher precision rendering at a greater color depth resulting in smoother gradience and more accurate error correction, even the 6 Multipalette images with fewer colors than their Prism 200-palette counterparts provided better results, as shown below. Providing more colors does not alone make a better conversion, but providing too few colors makes a worse conversion.
In practical terms,
this implies that the average modern programmer writing in the C language to
produce a simple 8-bit cross-compiled cc65 6502 program to load a standard
mode320 screen image produced by A2B will provide better results with far less
effort than it would take an expert IIgs programmer to write a complicated
ProDOS 16 Mode3200 Brooks loader, and with far worse results for the expert
programmer if Prism was used to produce the Brooks images used by the loader.
The 8-bit program would also be capable of performing normal background
operations because it would not need to spend all its time changing SHR
palettes like the Brooks loader would need to. Properly converted SHR Mode320
Multipalette Images like those produced by A2B are so much better than the
Brooks Mode conversions produced by Prism, that even a beginner can write a
more effective C program that uses ordinary SHR screen images than an expert
IIgs assembly language programmer who targeted Brooks Mode simply because of
inferior Multipalette conversions like those done by Prism back in the day when
the IIgs was in wide use.
A2B 16 palette images Total unique IIgs colors = 1770, Average colors = 89 per image
|
Prism 200 palette images Total unique IIgs colors = 1592, Average colors = 80 per image. |
A2B 16 palettes 73 unique IIgs Colors A2B 16 palettes 98 unique IIgs Colors A2B 16 palettes 61 unique IIgs Colors A2B 16 palettes 80 unique IIgs Colors A2B 16 palettes 88 unique IIgs Colors A2B 16 palettes 76 unique IIgs Colors A2B 16 palettes 56 unique IIgs Colors A2B 16 palettes 92 unique IIgs Colors A2B 16 palettes 104 unique IIgs Colors A2B 16 palettes 68 unique IIgs Colors A2B 16 palettes 73 unique IIgs Colors A2B 16 palettes 108 unique IIgs Colors A2B 16 palettes 99 unique IIgs Colors A2B 16 palettes 104 unique IIgs Colors A2B 16 palettes 131 unique IIgs Colors A2B 16 palettes 72 unique IIgs Colors A2B 16 palettes 106 unique IIgs Colors A2B 16 palettes 110 unique IIgs Colors A2B 16 palettes 97 unique IIgs Colors A2B 16 palettes 74 unique IIgs Colors |
Prism 200 palettes 68 unique IIgs Colors Prism 200 palettes 74 unique IIgs Colors Prism 200 palettes 38 unique IIgs Colors Prism 200 palettes 85 unique IIgs Colors (5 more colors but is it better?) Prism 200 palettes 92 unique IIgs Colors (4 more colors but is it better?) Prism 200 palettes 57 unique IIgs Colors Prism 200 palettes 75 unique IIgs Colors (19 more colors but is it better?) Prism 200 palettes 101 unique IIgs Colors (9 more colors but is it better?) Prism 200 palettes 70 unique IIgs Colors Prism 200 palettes 61 unique IIgs Colors Prism 200 palettes 92 unique IIgs Colors (19 more colors but is it better?) Prism 200 palettes 83 unique IIgs Colors Prism 200 palettes 78 unique IIgs Colors Prism 200 palettes 113 unique IIgs Colors (9 more colors but is it better?) Prism 200 palettes 112 unique IIgs Colors Prism 200 palettes 50 unique IIgs Colors Prism 200 palettes 101 unique IIgs Colors Prism 200 palettes 89 unique IIgs Colors Prism 200 palettes 92 unique IIgs Colors Prism 200 palettes 61 unique IIgs Colors |
In the typical 200 palette output below, A2B averaged over twice as many unique colors per image as Prism. This should not be surprising, since 70% of A2Bs Multipalette output shown above
(14 out of 20 images) uses more unique colors per image than the same image converted to Brooks Mode3200 using Prism. Providing more colors does not alone make a better conversion, but providing too few colors makes a worse conversion.
An expert IIgs
programmer who can write a Brooks Mode3200 image display program probably
shouldnt be wasting time with output from Prism if for no other reason than
even a modern average C programmer like me can provide better looking results
in a simple cc65 C program displaying A2Bs 16-palette output, no experience
necessary.
A2B 20 images Total unique IIgs colors = 3686, Average colors = 184 per image 232% more colors than Prism - (3686 / 15.92) |
Prism 20 images Total unique IIgs colors = 1592, Average colors = 79 per image 57% fewer colors than A2B - (100-(1592/3686)) |
A2B 200 palettes 180 unique IIgs Colors A2B 200 palettes 182 unique IIgs Colors A2B 200 palettes 86 unique IIgs Colors A2B 200 palettes 140 unique IIgs Colors A2B 200 palettes 140 unique IIgs Colors A2B 200 palettes 123 unique IIgs Colors A2B 200 palettes 128 unique IIgs Colors A2B 200 palettes 193 unique IIgs Colors A2B 200 palettes 204 unique IIgs Colors A2B 200 palettes 128 unique IIgs Colors A2B 200 palettes 191 unique IIgs Colors A2B 200 palettes 270 unique IIgs Colors A2B 200 palettes 237 unique IIgs Colors A2B 200 palettes 238 unique IIgs Colors A2B 200 palettes 318 unique IIgs Colors A2B 200 palettes 122 unique IIgs Colors A2B 200 palettes 215 unique IIgs Colors A2B 200 palettes 251 unique IIgs Colors A2B 200 palettes 195 unique IIgs Colors A2B 200 palettes 145 unique IIgs Colors |
Prism 200 palettes 68 unique IIgs Colors Prism 200 palettes 74 unique IIgs Colors Prism 200 palettes 38 unique IIgs Colors Prism 200 palettes 85 unique IIgs Colors Prism 200 palettes 92 unique IIgs Colors Prism 200 palettes 57 unique IIgs Colors Prism 200 palettes 75 unique IIgs Colors Prism 200 palettes 101 unique IIgs Colors Prism 200 palettes 70 unique IIgs Colors Prism 200 palettes 61 unique IIgs Colors Prism 200 palettes 92 unique IIgs Colors Prism 200 palettes 83 unique IIgs Colors Prism 200 palettes 78 unique IIgs Colors Prism 200 palettes 113 unique IIgs Colors Prism 200 palettes 112 unique IIgs Colors Prism 200 palettes 50 unique IIgs Colors Prism 200 palettes 101 unique IIgs Colors Prism 200 palettes 89 unique IIgs Colors Prism 200 palettes 92 unique IIgs Colors Prism 200 palettes 61 unique IIgs Colors |
I have not promoted raw output through A2Bs development cycle in order to explore the capabilities of E-dithering for SHR output.
The A2B output shown above was E-dithered. E-dithering no matter how well done is not always what you will want, even if some of the problems inherent with raw SHR output show-up in A2Bs raw output. A2Bs output in the following comparison is raw and non-dithered. On average based on the 20 images in this comparison set, A2Bs output has approx. 3 times the number of unique colors per image as Prisms output.
A2B 20 images Total unique IIgs colors = 4463, Average colors = 223 per image 280% more colors than Prism - (4463 / 15.92) |
Prism 20 images Total unique IIgs colors = 1592, Average colors = 79 per image 64% fewer colors than A2B - (100 - (1592 / 4463)) |
A2B 200 palettes 232 unique IIgs Colors A2B 200 palettes 233 unique IIgs Colors A2B 200 palettes 95 unique IIgs Colors (probably better to E-dither this one) A2B 200 palettes 160 unique IIgs Colors (probably better to E-dither this one) A2B 200 palettes 159 unique IIgs Colors (probably better to E-dither this one) A2B 200 palettes 151 unique IIgs Colors A2B 200 palettes 167 unique IIgs Colors A2B 200 palettes 234 unique IIgs Colors A2B 200 palettes 230 unique IIgs Colors A2B 200 palettes 183 unique IIgs Colors (probably better to E-dither this one) A2B 200 palettes 243 unique IIgs Colors A2B 200 palettes 334 unique IIgs Colors A2B 200 palettes 315 unique IIgs Colors A2B 200 palettes 283 unique IIgs Colors A2B 200 palettes 414 unique IIgs Colors A2B 200 palettes 155 unique IIgs Colors A2B 200 palettes 253 unique IIgs Colors (probably better to E-dither this one) A2B 200 palettes 251 unique IIgs Colors A2B 200 palettes 216 unique IIgs Colors A2B 200 palettes 155 unique IIgs Colors (probably better to E-dither this one) |
Prism 200 palettes 68 unique IIgs Colors Prism 200 palettes 74 unique IIgs Colors Prism 200 palettes 38 unique IIgs Colors Prism 200 palettes 85 unique IIgs Colors Prism 200 palettes 92 unique IIgs Colors Prism 200 palettes 57 unique IIgs Colors Prism 200 palettes 75 unique IIgs Colors Prism 200 palettes 101 unique IIgs Colors Prism 200 palettes 70 unique IIgs Colors Prism 200 palettes 61 unique IIgs Colors Prism 200 palettes 92 unique IIgs Colors Prism 200 palettes 83 unique IIgs Colors Prism 200 palettes 78 unique IIgs Colors Prism 200 palettes 113 unique IIgs Colors Prism 200 palettes 112 unique IIgs Colors Prism 200 palettes 50 unique IIgs Colors Prism 200 palettes 101 unique IIgs Colors Prism 200 palettes 89 unique IIgs Colors Prism 200 palettes 92 unique IIgs Colors Prism 200 palettes 61 unique IIgs Colors |
Input Image 320 x 200 x 256 colors |
A2B 1 palette dithered 15 unique colors |
A2B 16 palettes dithered 83 unique IIgs colors (229 unique 24-bit colors) |
A2B 200 palettes dithered 183 unique IIgs colors (1073 unique 24-bit colors) |
Prism 1 palette non-dithered 16 unique IIgs colors |
A2B 1 palette non-dithered 15 unique IIgs colors (16 unique 24-bit colors) |
Prism 16 palettes non-dithered 30 unique IIgs colors |
A2B 16 palettes non-dithered 86 unique IIgs colors (244 unique 24-bit colors) |
Prism 200 palettes non-dithered 52 unique IIgs colors |
A2B 200 palettes non-dithered 227 unique IIgs colors (2089 unique 24-bit colors) |
Input Image 320 x 200 x 45808 unique 24-bit colors (256 unique GIF colors) |
A2B 1 palette dithered 16 unique colors |
A2B 16 palettes dithered 98 unique IIgs colors (237 unique 24-bit colors) |
A2B 200 palettes dithered 204 unique IIgs colors (1258 unique 24-bit colors) |
Prism 1 palette non-dithered 16 unique IIgs colors |
A2B 1 palette non-dithered 16 unique colors |
Prism 16 palettes non-dithered 40 unique IIgs colors |
A2B 16 palettes non-dithered 100 unique IIgs colors (252 unique 24-bit colors) |
Prism 200 palettes non-dithered 91 unique IIgs colors |
A2B 200 palettes non-dithered 243 unique IIgs colors (2835 unique 24-bit colors) |
Input Image 320 x 200 x 45699 unique 24-bit colors (256 unique GIF colors) |
A2B 1 palette dithered 16 colors |
A2B 16 palettes dithered 148 unique IIgs colors (222 unique 24-bit colors) |
A2B 200 palettes dithered 370 unique IIgs colors (1265 unique 24-bit colors) |
Prism 1 palette non-dithered 16 unique IIgs colors |
A2B 1 palette non-dithered 16 unique colors |
Prism 16 palettes non-dithered 76 unique IIgs colors |
A2B 16 palettes non-dithered 153 unique IIgs colors (238 unique 24-bit colors) |
Prism 200 palettes non-dithered 149 unique IIgs colors |
A2B 200 palettes non-dithered 468 unique IIgs colors (2602 unique 24-bit colors) |
Input Image 320 x 200 x 37349 unique 24-bit colors (256 unique GIF colors) |
A2B 1 palette dithered 16 unique colors |
A2B 16 palettes dithered 118 unique IIgs colors (234 unique 24-bit colors) |
A2B 200 palettes dithered 258 unique IIgs colors (1237 unique 24-bit colors) |
Prism 1 palette non-dithered 16 unique IIgs colors |
A2B 1 palette non-dithered 16 unique colors |
Prism 16 palettes non-dithered 73 unique IIgs colors |
A2B 16 palettes non-dithered 119 unique IIgs colors (235 unique 24-bit colors) |
Prism 200 palettes non-dithered 135 unique IIgs colors |
A2B 200 palettes non-dithered 292 unique IIgs colors (2274 unique 24-bit colors) |
The A2B Current Snapshot (pre-release of Version 7.0) used to produce this article, and other articles, accompanying disks and samples can be downloaded at the following link:
http://www.appleoldies.ca/a2b/Summer2015/
A2B comes with source and for Windows users, a Win32 binary and should compile in a gcc compatible system including OSX and Linux. It is written in ANSI C with no dependencies on 3rd party libraries.
The input and output files used in this article can also be downloaded in zip format from the link above. The output files in the zip file are in both Apple IIgs format and Magnified png format
Also available from the link above, for review purposes, are 7-disk images in 20MG hdv format containing thousands of samples of dithered and non-dithered A2B 16-palette and 200-palette output created by A2B using the current external segmented palette output option. These disk images are organized into slideshows and will run on a IIgs or a IIgs emulator like kegs32. The quality of the output varies and is completely unretouched in order to provide an unvarnished overview of the current status of A2Bs output using a variety of continuous tone content. Some conversions are good, some are bad, and some are ugly. Regardless, these are some of the actual test images used in A2Bs latest development.
I will be selectively providing additional documents using A2B to produce SHR output and also about additional development for the Summer of 2015, with supporting downloads in the days ahead. All this will be at the link above, including A2Bs latest snapshot including source code.
All the Best,
Bill Buckels
August 7, 2015