X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=images%2Fcolor.h;h=ec3cd4afd99e928f88baef9f8bafa3a0712d3d5c;hb=b7ae681630e44b0a6d28ed441c2514dac80004e6;hp=28daa822141bff1cef63e27655b8a6d272aff866;hpb=9cf26a46c73eceeb44eaa577dadce4209f1e6e16;p=libucw.git diff --git a/images/color.h b/images/color.h index 28daa822..ec3cd4af 100644 --- a/images/color.h +++ b/images/color.h @@ -15,6 +15,9 @@ * - SIMD should help to speed up conversion of large arrays * - maybe try to generate a long switch in color_conv_pixel() * with optimized entries instead of access to interpolation table + * - most of multiplications in srgb_to_luv_pixels can be replaced + * with tables lookup... tests shows almost the same speed for random + * input and cca 40% gain when input colors fit in CPU chache */ #ifndef _IMAGES_COLOR_H @@ -56,6 +59,7 @@ extern u32 srgb_to_luv_tab3[20 << SRGB_TO_LUV_TAB3_SIZE]; void srgb_to_luv_init(void); void srgb_to_luv_pixels(byte *dest, byte *src, uns count); +/* L covers the interval [0..255]; u and v are centered to 128 and scaled by 1/4 in respect of L */ static inline void srgb_to_luv_pixel(byte *dest, byte *src) {