On 08/11/2016 06:37 AM, Marti Maria wrote: > > Hi, > >> but would code like this make it possible to not clip when converting at > floating point to a profile with a true gamma TRC? > > > Pow of a negative values is a NaN for very good reasons. I can extend > parametric curves that have negative domain defined, but guessing numbers is > a bad practice because would work for some cases and completely fail on > others. If you use the extension you propose to pivot points in gamut > mapping, for example, the results will come completely messed out. > > sRGB can do be extended, because in lower part gamma uses a linear ramp that > is defined in negative zone. AdobeRGB cannot because is a pure exponential.
Hi Marti, What you say makes sense as numbers calculated using my suggestion for getting around the NaN issue do very rapidly get very large. Does this means these RGB numbers don't produce the same XYZ colors in the destination color space as in the source color space? I have a follow-up question. For unbounded floating point conversions to sRGB, values below zero are extended linearly. Are values above 1.0 also extended linearly, perhaps using the slope at 1.0? I had assumed they were extended using gamma=2.4 calculations, but now I'm guessing this assumption might be wrong. Best regards, Elle > > Regards > > Marti Maria > The LittleCMS project > http://www.littlecms.com > > -----Original Message----- > From: Elle Stone [mailto:ellest...@ninedegreesbelow.com] > Sent: miƩrcoles, 10 de agosto de 2016 16:26 > To: Lcms Liste <lcms-user@lists.sourceforge.net> > Subject: [Lcms-user] Negative channel values are clipped upon floating point > conversions to profiles with true gamma TRCs > > Hi Marti and all, > > It seems that floating point (unbounded) conversions to RGB matrix profiles > with true gamma TRCs (other than gamma=1.0), such as ClayRGB with gamma=2.2 > TRC, will clip negative channel values to zero. But unbounded conversions to > profiles with parametric TRCs, such as the sRGB parametric TRC, does not > clip negative channel values. > > I understand that pow(value, gamma) is undefined for negative values, but > would code like this make it possible to not clip when converting at > floating point to a profile with a true gamma TRC? Or perhaps the results > wouldn't make any sense? > > if (value < 0) > { > value = -1.0 * value; > value = pow (value, gamma); > value = -1.0 * value; > } > > Best regards, > Elle > -- > http://ninedegreesbelow.com > Color management and free/libre photography > ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://sdm.link/zohodev2dev _______________________________________________ Lcms-user mailing list Lcms-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lcms-user