From c07d0c2d2f6f7b0eb6e92cc6204bf05037957e82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 1 Sep 2014 15:43:52 +0200 Subject: Imported Upstream version 1.6.3 --- rspl/rev.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) (limited to 'rspl/rev.c') diff --git a/rspl/rev.c b/rspl/rev.c index 237dbe3..1dbf6cc 100644 --- a/rspl/rev.c +++ b/rspl/rev.c @@ -22,11 +22,24 @@ Should fix the clipping case so that a direction weighting funtion can be applied. This should be used just like the perceptual case to increase L* constance for dark - colors. Will this stuff up the geometric consistency though ? - [ See fill_nncell(), fill_nncell() and users of calc_fwd_nn_cell_list(), - ie. nnearest_clip_solve(), clipn_setsort() etc. ] + colors. This would entail large scale changes though, + since a lot of code assumes minimal euclidean distance + goal, from the cell selection structure [ See fill_nncell(), + fill_nncell() and users of calc_fwd_nn_cell_list() ] and + the within cell computation [ ie. See nnearest_clip_solve(), + clipn_setsort() etc. ] + XYZ PCS couldn't work with a simple weighting - it would have + to be a position dependent weighting. The SVD least squares computation case makes this hard to change ? Would have to feed in a weighting function, or can it be general ? + - + Can this be solved some other way, ie. by using gamut + mapping type look up ? Problem is precision. + - + Vector clip could be used (if intent can be turned + into computable vector clip direction), but it is slow, + because it search all cells from source until it + hits surface. Allow function callback to set auxiliary values for flag RSPL_AUXLOCUS. @@ -1437,7 +1450,8 @@ unsigned int tcount /* grid touch count for this operation */ nunlk++; } fprintf(stdout,"Diagnostic: rev.sz = %lu, rev.max_sz = %lu, numlocked = %d, nunlk = %d\n", - rc->s->rev.sz, rc->s->rev.max_sz, rc->nunlocked,nunlk); + (unsigned long)rc->s->rev.sz, (unsigned long)rc->s->rev.max_sz, + rc->nunlocked, nunlk); error("Not enough memory to process in chunks"); } break; /* cache has run out of room, so abandon, and do it next time */ @@ -4971,7 +4985,7 @@ rspl *s /* Pointer to rspl grid */ g_no_rev_cache_instances > 1 ? "are" : "is", g_no_rev_cache_instances, g_no_rev_cache_instances > 1 ? "s" : "", - ram_portion/1000000); + (unsigned long)ram_portion/1000000); } } @@ -6165,7 +6179,7 @@ if (prop != NULL) { g_no_rev_cache_instances > 1 ? "are" : "is", g_no_rev_cache_instances, g_no_rev_cache_instances > 1 ? "s" : "", - ram_portion/1000000); + (unsigned long)ram_portion/1000000); } s->rev.rev_valid = 1; @@ -6233,7 +6247,7 @@ rspl *s /* Pointer to rspl grid */ g_no_rev_cache_instances > 1 ? "are" : "is", g_no_rev_cache_instances, g_no_rev_cache_instances > 1 ? "s" : "", - ram_portion/1000000); + (unsigned long)ram_portion/1000000); } } s->rev.rev_valid = 0; @@ -6497,7 +6511,7 @@ rspl *s if (g_avail_ram > safe_max_vmem) { g_avail_ram = safe_max_vmem; if (s->verbose && repsr == 0) - fprintf(stdout,"%cTrimmed maximum cache RAM to %lu Mbytes to allow for VM limit\n",cr_char,g_avail_ram/1000000); + fprintf(stdout,"%cTrimmed maximum cache RAM to %lu Mbytes to allow for VM limit\n",cr_char,(unsigned long)g_avail_ram/1000000); } } @@ -6516,7 +6530,7 @@ rspl *s } if (max_vmem != 0 && g_avail_ram > max_vmem && repsr == 0) { g_avail_ram = (size_t)(0.95 * max_vmem); - fprintf(stdout,"%cARGYLL_REV_CACHE_MULT * RAM trimmed to %lu Mbytes to allow for VM limit\n",cr_char,g_avail_ram/1000000); + fprintf(stdout,"%cARGYLL_REV_CACHE_MULT * RAM trimmed to %lu Mbytes to allow for VM limit\n",cr_char,(unsigned long)g_avail_ram/1000000); } } @@ -6525,7 +6539,7 @@ rspl *s DBG(("reverse cache max memory = %d Mbytes\n",s->rev.max_sz/1000000)); if (s->verbose && repsr == 0) { - fprintf(stdout, "%cRev cache RAM = %lu Mbytes\n",cr_char,g_avail_ram/1000000); + fprintf(stdout, "%cRev cache RAM = %lu Mbytes\n",cr_char,(unsigned long)g_avail_ram/1000000); repsr = 1; } -- cgit v1.2.3