Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Unified Diff: third_party/qcms/src/transform_util.c

Issue 1929143003: [qcms] Use a static table in build_output_lut to invert para curves (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/qcms/src/tests/qcms_test_output_trc.c ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/qcms/src/transform_util.c
diff --git a/third_party/qcms/src/transform_util.c b/third_party/qcms/src/transform_util.c
index 3b2dcef7fdf26cc2125d735d0f352e43c0d9f749..e60744742c393fdba7c68293066a47b1e2a0269d 100644
--- a/third_party/qcms/src/transform_util.c
+++ b/third_party/qcms/src/transform_util.c
@@ -598,32 +598,25 @@ void build_output_lut(struct curveType *trc,
{
if (trc->type == PARAMETRIC_CURVE_TYPE) {
float gamma_table[256];
+ uint16_t gamma_table_uint[256];
uint16_t i;
- uint16_t *output = malloc(sizeof(uint16_t)*256);
uint16_t *inverted;
int inverted_size = 4096;
- if (!output) {
- *output_gamma_lut = NULL;
- return;
- }
-
compute_curve_gamma_table_type_parametric(gamma_table, trc->parameter, trc->count);
-
for(i = 0; i < 256; i++) {
- output[i] = (uint16_t)(gamma_table[i] * 65535);
+ gamma_table_uint[i] = (uint16_t)(gamma_table[i] * 65535);
}
//XXX: the choice of a minimum of 256 here is not backed by any theory,
// measurement or data, however it is what lcms uses.
// the maximum number we would need is 65535 because that's the
// accuracy used for computing the pre cache table
- inverted = invert_lut(output, 256, inverted_size);
+ inverted = invert_lut(gamma_table_uint, 256, inverted_size);
if (!inverted)
return;
*output_gamma_lut = inverted;
*output_gamma_lut_length = inverted_size;
- free(output);
} else {
if (trc->count == 0) {
*output_gamma_lut = build_linear_table(4096);
« no previous file with comments | « third_party/qcms/src/tests/qcms_test_output_trc.c ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698