Skip to content
  • Vitaly Prosyak's avatar
    color-lcms: add support for matrices · 6678f815
    Vitaly Prosyak authored and Pekka Paalanen's avatar Pekka Paalanen committed
    
    
    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: default avatarPekka Paalanen <pekka.paalanen@collabora.com>
    Signed-off-by: default avatarVitaly Prosyak <vitaly.prosyak@amd.com>
    Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.com>
    6678f815
Loading