Discount Relative+BPC ink limiting for CMYK and cmsSigNcolorData color spaces#528
Discount Relative+BPC ink limiting for CMYK and cmsSigNcolorData color spaces#528ryanobeirne wants to merge 1 commit intomm2:masterfrom
Conversation
|
Thanks! The reason to not using multi-ink in BPC is because the Adobe spec specifically forbids so: |
|
I assume you refer to this line in
It would appear this is no longer the case (nor should it ever have been, in my opinion). Adobe is definitely using BPC when converting to Additionally, I know of at least one RIP using LCMS as the color engine that similarly patches LCMS to do the same. I still question my decision here to use |
|
I have just released 2.18 and now I am ready to check it. I really appreciate your aid with this. In fact, BPC is just a plain scaling in XYZ and the difficult part is detecting black. Since there are many blacks and profiles behave differently I have to check what multi channel profiles do in such cases. I am keeping this PR open for the investigation. |
|
After many testing I have been able to implement BPC for multichannel with minimal changes and without disturbing the main API. Please see 212394e |

Hi! I am working in the digital textile printing space where
CMYK+Nprinter profiles are common (CMYK+Orange+Violet,CMYK+Red+Green+Blue, etc.). I've run into an issue where lcms fails to detect the black point for the Relative Colorimetric intent onCMYK+NICC profiles.For example, converting the colors
RGB8(0,0,0)(black) andRGB8(36,36,36)(dark gray) fromsRGBto aCMYK+3profile usingRelative+BPCshould produce 2 distinct grays, but lcms outputs the same color for both samples. This is in contrast to the Adobe BPC implementation in Photoshop that does the same transform but produces 2 distinct grays.I believe I have traced the issue to the
cmsDetectBlackPointfunction incmssamp.c: it appears as though lcms currently uses the Perceptual black point forRelative+BPCtransforms only on CMYK profiles. I believe the Perceptual black point should also be used forRelative+BPCtransforms onCMYK+Nprofiles as well.In this patch, I have extended the
cmsDetectBlackPointfunction to use the Perceptual black point forcmsSigCmykDatacolor spaces AND all thecmsSigNcolorDatacolor spaces. However, I'm not sure if all of these color spaces should be included or if any additional color spaces should be included as well.I have tested this patch on
cmsSig6-8colorDataoutput profiles (CMYK+2..CMYK+4) and found the results to be congruent with Adobe Photoshop. I am happy to provideCMYK+Nprofiles for testing if it is helpful.