FreeImage_ColorQuantize
24 32
DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ColorQuantize(FIBITMAP *dib, FREE_IMAGE_QUANTIZE quantize);
Cuantiza un mapa de bits high-color de 24- o 32-bit a un mapa de bits con paleta de 8-bit. El parámetro quantize especifica el algoritmo de reducción de color a usar:
Parámetro | Método de cuantización |
---|---|
FIQ_WUQUANT | Algoritmo de Xiaolin Wu |
FIQ_NNQUANT | NeuQuant neural-net de Anthony Dekker (sólo 24-bit) |
FIQ_LFPQUANT | Algoritmo rápido sin pérdida Pseudo-Quantization de Carsten Klein |
Tabla 7: constantes FREE_IMAGE_QUANTIZE.
Referencias
Wu, Xiaolin, Efficient Statistical Computations for Optimal Color Quantization. In Graphics Gems, vol. II, p. 126-133. [Online] http://www.ece.mcmaster.ca/~xwu/
Dekker A. H., Kohonen neural networks for optimal color quantization. Network: Computation in Neural Systems, Volume 5, Number 3, Institute of Physics Publishing, 1994. [Online] http://members.ozemail.com.au/~dekker/NEUQUANT.HTML
About the Lossless Fast Pseudo-Quantization Algorithm (Carsten Klein, 2014)
El algoritmo rápido sin pérdida Pseudo-Quantization no es un algoritmo de cuantificación real, ya que no hace ningún intento de crear una paleta que sea adecuada para todos los colores de la imagen fuente de 24-bit.
Sin embargo, proporciona conversiones muy rápidas para imágenes de 24-bit a 8-bit, si el número de colores diferentes en la imagen fuente no es mayor que el tamaño de la paleta deseada (es decir, menos de 256). Si se excede el número de colores en la imagen fuente, el método de de esta implementación se detiene y retorna NULL.
Esta implementación usa un mapa hash rápido para recolectar los colores en la imagen fuente. Implementa una versión personalizada de una tabla hash con direccionamiento abierto (usando sondeo lineal) que proporciona el mejor rendimiento. La tabla hash tiene 512 entradas, que previente que el factor de carga sea mayor de 0.5 ya que tenemos 256 entradas como máximo. Cada entrada consume 64 bits, de modo que la tabla hash completa ocupa 4KB de memoria.
Para imágenes grandes, LFPQuantizer suele ser hasta tres veces más rápido que Wu Quantizer.