weston/libweston/color-lcms
Vitaly Prosyak 6678f8150c color-lcms: add support for matrices
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>
2022-09-28 10:28:28 +00:00
..
color-lcms.c color-lcms: add cmlcms_category_name() 2022-09-28 10:28:28 +00:00
color-lcms.h color-lcms: add support for matrices 2022-09-28 10:28:28 +00:00
color-profile.c color-lcms: add support for matrices 2022-09-28 10:28:28 +00:00
color-transform.c color-lcms: add support for matrices 2022-09-28 10:28:28 +00:00
meson.build build: consolidate lcms2 dependencies 2022-06-03 10:22:25 +00:00