ham_convert 0.8

A new version based on the experiments from the past few months.



Get it here:
Mirror (all versions)


  • New internal palette generator using the Java Advanced Imaging library. NeuQuant was chosen due to its higher quality compared to other color reduction methods like median-cut.
  • Added the Jarvis, Judice, and Ninke dithering option. This method is more complex than Floyd-Steinberg, but produces much smoother output.
  • HAM6 now supports dithering, but it may cause more artefacts.
  • Sliced HAM modes – different palette every line for better color reproduction and less HAM artefacts.
  • Sliced indexed modes (16-256 colors every line).
  • Dynamic HiRes mode (sliced 16 color mode) – every line has its own 16 color palette. On pre-AGA Amigas this software mode allowed displaying more than 16 colors in high resolution modes that didn’t support HAM and more than 16 colors at once. This mode is experimental and quite problematic to code, because typical color reduction algorithms produce varied results when applied to a one pixel slice of the image. Every line often gets a palette that varies too much from the previous line (there are just 16 colors for every line) leading to a sliced vertically inconsistent image. You can select 1 to 4 of the available algorithms: Oct-tree, median-cut, NeuQuant, pseudo-random. The method with the lowest error will be determined every line.
  • YUV HAM10 prototype. Just an experiment to see what will happen if we adapt the HAM mode to the YUV colorspace instead of the RGB. HAM10 was the easiest to adapt, because it stores the channel data without modification. SET operation is not supported yet. Apparently YUV HAM works well without it because this mode can modify the Y (brightness) component in single operation.
  • Improved backgroung color selection on 4-color per 8xX block modes (every block has 3 colors out of 16 plus a shared background color for the whole screen).
  • Sharp X68000 16-bit hicolor mode from the 1988 (added as an upgrade to the 1987 model). Unlike the regular 16-bit hicolor (with 5 bits for red, 6 bits for green and 5 bits for blue channel) this one has 6 bits per channel. One bit defines a shared 6th bit on all channels. It looks worse than a normal 16-bit hicolor but still better than 15-bit hicolor. This mode supported resolutions up to 512×512. It was introduced in 1988 just 3 years after Amiga’s 4096-color HAM6 (360×576 max.).

Leave a Reply

Your email address will not be published. Required fields are marked *