Thread: Re: [Lcms-user] mediaWhitePoint of ICC V2 profiles
An ICC-based CMM for color management
Brought to you by:
mm2
From: Gerhard F. <nos...@gm...> - 2005-01-23 22:33:19
|
Alois Pleintinger schrieb: >I agree with you that the V2 specification is not really helpfull. >But I see these four cases for the media white point: > >a) measurement illumination is D50 >a1) measured white point is D50 > this may be the case for a 100% reflecting media or a monitor. >a2) measured white point is NOT D50 > this may be the case for a 80% reflecting meadia. > >b) measurement illumination is NOT D50, but say D65 >b1) measured white point is D65 > this may be the case for a 100% reflecting media or a monitor. >b2) measured white point is NOT D65 > this may be the case for a 80% reflecting meadia. > >Within a V4 profile we are able to unambiguous encode these cases: >a1) >mediaWhitePoint is D50 >chromaticAdaption is identity >a2) >mediaWhitePoint is the measured white point >chromaticAdaption is identity >b1) >mediaWhitePoint is D50 >chromaticAdaption maps from D65 to D50 >b2) >mediaWhitePoint is the measured white point, adapted to D50 >chromaticAdaption maps from D65 to D50 > >But what if we should encode in V2: > >a1) >mediaWhitePoint is D50 >a2) >mediaWhitePoint is the measured white point > IMO the cases (a1) and (a2) are not really in question. Since here the illuminant is already D50, no adaptation from viewing illuminant to PCS illuminant is required, and the wtpt tag IMO is supposed to contain the values you're saying, which are the same as for V4 profiles in the same scenario. >b1) >mediaWhitePoint is D50 or D65 > If you look for instance at the Adobe ICC profiles which can be downloaded from http://www.adobe.com/support/downloads/product.jsp?product=62&platform=Windows then you'll see, that AdobeRGB.icc and AppleRGB.icc record D65 in the wtpt tag. The "classical" sRGB Color Space Profile (from 1998) also records D65 in the wtpt tag. On the other hand, there exist now two new (dated Jul 2004) sRGB profiles at the ICC consortium's web page (http://www.color.org/membersonly/srgbprofiles.html), and these sRGB profiles now record D50 (!) in the wtpt tag (notice, these are _NOT_ V4 profiles, but still 2.0.0 ones). Thus it looks like different profile makers have interpreted the V2 spec differently (or changed their opinion, as for sRGB, both the "classical" and the new ones seem to be made by HP) ... >b2) >mediaWhitePoint is the measured white point or the measured white point >adapted to D50 > The case (b2) is probably rather rare, since most printer profiles are made for D50 illuminant. I think I have only seen one profile for this case so far. A profiler specific text tag in the profile said, that the profile was made for illuminant D65, but the wtpt tag was obviously adapted to D50 (i.e. something like L*a*b*=[90,2,-5] was recorded as wtpt). I think this profile was created by GMB ProfileMaker, but I don't remember any more exactly. >I guess for monitor devices (b1) D65 would have been recorded and therefore >the white point of a V2 profile has to be corrected. > >For a printer profile it is more complex, because if we correct the white point, >we may be wrong for a2) and if we do not correct the white point we may have problems with b2). > >Maybe some input how common profile creating software handle the cases for V2 profiles could help to decide wether to correct printer profile white points or not. > Regards, Gerhard |
From: Andrea G. <da...@ti...> - 2005-01-27 09:28:34
|
Using the library in VisualStudio .NET I found a problem with the function xpow10. In my case the problem cause a wrong reading of some Lab value from an IT8 file. For example a -0.44 value become -3.32. I solved the problem changing the original definition // 10 ^n static double xpow10(int n) { return pow(10, n); } with // 10 ^n static double xpow10(int n) { return pow(10.0, (double)n); } Bye, Andrea |
From: Marti M. <ma...@li...> - 2005-01-28 10:43:33
|
Hi, > I solved the problem changing the original definition :-o Amazing. That's clearly a compiler bug. Ok, I'm going to incorporate the cast to CVS, thanks for let me know. Regards, Marti Maria The little cms project http://www.littlecms.com ----- Original Message ----- From: "Andrea Galligani" <da...@ti...> To: <lcm...@li...> Sent: Thursday, January 27, 2005 10:30 AM Subject: [Lcms-user] Problem in module cmscgats.c > Using the library in VisualStudio .NET I found a problem with the > function xpow10. > In my case the problem cause a wrong reading of some Lab value from an > IT8 file. > For example a -0.44 value become -3.32. > > I solved the problem changing the original definition > > // 10 ^n > static > double xpow10(int n) > { > return pow(10, n); > } > > with > > // 10 ^n > static > double xpow10(int n) > { > return pow(10.0, (double)n); > } > > Bye, > Andrea > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting > Tool for open source databases. Create drag-&-drop reports. Save time > by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. > Download a FREE copy at http://www.intelliview.com/go/osdn_nl > _______________________________________________ > Lcms-user mailing list > Lcm...@li... > https://lists.sourceforge.net/lists/listinfo/lcms-user > |
From: Bob F. <bfr...@si...> - 2005-01-28 15:28:14
|
On Fri, 28 Jan 2005, Marti Maria wrote: > Hi, > >> I solved the problem changing the original definition > > :-o > Amazing. That's clearly a compiler bug. > Ok, I'm going to incorporate the cast to CVS, thanks for let me know. Is this with Visual C++ 8.0, or does it also occur with older versions? I had a user point out a similar compilation issue with pow() when using Visual C++ 8.0. In that case the compiler rejected the code entirely. Bob >> >> with >> >> // 10 ^n >> static >> double xpow10(int n) >> { >> return pow(10.0, (double)n); >> } >> >> Bye, >> Andrea >> >> >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting >> Tool for open source databases. Create drag-&-drop reports. Save time >> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. >> Download a FREE copy at http://www.intelliview.com/go/osdn_nl >> _______________________________________________ >> Lcms-user mailing list >> Lcm...@li... >> https://lists.sourceforge.net/lists/listinfo/lcms-user >> > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting > Tool for open source databases. Create drag-&-drop reports. Save time > by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. > Download a FREE copy at http://www.intelliview.com/go/osdn_nl > _______________________________________________ > Lcms-user mailing list > Lcm...@li... > https://lists.sourceforge.net/lists/listinfo/lcms-user > ====================================== Bob Friesenhahn bfr...@si... http://www.simplesystems.org/users/bfriesen |
From: Andrea G. <da...@ti...> - 2005-01-31 08:10:21
|
I use the Visual .Net 7.1. I don't know if this problem exists also for newer versions. Andrea Bob Friesenhahn wrote: > On Fri, 28 Jan 2005, Marti Maria wrote: > >> Hi, >> >>> I solved the problem changing the original definition >> >> >> :-o >> Amazing. That's clearly a compiler bug. >> Ok, I'm going to incorporate the cast to CVS, thanks for let me know. > > > Is this with Visual C++ 8.0, or does it also occur with older > versions? I had a user point out a similar compilation issue with > pow() when using Visual C++ 8.0. In that case the compiler rejected > the code entirely. > > Bob -- Andrea Galligani __\/__ . / ^ _ \ . |\| (o)(o) |/| #----------------.OOOo--oo--oOOO.-----------# # Macs Tech s.r.l. # # Via S. Paolo 11 # # 56125 Pisa - Italy # # # # Phone & Fax: +39 050 40915 # #_________________________Oooo._____________# .oooO ( ) ( ) ) / \ ( (_/ \_) |