diff options
Diffstat (limited to 'xicc/xicc.c')
-rw-r--r-- | xicc/xicc.c | 90 |
1 files changed, 24 insertions, 66 deletions
diff --git a/xicc/xicc.c b/xicc/xicc.c index 058f492..a7556d5 100644 --- a/xicc/xicc.c +++ b/xicc/xicc.c @@ -1704,7 +1704,7 @@ double *wp /* Provide white point if xicc is NULL */ Glare is assumed to be from the ambient light reflecting from the display and also striking the observer directly, and is (typically) defaulted - to 1% of ambient here. (too low ? Typical displays are 4-10%) + to 1% of ambient here. */ @@ -1719,7 +1719,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->Lv = 250.0; /* Average viewing conditions ratio */ vc->Yb = 0.2; /* Grey world */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else if (no == 2 @@ -1733,7 +1733,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->Lv = 2000.0/3.1415; /* White of the image field */ vc->Yb = 0.2; /* Grey world */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else if (no == 0 @@ -1747,7 +1747,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->Lv = 500.0/3.1415; /* White of the image field */ vc->Yb = 0.2; /* Grey world */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else if (no == 1 @@ -1761,7 +1761,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->Lv = 150.0; /* White of the image field */ vc->Yb = 0.2; /* Grey world */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else if (no == 4 @@ -1775,7 +1775,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->Lv = 150.0; /* White of the image field */ vc->Yb = 0.2; /* Grey world */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else if (no == 3 @@ -1789,7 +1789,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->Lv = 120.0; /* White of the image field */ vc->Yb = 0.2; /* Grey world */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else if (no == 5 @@ -1803,7 +1803,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->Lv = 100.0; /* White of the image field */ vc->Yb = 0.2; /* Grey world */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else if (no == 6 @@ -1817,7 +1817,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->Lv = 80.0; /* White of the image field */ vc->Yb = 0.2; /* Grey world */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else if (no == 7 @@ -1831,7 +1831,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->Lv = 80.0; /* White of the image field */ vc->Yb = 0.2; /* Grey world */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else if (no == 8 @@ -1845,7 +1845,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->Yb = 0.2; /* Grey world */ vc->Lv = 1000.0/3.1415; /* White of the image field */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else if (no == 9 @@ -1884,7 +1884,7 @@ double *wp /* Provide white point if xicc is NULL */ vc->La = 53.0; /* Dim, adapted to slide ? */ vc->Yb = 0.2; /* Grey world */ vc->Yf = 0.0; /* 0% flare */ - vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */ + vc->Yg = 0.01; /* 1% glare */ } } else { @@ -2023,7 +2023,6 @@ char *as /* Alias string selector, NULL for none */ gmi->gamcknf = 0.0; gmi->gamxknf = 0.0; gmi->gampwf = 0.0; - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 0.0; gmi->satenh = 0.0; /* No saturation enhancement */ } @@ -2056,7 +2055,6 @@ char *as /* Alias string selector, NULL for none */ gmi->gamcknf = 0.0; gmi->gamxknf = 0.0; gmi->gampwf = 0.0; - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 0.0; gmi->satenh = 0.0; /* No saturation enhancement */ } @@ -2082,7 +2080,6 @@ char *as /* Alias string selector, NULL for none */ gmi->gamcknf = 0.0; gmi->gamxknf = 0.0; gmi->gampwf = 0.0; - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 0.0; gmi->satenh = 0.0; /* No saturation enhancement */ } @@ -2110,7 +2107,6 @@ char *as /* Alias string selector, NULL for none */ gmi->gamcknf = 0.0; gmi->gamxknf = 0.0; gmi->gampwf = 0.0; - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 0.0; gmi->satenh = 0.0; /* No saturation enhancement */ } @@ -2137,7 +2133,6 @@ char *as /* Alias string selector, NULL for none */ gmi->gamcknf = 0.0; /* No knee in gamut compress */ gmi->gamxknf = 0.0; /* No knee in gamut expand */ gmi->gampwf = 0.0; /* No Perceptual surface weighting factor */ - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 0.0; /* No Saturation surface weighting factor */ gmi->satenh = 0.0; /* No saturation enhancement */ } @@ -2163,10 +2158,9 @@ char *as /* Alias string selector, NULL for none */ gmi->bph = gmm_bendBP; /* extent and bend */ gmi->gamcpf = 1.0; /* Full gamut compression */ gmi->gamexf = 0.0; /* No gamut expansion */ - gmi->gamcknf = 1.0; /* Full Sigma knee in gamut compress */ + gmi->gamcknf = 0.9; /* 0.9 High Sigma knee in gamut compress */ gmi->gamxknf = 0.0; /* No knee in gamut expand */ gmi->gampwf = 1.0; /* Full Perceptual surface weighting factor */ - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 0.0; /* No Saturation surface weighting factor */ gmi->satenh = 0.0; /* No saturation enhancement */ } @@ -2190,49 +2184,18 @@ char *as /* Alias string selector, NULL for none */ gmi->bph = gmm_bendBP; /* extent and bend */ gmi->gamcpf = 1.0; /* Full gamut compression */ gmi->gamexf = 0.0; /* No gamut expansion */ - gmi->gamcknf = 1.0; /* Full Sigma knee in gamut compress */ + gmi->gamcknf = 0.9; /* 0.9 High Sigma knee in gamut compress */ gmi->gamxknf = 0.0; /* No knee in gamut expand */ gmi->gampwf = 1.0; /* Full Perceptual surface weighting factor */ - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 0.0; /* No Saturation surface weighting factor */ gmi->satenh = 0.0; /* No saturation enhancement */ } else if (no == 7 - || (as != NULL && stricmp(as,"lp") == 0)) { - - /* Align neutral axes and perceptually map white and black points, */ - /* perceptually compress out of gamut and map appearance space Jab to Jab, */ - /* and heavily weight preserving the luminance over saturation. */ - /* No neutral axis sigma enhancement. */ - no = 7; - gmi->as = "lp"; - gmi->desc = "lp - Luminance Preserving Perceptual"; - gmi->icci = icPerceptual; - gmi->usecas = perccas; /* Appearance space */ -// gmi->usecas = 0; /* Lab space */ - gmi->usemap = 1; /* Use gamut mapping */ - gmi->greymf = 1.0; /* Fully align grey axis */ - gmi->glumwcpf = 1.0; /* Fully compress grey axis at white end */ - gmi->glumwexf = 1.0; /* Fully expand grey axis at white end */ - gmi->glumbcpf = 1.0; /* Fully compress grey axis at black end */ - gmi->glumbexf = 1.0; /* Fully expand grey axis at black end */ - gmi->glumknf = 0.3; /* Low Sigma knee in grey compress/expand */ - gmi->bph = gmm_bendBP; /* extent and bend */ - gmi->gamcpf = 1.0; /* Full gamut compression */ - gmi->gamexf = 0.0; /* No gamut expansion */ - gmi->gamcknf = 1.3; /* [1.3] High Sigma knee in gamut compress */ - gmi->gamxknf = 0.0; /* No knee in gamut expand */ - gmi->gampwf = 0.0; /* No Perceptual weighting factor */ - gmi->gamlpwf = 1.0; /* Full Linear Preserving Perceptual wghtg. factor */ - gmi->gamswf = 0.0; /* No Saturation weighting factor */ - gmi->satenh = 0.0; /* No saturation enhancement */ - } - else if (no == 8 || (as != NULL && stricmp(as,"ms") == 0)) { /* Align neutral axes and perceptually map white and black points, */ /* perceptually compress and expand to match gamuts and map Jab to Jab. */ - no = 8; + no = 7; gmi->as = "ms"; gmi->desc = "ms - Saturation"; gmi->icci = icSaturation; @@ -2247,19 +2210,18 @@ char *as /* Alias string selector, NULL for none */ gmi->bph = gmm_bendBP; /* extent and bend */ gmi->gamcpf = 1.0; /* Full gamut compression */ gmi->gamexf = 1.0; /* Full gamut expansion */ - gmi->gamcknf = 1.1; /* Sigma knee in gamut compress */ - gmi->gamxknf = 0.4; /* Moderate Sigma knee in gamut expand */ + gmi->gamcknf = 1.0; /* High Sigma knee in gamut compress/expand */ + gmi->gamxknf = 0.4; /* Moderate Sigma knee in gamut compress/expand */ gmi->gampwf = 0.2; /* Slight perceptual surface weighting factor */ - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 0.8; /* Most saturation surface weighting factor */ gmi->satenh = 0.0; /* No saturation enhancement */ } - else if (no == 9 + else if (no == 8 || no == icxSaturationGMIntent || (as != NULL && stricmp(as,"s") == 0)) { /* Same as "ms" but enhance saturation */ - no = 9; + no = 8; gmi->as = "s"; gmi->desc = " s - Enhanced Saturation [ICC Saturation]"; gmi->icci = icSaturation; @@ -2274,18 +2236,17 @@ char *as /* Alias string selector, NULL for none */ gmi->bph = gmm_bendBP; /* extent and bend */ gmi->gamcpf = 1.0; /* Full gamut compression */ gmi->gamexf = 1.0; /* Full gamut expansion */ - gmi->gamcknf = 1.1; /* High sigma knee in gamut compress */ + gmi->gamcknf = 1.0; /* High sigma knee in gamut compress */ gmi->gamxknf = 0.5; /* Moderate sigma knee in gamut expand */ gmi->gampwf = 0.0; /* No Perceptual surface weighting factor */ - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 1.0; /* Full Saturation surface weighting factor */ gmi->satenh = 0.9; /* Medium saturation enhancement */ } - else if (no == 10 + else if (no == 9 || (as != NULL && stricmp(as,"al") == 0)) { /* Map absolute L*a*b* to L*a*b* and clip out of gamut */ - no = 10; + no = 9; gmi->as = "al"; gmi->desc = "al - Absolute Colorimetric (Lab)"; gmi->icci = icAbsoluteColorimetric; @@ -2303,16 +2264,15 @@ char *as /* Alias string selector, NULL for none */ gmi->gamcknf = 0.0; gmi->gamxknf = 0.0; gmi->gampwf = 0.0; - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 0.0; gmi->satenh = 0.0; /* No saturation enhancement */ } - else if (no == 11 + else if (no == 10 || (as != NULL && stricmp(as,"rl") == 0)) { /* Align neutral axes and linearly map white point, then */ /* map L*a*b* to L*a*b* and clip out of gamut */ - no = 11; + no = 10; gmi->as = "rl"; gmi->desc = "rl - White Point Matched Colorimetric (Lab)"; gmi->icci = icRelativeColorimetric; @@ -2330,7 +2290,6 @@ char *as /* Alias string selector, NULL for none */ gmi->gamcknf = 0.0; gmi->gamxknf = 0.0; gmi->gampwf = 0.0; - gmi->gamlpwf = 0.0; /* No Linear Preserving Perceptual surface wghtg. factor */ gmi->gamswf = 0.0; gmi->satenh = 0.0; /* No saturation enhancement */ } @@ -2385,7 +2344,6 @@ icxGMappingIntent *gmi /* Gamut Mapping parameters to return */ printf(" Gamut compression knee factor %f\n", gmi->gamcknf); printf(" Gamut expansion knee factor %f\n", gmi->gamxknf); printf(" Gamut Perceptual mapping weighting factor %f\n", gmi->gampwf); - printf(" Gamut Lightness Preserving Perceptual mapping weighting %f\n", gmi->gamlpwf); printf(" Gamut Saturation mapping weighting factor %f\n", gmi->gamswf); printf(" Saturation enhancement factor %f\n", gmi->satenh); } |