/***************************************************************** hash_ink.h - contains hashed version of palette.h data ----------------- begin : Tue Jan 24 2000 copyright : (C) 2000 by the pmn2ppa project author : Klamer Schutte email : Schutte@fel.tno.nl ******************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef HASH_INK_H #define HASH_INK_H "$Id: hash_ink.h,v 1.1 2000/01/26 22:37:28 klamer Exp $" /* * $Log: hash_ink.h,v $ * Revision 1.1 2000/01/26 22:37:28 klamer * Added hashing support in FS_Color_Dither. Gives (for file processed) * 6 fold speedup for normal mode, and is 1.5 times quicker with --eco * mode. (CPU time needed -- printer is slower on my computer.) * Note that a trade-off between memory and CPU usage is made; large * arrays are generated in hash_ink.c. A pending optimization is to reduce the * entries in size; the integer size object can be packed to unsigned chars, * and the values of x y z even into a single char -- reducing the size of that * structure from 7 32 bit words (on i386) to 2 words... * Printout results should not change for the code inserted now; * however, marginal differences may exist as the distance (defined by * color metric) is the same, but multiple solutions might give the * same distance... Note that the error diffusion dithering should correct * this in nearby pixels. * */ struct hash_ink { int data[3]; int x, y, z; struct hash_ink *next; }; extern struct hash_ink *arr_max4[], *arr_max1[]; extern int shift4, shift1; #endif