6678f8150c
This patch adds the essential LittleCMS color pipeline optimizations and analysis that is necessary for extracting matrices from pipelines correctly. When we can extract a matrix and 1D curve sets, we can use those with GL-renderer without needing an inherently heavy and imprecise 3D LUT. This should improve color transformation precision and performance when a 3D LUT is not necessary. The core of the optimization and analysis is a custom plugin for LittleCMS. The optimization step comprises of repeatedly merging sequential matrices and sequential curve sets into one and eliminating identity elements which may allow for more merging. The analysis step takes the optimized LittleCMS pipeline and attempts to fit all of its elements into the weston_color_transform model. If it fits, we have an optimized color transformation and do not need a 3D LUT. If it does not fit, we use a 3D LUT as before. Co-authored-by: Pekka Paalanen <pekka.paalanen@collabora.com> Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com> |
||
---|---|---|
.. | ||
color-lcms.c | ||
color-lcms.h | ||
color-profile.c | ||
color-transform.c | ||
meson.build |