I've uploaded a tarball with lcms2-2.3 release candidate:
http://www.littlecms.com/lcms2-2.3rc2.tar.gz
It is basically a maintenance release, with a number of bugs fixed.
If no issues are found, I plan to release it in a week.
Showing posts with label new drop. Show all posts
Showing posts with label new drop. Show all posts
Wednesday, November 2, 2011
Monday, May 30, 2011
lcms 2.2 release candidate
I have setup a release candidate for lcms 2.2, which includes support for dictionary metatag and fixes all know issues. I am now removing all copyrighted profiles and including RTF for the documentation, in order to fulfill Debian requirements.
See here the release candidate:
http://www.littlecms.com/lcms2-2.2rc1.tar.gz
or in the GIT repository, tagged as lcms2-2.2rc
http://github.com/mm2/Little-CMS
Any feedback is very welcome
Friday, December 10, 2010
Absolute colorimetric intent
Kai-Uwe Behrmann has found a nasty bug in 2.1 on absolute colorimetric intent when display profiles are involved. :-( The issue is solved in GIT, but not in the 2.1 distribution. Too bad. Well, It is not so terrible because it only affects the combination of abs. colorimetric and display profiles, but anyway ...
The specs on ICC V4 are pretty messed out when regarding to absolute colorimetric intent. There is now something called "ICC absolute", which is same that relative on display profiles and preserves paper white on output profiles. Basically the observer is assumed to be fully adapted to whatever illuminant being used to create the profile, this has severe implications on monitor profiles, and no effect on printer profiles measured under D50. So right now we have the v2 absolute, wich says nothing about the observer adaptation state and v4 absolute which assumes full adaptation.
I tried to do my best in supporting all modes (v2 and v4) by implementing what the white paper below describes, a knob to adjust the degree of chromatic adaptation, a feature that may be useful for match-to-screen applications. See cmsSetAdaptationState() on the manuals.
http://www.color.org/ICC_white_paper_6_v2_and_v4_display_profile_differences.pdf
Many thanks Kai-Uwe for catching the bug!
The specs on ICC V4 are pretty messed out when regarding to absolute colorimetric intent. There is now something called "ICC absolute", which is same that relative on display profiles and preserves paper white on output profiles. Basically the observer is assumed to be fully adapted to whatever illuminant being used to create the profile, this has severe implications on monitor profiles, and no effect on printer profiles measured under D50. So right now we have the v2 absolute, wich says nothing about the observer adaptation state and v4 absolute which assumes full adaptation.
I tried to do my best in supporting all modes (v2 and v4) by implementing what the white paper below describes, a knob to adjust the degree of chromatic adaptation, a feature that may be useful for match-to-screen applications. See cmsSetAdaptationState() on the manuals.
http://www.color.org/ICC_white_paper_6_v2_and_v4_display_profile_differences.pdf
Many thanks Kai-Uwe for catching the bug!
Wednesday, November 3, 2010
Release candidate for 2.1
CIC18 is coming and I wish to have some fresh release to introduce at that time, so here are two packages as tarball and zip holding the GIT code and some minor additions. Should solve all known glitches up to date. If all is ok, I will do the official release on monday, nov-8. I know, this is a short notice, but the release mostly contains GIT code that has been available for a while.
http://www.littlecms.com/lcms2-2.1.tar.gz
http://www.littlecms.com/lcms2-2.1.zip
Enjoy!
http://www.littlecms.com/lcms2-2.1.tar.gz
http://www.littlecms.com/lcms2-2.1.zip
Enjoy!
Saturday, September 18, 2010
2.1 schedule
It has been a long time since I posted the first littlecms 2 release. To my astonishment it has been reasonably stable and reliable. Sure, there have been bugs, any software has bugs, that is a fact that software developers already knows very well. But I have not been forced to do a quick release due to a killer bug, so I am happy on how is going all that lcms2 stuff.
Since the old days of lcms1.0, a fresh release of the engine has been available each 6 months, more or less. So now it is time to prepare the coming of 2.1. I plan to do it on November-2010. Then, I am presenting a paper on CIC18 which relates with lcms2 and its unbounded mode, so the new release would be available at that time. This will be a maintenance release, with the addition of Delphi wrapper, the Matlab wrapper and some minor tweaks. BTW, this is already on the git, the release woould only qualify this code and mark it as in the "stable side".
If anybody is interested, I will be also giving a talk in ICC DevCon, this time about on how to build a minimal V2 compliant ICC engine. I will be glad to discuss any questions you have, or just have a beer with you!
Since the old days of lcms1.0, a fresh release of the engine has been available each 6 months, more or less. So now it is time to prepare the coming of 2.1. I plan to do it on November-2010. Then, I am presenting a paper on CIC18 which relates with lcms2 and its unbounded mode, so the new release would be available at that time. This will be a maintenance release, with the addition of Delphi wrapper, the Matlab wrapper and some minor tweaks. BTW, this is already on the git, the release woould only qualify this code and mark it as in the "stable side".
If anybody is interested, I will be also giving a talk in ICC DevCon, this time about on how to build a minimal V2 compliant ICC engine. I will be glad to discuss any questions you have, or just have a beer with you!
Thursday, March 4, 2010
Beta 2 is ready
Time for a new beta. First one was very successful and several important bugs were found and fixed.
Beta2 will focus on quality and documentation, and will rest for a month.
I will give frequent updates on the status of the beta. You can download it from the link on the right.
Beta2 will focus on quality and documentation, and will rest for a month.
I will give frequent updates on the status of the beta. You can download it from the link on the right.
Friday, February 12, 2010
LittleCMS 2 on github
So here you go:
http://github.com/mm2/Little-CMS
You can review all files in a nice web page and also that makes fair easy to send patches. Many thanks to Richard Hughes for this nice idea!
You can also review the documentation in such way. It is located on 'doc' folder. The tutorial is a good starting point.
http://github.com/mm2/Little-CMS
You can review all files in a nice web page and also that makes fair easy to send patches. Many thanks to Richard Hughes for this nice idea!
You can also review the documentation in such way. It is located on 'doc' folder. The tutorial is a good starting point.
Friday, February 5, 2010
Little CMS 2.0 beta 1 is available!
Yes, that is. After so much time, all code, documentation, testbed, utilities... all is in the box, and all is working!
In one day or two I will announce the beta availability to the lcms mailing list, but meanwhile, you can be the very first to try it.
http://www.littlecms.com/lcms2-2.0beta1.tar.gz
Enjoy!
In one day or two I will announce the beta availability to the lcms mailing list, but meanwhile, you can be the very first to try it.
http://www.littlecms.com/lcms2-2.0beta1.tar.gz
Enjoy!
Friday, October 23, 2009
Documentation!
Back from vacation. Lots of fun and some time devoted to LittleCMS. As a result, we have now some incipient documentation. There is a tutorial you can read to explore the differences between LittleCMS 1 and 2. The plug-in API is also documented, but the documentation lacks some explanations and is mostly unfinished. The API reference is a work in progress...
Saturday, September 19, 2009
Unbounded CMM
With the drop I'm posting right now (September 19) most of the utilities are now working. You have a tifficc applier, a transicc calculator and a linkicc devicelink generator. As you can see, some names have changed. This is because icclink was clashing with Graeme Gill's icclink from Argyll. This latter is an outstanding utility, and many users may want to have both installed, so I changed the name and get an extra consistency bonus (now all lcms utility names are "whatever-icc")
Now you have transicc (former icctrans) and therefore you can check one of the new features of lcms2. That's what is called "unbounded CMM mode"
What is that? Well, with lcms2 you can use floating point values. That means, you are no longer limited to 0..255 on 8 bits or 0...65535 on 16 bits, but on some profiles you can get out of those bounds and the CMM still works.
Not all profiles does accept that. You need profiles that are implemented using enterly math expressions. Some very simple profiles works in such way, for example AdobeRGB. The sRGB profile does not work because it has curves implemented as tables, but the built-in sRGB does work as instead of tables it uses parametric curves. Also some advanced profiles for digital cameras using multiprocessing elements may work in unbounded mode. Right now it is hard to find any of those, as they are described in an addendum to the ICC spec.
Let's check this feature. Using AdobeRGB to the built-in Lab in transicc:
Nothing special, but let's try this one
Do you see where I'm going? 300 is above 8 bits, and L*=114.6 is a highlight, so here you have an example of what can be accomplised with this mode.
Now you have transicc (former icctrans) and therefore you can check one of the new features of lcms2. That's what is called "unbounded CMM mode"
What is that? Well, with lcms2 you can use floating point values. That means, you are no longer limited to 0..255 on 8 bits or 0...65535 on 16 bits, but on some profiles you can get out of those bounds and the CMM still works.
Not all profiles does accept that. You need profiles that are implemented using enterly math expressions. Some very simple profiles works in such way, for example AdobeRGB. The sRGB profile does not work because it has curves implemented as tables, but the built-in sRGB does work as instead of tables it uses parametric curves. Also some advanced profiles for digital cameras using multiprocessing elements may work in unbounded mode. Right now it is hard to find any of those, as they are described in an addendum to the ICC spec.
Let's check this feature. Using AdobeRGB to the built-in Lab in transicc:
C:\lcms-2.0\bin>transicc -i AdobeRGB1998.icc -o *Lab
LittleCMS ColorSpace conversion calculator - 4.0 [LittleCMS 2.00]
Enter values, 'q' to quit
R? 10
G? 10
B? 10
L*=0.7287 a*=0.0000 b*=-0.0000
Nothing special, but let's try this one
R? 300
G? 300
B? 300
L*=114.6770 a*=0.0006 b*=-0.0005
Do you see where I'm going? 300 is above 8 bits, and L*=114.6 is a highlight, so here you have an example of what can be accomplised with this mode.
Wednesday, September 2, 2009
New drop
Ok, so here is the september drop. That's functionality complete, that means all the functionality is already there and now it remains debugging and stabilizing. I am still in good shape for the schedule, so hopefully the first beta will be available on mid october.
New in this drop:
New in this drop:
- error logging supersedes error plug-in, which is no longer available (it was a bad idead, indeed)
- black preservation intents are working
- TAC detection is working.
- All tags and tag types are correcly read/written
- Gray/RGB/CMYK/Lab/XYZ
- Info fns with localization, unicode
- Segment maxima gamut boundary descriptor
Friday, August 14, 2009
Black is black (II)
The second black thing has nothing to do with black point compensation, but is still black-fashioned. That are the black preserving intents. No, this does not belong to normal ICC workflow. ICC has tried to address such need but still there is nothing in the spec.
Let's see what the issue is. Suppose we work in press. Press are very tied to standards, US press uses SWOP and European folks are more toward FOGRA. Japanese people uses other standards like TOYO, for example. Each standard is very well detailed and presses are setup to faithfully emulate any of these standards.
Ok, let's imagine you got an image ad, looking like that. This is a very usual flier, now just imagine instead of getting it in PDF, you get it as a raster file. Say in a CMYK TIFF, ready for a SWOP press. And you want to print in on a FOGRA27!!
Maybe you see no issue over here, but take a look on this:
That means, if I convert from SWOP to FOGRA27, the ICC profiles totally mess up the K channel, so a portion of the picture that originally is using only black ink, after the conversion, gets Cyan, Magenta, Yellow and well, a little bit of black as well. Now please realize what happens on all the text in the Flier.

Ugly. I guess the vendor who pays the bill will not be very pleased, right?
So I've added two different modes to deal with that: Black-ink-only preservation and black-plane preservation. The first is simple and effective: do all the colorimetric transforms but keep only K (preserving L*) where the source image is only black. The second mode is fair more complex ans tries to preserve the WHOLE K plane. I'm still checking this latter. If you want to give it a try, please download the new snapshot and build the TIFFICC utility. It already implements those new intents.

Ok, let's imagine you got an image ad, looking like that. This is a very usual flier, now just imagine instead of getting it in PDF, you get it as a raster file. Say in a CMYK TIFF, ready for a SWOP press. And you want to print in on a FOGRA27!!
Maybe you see no issue over here, but take a look on this:
LittleCMS ColorSpace conversion calculator - 4.0 [LittleCMS 2.00]
Enter values, 'q' to quit
C (0..100)? 0
M (0..100)? 0
Y (0..100)? 0
K (0..100)? 50
C=48.21 M=38.71 Y=34.53 K=1.09
That means, if I convert from SWOP to FOGRA27, the ICC profiles totally mess up the K channel, so a portion of the picture that originally is using only black ink, after the conversion, gets Cyan, Magenta, Yellow and well, a little bit of black as well. Now please realize what happens on all the text in the Flier.

Ugly. I guess the vendor who pays the bill will not be very pleased, right?
So I've added two different modes to deal with that: Black-ink-only preservation and black-plane preservation. The first is simple and effective: do all the colorimetric transforms but keep only K (preserving L*) where the source image is only black. The second mode is fair more complex ans tries to preserve the WHOLE K plane. I'm still checking this latter. If you want to give it a try, please download the new snapshot and build the TIFFICC utility. It already implements those new intents.
Tuesday, August 4, 2009
New drop available
August drop is here. Working features are CMYK, black point compensation, all profile I/O ...
Enjoy!
Enjoy!
Subscribe to:
Posts (Atom)