ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/pcond3.c
(Generate patch)

Comparing ray/src/px/pcond3.c (file contents):
Revision 3.12 by greg, Wed Apr 23 00:52:34 2003 UTC vs.
Revision 3.17 by greg, Thu Nov 30 18:43:05 2017 UTC

# Line 5 | Line 5 | static const char      RCSid[] = "$Id$";
5   * Routines for computing and applying brightness mapping.
6   */
7  
8 + #include <string.h>
9 +
10   #include "pcond.h"
11  
12  
# Line 17 | Line 19 | double modhist[HISTRES];               /* modified histogram */
19   double  mhistot;                        /* modified histogram total */
20   double  cumf[HISTRES+1];                /* cumulative distribution function */
21  
22 + static double centprob(int      x, int  y);
23 + static void mkcumf(void);
24 + static double cf(double b);
25 + static double BLw(double        Lw);
26 + #if ADJ_VEIL
27 + static void mkcrfimage(void);
28 + #endif
29  
30 < getfixations(fp)                /* load fixation history list */
31 < FILE    *fp;
30 >
31 >
32 > void
33 > getfixations(           /* load fixation history list */
34 > FILE    *fp
35 > )
36   {
37   #define FIXHUNK         128
38          RESOLU  fvres;
39          int     pos[2];
40 <        register int    px, py, i;
40 >        int     px, py, i;
41                                  /* initialize our resolution struct */
42          if ((fvres.rt=inpres.rt)&YMAJOR) {
43                  fvres.xr = fvxr;
# Line 79 | Line 92 | FILE   *fp;
92   }
93  
94  
95 < gethisto(fp)                    /* load precomputed luminance histogram */
96 < FILE    *fp;
95 > void
96 > gethisto(                       /* load precomputed luminance histogram */
97 >        FILE    *fp
98 > )
99   {
100          double  histo[MAXPREHIST];
101          double  histart, histep;
102 <        double  l, b, lastb, w;
102 >        double  b, lastb, w;
103          int     n;
104 <        register int    i;
104 >        int     i;
105                                          /* load data */
106          for (i = 0; i < MAXPREHIST &&
107                          fscanf(fp, "%lf %lf", &b, &histo[i]) == 2; i++) {
# Line 147 | Line 162 | FILE   *fp;
162   }
163  
164  
165 < double
166 < centprob(x, y)                  /* center-weighting probability function */
167 < int     x, y;
165 > static double
166 > centprob(                       /* center-weighting probability function */
167 >        int     x,
168 >        int     y
169 > )
170   {
171          double  xr, yr, p;
172                                  /* paraboloid, 0 at 90 degrees from center */
# Line 160 | Line 177 | int    x, y;
177   }
178  
179  
180 < comphist()                      /* create foveal sampling histogram */
180 > void
181 > comphist(void)                  /* create foveal sampling histogram */
182   {
183          double  l, b, w, lwmin, lwmax;
184 <        register int    x, y;
184 >        int     x, y;
185                                          /* check for precalculated histogram */
186          if (what2do&DO_PREHIST)
187                  return;
# Line 228 | Line 246 | comphist()                     /* create foveal sampling histogram */
246   }
247  
248  
249 < mkcumf()                        /* make cumulative distribution function */
249 > static void
250 > mkcumf(void)                    /* make cumulative distribution function */
251   {
252 <        register int    i;
253 <        register double sum;
252 >        int     i;
253 >        double  sum;
254  
255          mhistot = 0.;           /* compute modified total */
256          for (i = 0; i < HISTRES; i++)
# Line 246 | Line 265 | mkcumf()                       /* make cumulative distribution function */
265   }
266  
267  
268 < double
269 < cf(b)                           /* return cumulative function at b */
270 < double  b;
268 > static double
269 > cf(                             /* return cumulative function at b */
270 >        double  b
271 > )
272   {
273          double  x;
274 <        register int    i;
274 >        int     i;
275  
276          i = x = HISTRES*(b - bwmin)/(bwmax - bwmin);
277          x -= (double)i;
# Line 259 | Line 279 | double b;
279   }
280  
281  
282 < double
283 < BLw(Lw)                         /* map world luminance to display brightness */
284 < double  Lw;
282 > static double
283 > BLw(                            /* map world luminance to display brightness */
284 >        double  Lw
285 > )
286   {
287          double  b;
288  
# Line 274 | Line 295 | double Lw;
295  
296  
297   double
298 < htcontrs(La)            /* human threshold contrast sensitivity, dL(La) */
299 < double  La;
298 > htcontrs(               /* human threshold contrast sensitivity, dL(La) */
299 >        double  La
300 > )
301   {
302          double  l10La, l10dL;
303                                  /* formula taken from Ferwerda et al. [SG96] */
# Line 296 | Line 318 | double La;
318  
319  
320   double
321 < clampf(Lw)                      /* histogram clamping function */
322 < double  Lw;
321 > clampf(                 /* histogram clamping function */
322 >        double  Lw
323 > )
324   {
325          double  bLw, ratio;
326  
# Line 307 | Line 330 | double Lw;
330   }
331  
332   double
333 < crfactor(Lw)                    /* contrast reduction factor */
334 < double  Lw;
333 > crfactor(                       /* contrast reduction factor */
334 >        double  Lw
335 > )
336   {
337          int     i = HISTRES*(Bl(Lw) - bwmin)/(bwmax - bwmin);
338          double  bLw, ratio, Tdb;
# Line 325 | Line 349 | double Lw;
349  
350  
351   #if ADJ_VEIL
352 < mkcrfimage()                    /* compute contrast reduction factor image */
352 > static void
353 > mkcrfimage(void)                        /* compute contrast reduction factor image */
354   {
355          int     i;
356          float   *crfptr;
# Line 344 | Line 369 | mkcrfimage()                   /* compute contrast reduction factor im
369  
370  
371   int
372 < mkbrmap()                       /* make dynamic range map */
372 > mkbrmap(void)                   /* make dynamic range map */
373   {
374          double  Tdb, b, s;
375          double  ceiling, trimmings;
376 <        register int    i;
376 >        int     i;
377                                          /* copy initial histogram */
378 <        bcopy((char *)bwhist, (char *)modhist, sizeof(modhist));
378 >        memcpy((void *)modhist, (void *)bwhist, sizeof(modhist));
379          s = (bwmax - bwmin)/HISTRES;    /* s is delta b */
380                                          /* loop until satisfactory */
381          do {
# Line 376 | Line 401 | mkbrmap()                      /* make dynamic range map */
401   }
402  
403  
404 < scotscan(scan, xres)            /* apply scotopic color sensitivity loss */
405 < COLOR   *scan;
406 < int     xres;
404 > void
405 > scotscan(               /* apply scotopic color sensitivity loss */
406 >        COLOR   *scan,
407 >        int     xres
408 > )
409   {
410          COLOR   ctmp;
411          double  incolor, b, Lw;
412 <        register int    i;
412 >        int     i;
413  
414          for (i = 0; i < xres; i++) {
415                  Lw = plum(scan[i]);
# Line 407 | Line 434 | int    xres;
434   }
435  
436  
437 < mapscan(scan, xres)             /* apply tone mapping operator to scanline */
438 < COLOR   *scan;
439 < int     xres;
437 > void
438 > mapscan(                /* apply tone mapping operator to scanline */
439 >        COLOR   *scan,
440 >        int     xres
441 > )
442   {
443          double  mult, Lw, b;
444 <        register int    x;
444 >        int     x;
445  
446          for (x = 0; x < xres; x++) {
447                  Lw = plum(scan[x]);
# Line 428 | Line 457 | int    xres;
457   }
458  
459  
460 < putmapping(fp)                  /* put out mapping function */
461 < FILE    *fp;
460 > void
461 > putmapping(                     /* put out mapping function */
462 >        FILE    *fp
463 > )
464   {
465          double  b, s;
466 <        register int    i;
466 >        int     i;
467          double  wlum, sf, dlum;
468  
469          sf = scalef*inpexp;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines