Hello, I'm one of the developers of RawTherapee, a photo editing software with a floating point engine and which uses lcms2 for color management.
Recently I discovered that when making a transform from float to float (or float to 16 bit) using a basic icc with the gamma curve secified as an array of numbers the output contains fewer distinct values than the input. If the gamma is specified with a single number (ie pow(x, g/256)) but otherwise the same icc (not LUT, just matrix) the output is the expected, ie about the same amount of distinct numbers as the input. Thus there is some precision lost in the curve interpolation code. If I've managed to navigate the code correctly it happens in cmsEvalToneCurveFloat() where a 16 bit integer path is taken despite it's perfectly possible to make a floating point interpolation. As we want to maintain precision with widely used legacy icc files we'd like to see this fixed. /Anders Torger ------------------------------------------------------------------------------ Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk _______________________________________________ Lcms-user mailing list Lcms-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lcms-user