21 |
|
static float gamtab[1<<GAMTABBITS]; |
22 |
|
static float gammul[16]; |
23 |
|
static double cur_gam = 0.; |
24 |
< |
static BYTE mongamtab[MONGAMTSZ]; |
24 |
> |
static uby8 mongamtab[MONGAMTSZ]; |
25 |
|
static double cur_mongam = 0.; |
26 |
|
|
27 |
|
#define imultpow2(i,s) ((s)>=0 ? (i)<<(s) : (i)>>-(s)) |
170 |
|
|
171 |
|
/* Convert a 48-bit RGB scanline to encoded luminance/chrominance */ |
172 |
|
int |
173 |
< |
tmCvRGB48(TMstruct *tms, TMbright *ls, BYTE *cs, |
173 |
> |
tmCvRGB48(TMstruct *tms, TMbright *ls, uby8 *cs, |
174 |
|
uint16 (*scan)[3], int len, double gv) |
175 |
|
{ |
176 |
|
static const char funcName[] = "tmCvRGB48"; |
185 |
|
if (gv <= 0.) |
186 |
|
gv = DEFGAM; |
187 |
|
/* sync input gamma table */ |
188 |
< |
if ((gv != 1.) & (gv != cur_gam)) |
188 |
> |
if (gv != cur_gam) |
189 |
|
mkGamTable(gv); |
190 |
|
if (tmNeedMatrix(tms)) { /* need floating point */ |
191 |
|
COLOR *newscan; |
235 |
|
((1L<<LOGTABBITS)-1) ]; |
236 |
|
d -= M_LN2*(gv*nshft + nshft2); |
237 |
|
d = (double)TM_BRTSCALE*(d + log_inpsf); |
238 |
< |
bi = (int)(d>0. ? d+.5 : d-.5); |
238 |
> |
bi = (int)(d + .5 - (d < 0.)); |
239 |
|
} |
240 |
|
/* world luminance */ |
241 |
|
ls[i] = bi; |