| 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; |