From ef0c8e1348d61d2bc2c0243b44ce5a5ad5e4b23c Mon Sep 17 00:00:00 2001 From: alpine9000 Date: Mon, 7 Mar 2016 20:22:22 +1100 Subject: [PATCH] Simple HAM mode for imagecon --- tools/imagecon/Makefile | 11 +- tools/imagecon/imagecon.c | 300 +++++++++++++++++++++---- tools/imagecon/imagecon.h | 11 + tools/imagecon/reference/ham-ham.bin | Bin 0 -> 61440 bytes tools/imagecon/reference/ham-palette.s | 35 +++ 5 files changed, 317 insertions(+), 40 deletions(-) create mode 100644 tools/imagecon/reference/ham-ham.bin create mode 100644 tools/imagecon/reference/ham-palette.s diff --git a/tools/imagecon/Makefile b/tools/imagecon/Makefile index 182f573..e432f56 100644 --- a/tools/imagecon/Makefile +++ b/tools/imagecon/Makefile @@ -21,6 +21,10 @@ EHB_IMAGE=../../assets/gigi.png EHB_BASE=out/ehb REFERENCE_EHB_BASE=reference/ehb +HAM_IMAGE=../../assets/gigi.png +HAM_BASE=out/ham +REFERENCE_HAM_BASE=reference/ham + $(IMAGECON): out bin $(OBJS) gcc $(OBJS) -o $(IMAGECON) $(LIBS) @@ -53,7 +57,10 @@ $(OUTPUT_BASE).bin: $(IMAGECON) $(EHB_BASE).bin: $(EHB_IMAGE) $(IMAGECON) --input $(EHB_IMAGE) --output $(EHB_BASE) --output-bitplanes --colors 32 --quantize --extra-half-brite --output-copperlist -test: $(IMAGECON) $(OUTPUT_BASE).bin $(SHARED_PALETTE) $(USED_PALETTE) $(EHB_BASE).bin +$(HAM_BASE).bin: $(HAM_IMAGE) + $(IMAGECON) --input $(HAM_IMAGE) --output $(HAM_BASE) --output-bitplanes --ham --output-palette-asm + +test: $(IMAGECON) $(OUTPUT_BASE).bin $(SHARED_PALETTE) $(USED_PALETTE) $(EHB_BASE).bin $(HAM_BASE).bin diff $(OUTPUT_BASE).bin $(REFERENCE_BASE).bin diff $(OUTPUT_BASE)-copper-list.s $(REFERENCE_BASE)-copper-list.s diff $(OUTPUT_BASE)-palette.s $(REFERENCE_BASE)-palette.s @@ -64,6 +71,8 @@ test: $(IMAGECON) $(OUTPUT_BASE).bin $(SHARED_PALETTE) $(USED_PALETTE) $(EHB_BAS diff $(BOB_BASE)-mask.bin $(REFERENCE_BOB_BASE)-mask.bin diff $(EHB_BASE).bin $(REFERENCE_EHB_BASE).bin diff $(EHB_BASE)-copper-list.s $(REFERENCE_EHB_BASE)-copper-list.s + diff $(HAM_BASE)-ham.bin $(REFERENCE_HAM_BASE)-ham.bin + diff $(HAM_BASE)-palette.s $(REFERENCE_HAM_BASE)-palette.s @echo "______ ___ _____ _____ ___________ " @echo "| ___ \/ _ \ / ___/ ___| ___| _ \ " diff --git a/tools/imagecon/imagecon.c b/tools/imagecon/imagecon.c index 32ac7f7..8662a40 100644 --- a/tools/imagecon/imagecon.c +++ b/tools/imagecon/imagecon.c @@ -24,6 +24,7 @@ imagecon_config_t config = { .outputBitplanes = 0, .outputCopperList = 0, .ehbMode = 0, + .hamMode = 0, .quantize = 0, .overridePalette = 0 }; @@ -45,7 +46,8 @@ usage() " --output-grey-palette-asm\n"\ " --output-palette\n"\ " --extra-half-brite\n"\ - " --use-palette \n" \ + " --ham\n"\ + " --use-palette \n"\ " --verbose\n", config.argv[0]); exit(1); } @@ -222,7 +224,6 @@ generateQuantizedImage(imagecon_image_t* ic, int usePalette) color.b = ic->palette[i].b; liq_image_add_fixed_color(image, color); } - config.maxColors = ic->numColors; } liq_set_max_colors(attr, config.maxColors); @@ -255,6 +256,29 @@ generateQuantizedImage(imagecon_image_t* ic, int usePalette) ic->numColors = pal->count; } +amiga_color_t +getOriginalColor(int x, int y, imagecon_image_t* ic) +{ + png_byte* ptr = ic->rowPointers[y] + (x*4); + amiga_color_t color; + color.r = ptr[0]; + color.g = ptr[1]; + color.b = ptr[2]; + color.a = ptr[3]; + return color; +} + +amiga_color_t +getColor(int x, int y, imagecon_image_t* ic) +{ + int paletteIndex = ic->amigaImage[(ic->width*y)+x]; + amiga_color_t color; + color.r = ic->palette[paletteIndex].r; + color.g = ic->palette[paletteIndex].g; + color.b = ic->palette[paletteIndex].b; + color.a = ic->palette[paletteIndex].a; + return color; +} void generatePalette(imagecon_image_t* ic) @@ -269,6 +293,7 @@ generatePalette(imagecon_image_t* ic) for (int x=0; x < ic->width; x++) { png_byte* ptr = &(row[x*4]); + // TODO: this shift is probably wrong now amiga_color_t color; color.r = ptr[0] >> 4; color.g = ptr[1] >> 4; @@ -399,9 +424,9 @@ outputMask(char* outFilename, imagecon_image_t* ic) for (int y = 0, writeIndex = 0; y < ic->height; y++) { for (int byte = 0;byte < byteWidth; byte++) { for (int bit = 0; bit < 8; bit++) { - int x = byte * 8 + 7 - bit; - int paletteIndex = ic->amigaImage[(ic->width*y)+x]; - int bitmask = ic->palette[paletteIndex].a > 0 ? 0xFF : 0; + int x = byte * 8 + 7 - bit; + amiga_color_t c = getOriginalColor(x, y, ic); + int bitmask = c.a > 0 ? 0xFF : 0; for (int plane_index = 0; plane_index < numBitPlanes; plane_index++) { char* plane = bitplanes[plane_index]; plane[writeIndex] |= ((bitmask >> plane_index) & 1) << bit; @@ -426,53 +451,249 @@ outputMask(char* outFilename, imagecon_image_t* ic) } } +void +generateEHBImage(imagecon_image_t* ic) +{ + if (config.maxColors > 32) { + abort_("Can't do EHB emode with > 32 colors\n"); + } + // First find best N color palette + generateQuantizedImage(ic, 0); + // now add the EHB colors + + for (int i = 0; i < ic->numColors; i++) { + ic->palette[i+ic->numColors].r = ic->palette[i].r/2; + ic->palette[i+ic->numColors].g = ic->palette[i].g/2; + ic->palette[i+ic->numColors].b = ic->palette[i].b/2; + ic->palette[i+ic->numColors].a = ic->palette[i].a; + } + config.maxColors = ic->numColors = config.maxColors * 2; + //now generate the half brite version*/ + generateQuantizedImage(ic, 1); +} void +printColor(amiga_color_t color) +{ + printf("R = %03d G = %03d B = %03d A = %03d", color.r, color.g, color.b, color.a); +} + + + +int +colorDelta(amiga_color_t c1, amiga_color_t c2) +{ + int dr = abs((c1.r)-(c2.r)); + int dg = abs((c1.g)-(c2.g)); + int db = abs((c1.b)-(c2.b)); + return (dr+dg+db) / 3; +} + +typedef struct { + int control; + int data; + amiga_color_t pixel; +} ham_control_t; + +ham_control_t +findBestHamPixel(imagecon_image_t* ic, amiga_color_t color, amiga_color_t orig, amiga_color_t last) +{ + int delta = INT_MAX; + + ham_control_t ham = {0}; + + for (int i = 0; i < ic->numColors; i++) { + int dc = colorDelta(color, ic->palette[i]); + if (dc < delta) { + delta = dc; + ham.data = i; + ham.pixel = ic->palette[i]; + } + } + + delta = colorDelta(orig, ham.pixel); + if (last.r != -1) { + for (int c = 0; c <= 0xF; c++) { + amiga_color_t copy = last; + copy.r = c<<4; + int dc = colorDelta(orig, copy); + if (dc < delta) { + ham.control = 2; + ham.data = c; + ham.pixel = copy; + delta = dc; + } + } + for (int c = 0; c <= 0xF; c++) { + amiga_color_t copy = last; + copy.g = c<<4; + int dc = colorDelta(orig, copy); + if (dc < delta) { + ham.control = 3; + ham.data = c; + ham.pixel = copy; + delta = dc; + } + } + for (int c = 0; c <= 0xF; c++) { + amiga_color_t copy = last; + copy.b = c<<4; + int dc = colorDelta(orig, copy); + if (dc < delta) { + ham.control = 1; + ham.data = c; + ham.pixel = copy; + delta = dc; + } + } + } + + return ham; +} + + +void +outputHamBitplanes(char* outFilename, imagecon_image_t* ic) +{ + if (config.verbose) { + printf("outputHamBitplanes\n"); + } + + int numBitPlanes = 6; + int numColors = 16; + + if (config.verbose) { + printf("ham number of colors = %d\n", numColors); + printf("ham number of bitplanes = %d\n", numBitPlanes); + } + + int byteWidth = (ic->width + 7) / 8; + + char** bitplanes = malloc(sizeof(void*)*numBitPlanes); + for (int i = 0; i < numBitPlanes; i++) { + bitplanes[i] = calloc(byteWidth*ic->height, 1); + } + + ham_control_t* hams = malloc(sizeof(ham_control_t)*ic->width*ic->height); + + for (int y = 0; y < ic->height; y++) { + amiga_color_t lastPixel = { -1, -1, -1, -1}; + for (int x = 0; x < ic->width; x++) { + + amiga_color_t color = getColor(x, y, ic); + amiga_color_t orig = getOriginalColor(x, y, ic); + + ham_control_t ham = findBestHamPixel(ic, color, orig, lastPixel); + lastPixel = ham.pixel; + +#if 0 + printf("Color: "); + printColor(color); + printf("\n"); + printf("Orig: "); + printColor(orig); + printf("\n"); + + printf("Ham:\n"); + printf("Control: %d\n", ham.control); + printf("Data: %d\n", ham.data); + printf("Color: "); + printColor(ham.pixel); + printf("\n\n"); +#endif + + hams[(y*ic->width)+x] = ham; + } + } + + + for (int y = 0, writeIndex = 0; y < ic->height; y++) { + for (int byte = 0;byte < byteWidth; byte++) { + for (int bit = 0; bit < 8; bit++) { + int x = byte * 8 + 7 - bit; + + ham_control_t ham = hams[(y*ic->width)+x]; + + int _numBitPlanes = 4; + for (int plane_index = 0; plane_index < _numBitPlanes; plane_index++) { + char* plane = bitplanes[plane_index]; + plane[writeIndex] |= ((ham.data >> plane_index) & 1) << bit; + } + + for (int plane_index = 0; plane_index < 2; plane_index++) { + char* plane = bitplanes[4+plane_index]; + plane[writeIndex] |= ((ham.control >> plane_index) & 1) << bit; + } + + + } + writeIndex++; + } + } + + + FILE* fp = openFileWrite("%s-ham.bin", outFilename); + + for (int y = 0; y < ic->height; y++) { + for (int plane_index = 0; plane_index < numBitPlanes; plane_index++) { + char* plane = bitplanes[plane_index]; + fwrite(&plane[y*byteWidth], byteWidth, 1, fp); + } + } + fclose(fp); + if (config.verbose) { + printf("done\n\n"); + } +} + +static void +doHamMode(char* outFilename, imagecon_image_t* ic) +{ + config.maxColors = 16; + generateQuantizedImage(ic, 0); + + if (config.outputBitplanes) { + outputHamBitplanes(outFilename, ic); + } + + outputPalette(outFilename, ic); + +} + +static void processFile(char* outFilename, imagecon_image_t* ic) { if (config.verbose) { printf("processFile...\n"); } - if (config.quantize || config.overridePalette) { - if (config.ehbMode) { - if (config.maxColors > 32) { - abort_("Can't do EHB emode with > 32 colors\n"); + if (config.hamMode) { + doHamMode(outFilename, ic); + } else { + if (config.quantize || config.overridePalette) { + if (config.ehbMode) { + generateEHBImage(ic); + } else { + if (config.overridePalette) { + loadPaletteFile(ic); + } + generateQuantizedImage(ic, config.overridePalette != 0); } - // First find best N color palette - generateQuantizedImage(ic, 0); - // now add the EHB colors - - for (int i = 0; i < ic->numColors; i++) { - ic->palette[i+ic->numColors].r = ic->palette[i].r/2; - ic->palette[i+ic->numColors].g = ic->palette[i].g/2; - ic->palette[i+ic->numColors].b = ic->palette[i].b/2; - ic->palette[i+ic->numColors].a = ic->palette[i].a; - } - config.maxColors = ic->numColors = config.maxColors * 2; - printf("config.maxColors = %d\n", config.maxColors); - //now generate the half brite version*/ - generateQuantizedImage(ic, 1); } else { - if (config.overridePalette) { - loadPaletteFile(ic); - } - generateQuantizedImage(ic, config.overridePalette != 0); + generatePalette(ic); } - } else { - generatePalette(ic); + + if (config.outputBitplanes) { + outputBitplanes(outFilename, ic); + } + + if (config.outputMask) { + outputMask(outFilename, ic); + } + + outputPalette(outFilename, ic); } - if (config.outputBitplanes) { - outputBitplanes(outFilename, ic); - } - - if (config.outputMask) { - outputMask(outFilename, ic); - } - - outputPalette(outFilename, ic); - if (config.verbose) { printf("done\n\n"); } @@ -557,6 +778,7 @@ main(int argc, char **argv) {"output-grey-palette-asm", no_argument, &config.outputPaletteGrey, 1}, {"output-mask", no_argument, &config.outputMask, 1}, {"extra-half-brite", no_argument, &config.ehbMode, 1}, + {"ham", no_argument, &config.hamMode, 1}, {"use-palette", required_argument, 0, 'p'}, {"output", required_argument, 0, 'o'}, {"colors", required_argument, 0, 'c'}, diff --git a/tools/imagecon/imagecon.h b/tools/imagecon/imagecon.h index 2e5ab14..bad5512 100644 --- a/tools/imagecon/imagecon.h +++ b/tools/imagecon/imagecon.h @@ -12,18 +12,29 @@ typedef struct { int outputBitplanes; int outputCopperList; int ehbMode; + int hamMode; char* overridePalette; int quantize; int verbose; char** argv; } imagecon_config_t; +#if 0 typedef struct { unsigned char r; unsigned char g; unsigned char b; unsigned char a; } amiga_color_t; +#else +typedef struct { + int r; + int g; + int b; + int a; +} amiga_color_t; + +#endif typedef struct { diff --git a/tools/imagecon/reference/ham-ham.bin b/tools/imagecon/reference/ham-ham.bin new file mode 100644 index 0000000000000000000000000000000000000000..f41390a24cb5e782e94e505f56302494c3132909 GIT binary patch literal 61440 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≷UaS<8u_z?ac_u|^2R^(br1(Ve)!Kr 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