ham_convert 1.2.1

A new version extending the existing dual mode and adding the experimental triple mode.

ham_convert 1.2.1

ham_convert 1.2.1

Main mirror (all stable and testing versions)
External mirror


  • HAM8/HAM10 dual mode: optional dual pixel error calculation with forward prediction (similar to the existing HAM6 dual mode). Current pixel’s error weight can also be adjusted.
  • HAM6: triple mode – similar to the dual mode but with three pixels instead of two. That makes it both much slower and more efficient. Always use this option for HAM6 instead of dual mode unless you’re really impatient.
    Dual mode was written to test the viability of the idea to check the combination of multiple pixels instead of just one. HAM modes are unique because every pixel’s color is dependent on the color of the last pixel in the same line – you can only modify one of color channel values at once and the other two are copied from the last pixel (modify red, modify green, modify blue operations). The only way to modify all color channels is to use the set operation that inserts one of the defined colors. The number of these colors is very small – only 16 in the HAM6 mode. Both types of operations often cannot accurately render the colors at the edges of an object, because these colors often differ from the background by more than 1 color channel values. Because the possible values of the current pixel are dependent on the value of the previous pixel is it clear that sometimes you can render the current pixel’s color slightly better is you’ve chosen a different operation for the previous pixel.
    First version – the dual mode operated by checking all possible sequences of ham operations for the two pixels (current and the next one, operations: modify red, modify green, modify blue, set color 0-set color 15). It worked as I expected – it modified the operation one pixel before the rapid color change occurred to better reproduce pixels at the edges with rapid color changes. Apparently a two-pixel sequence is too short to react on the coming rapid color change, so I’ve made a three pixel version – the triple (pixel) mode. I think that it will be much more useful than the dual mode that was more like a proof-of-concept.
  • JASC palette file saving.
  • DynamicHires: Optional more accurate 4096 color search. The darkest color and most common color are never changed to reduce horizontal blocking artefacts.
  • Various gui tweaks and small bug fixes. Some old options that were surpassed by others in terms of picture quality and reliability were moved to the extra options tab and were labeled as deprecated: sliced option was replaced by DynamicHires, extra HAM6 palette optimization was replaced by triple mode.
Swan - original image, eastern beach in Kołobrzeg, Poland

Swan – original image, central beach in Kołobrzeg, Poland

Swan - HAM6, single pixel mode

Swan – HAM6, single pixel mode

Swan - HAM6, dual pixel mode

Swan – HAM6, dual pixel mode

Swan - HAM6, triple pixel mode

Swan – HAM6, triple pixel mode

Leave a Reply

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