Hi Marti, Hi everyone, I'm using LittleCMS (and reading the ML) for one year and half now and my first message would be to thank you for this great piece of software ! (BTW, regarding the recent discussion, I'm using multi-thread QtConcurrent code and it works like a charm... being ~3 times faster on a Quad proc)
Recently, in "my" graphic software, "Pointcarré", I started to write some new code to manage layers and transparency (alpha blending). In my graphic pipeline, it appears that the image that I would like to process are in premultiplied RGBA, which is much faster to blend that regular RGBA. LittleCMS, for now, left unchanged the alpha channel and does not care about it. Obviously, any premultiplied R/G/B (or any other kind of channel) will not be handled correctly if there is no specific code in LittleCMS core. As a turn-around, it is always possible to turn the premultiplied feature off or to convert to regular RGBA before/after the call to cmsDoTransform. But the performances are damn impacted. The other point to consider is the potential benefit to take care of Alpha : if (alpha == 0), there is no need to process this pixel, as the point is fully transparent. (btw, this optimization could already be enable for regular RGBA) I'm speaking of RGBA in 8 bits channels, but, obviously, it make sense to consider this feature for 16 bits or floating values. (better to be in high precision as premultiplication introduce some serious accuracy loss for highly transparent pixels) My questions : 1 - Am I a bit heedless and such feature is already managed in LittleCMS ? 2 - if not, am I the only one who need such feature ? (anyone in the ML ?) 3 - Anyone has started some work in this direction ? (I searched on mailing list history but did not any relevant thread) 4 - Do you think it could be interesting to support such feature ? 5 - Do you think it would make sense to handle this with one extra flag like : #define T_ALPHAPREMUL(a) (((a)>>23)&1) (alpha channel should also be clearly identified. For now, this is not exactly the case as alpha is simply seen as 1 EXTRA_SH and it is possible to have up to 7 extra channels) I could try to implement this myself (some guidance is required... I never hacked littleCMS so far :-( ) Regards ! Sébastien Léon ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ Lcms-user mailing list Lcms-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lcms-user