Thread: [Lcms-user] Release candidate of lcms2-2.10 available
An ICC-based CMM for color management
Brought to you by:
mm2
From: <mar...@li...> - 2020-05-19 19:48:45
|
Hi there, After a long period of inactivity, I am happy to announce the imminent release of lcms2-2.10. The release candidate is available here: http://www.littlecms.com/lcms2-2.10rc1.tar.gz It includes bug fixes and some compilation aids, like the possibility of removing the "register" modifier. MD5 is now accesible in API. PostScript CSA generation is also much better, thanks to Philipp Knechtges. This solves historical performance issues on PostScript which affect many intepreters, Camelot, Ghostscript... Maybe the biggest difference of 2.10 with other releases lies in the bundle with the "fast float" plug-in. Previouly released as a commercial package, the "fast float" plug-in increases floating point performance significantly. Thet means, you call a function when initializing your code and you get a throughput gain when doing floating point transforms. The plug-in has also other features like dithered output or fast 8 bit RGB transforms. There is a test bed in the plug-in directory that shows and measures the throughput gain in your target computer. I have decided to releases this plug-in AS OPEN SOURCE UNDER GPL3 LICENCE. Please check the license carefully before including the code in your applications. This is only on the plug-in, the lcms2 core is still under MIT license. In case of doubt you can contact me on this mailing list or by using the mail info { at } littlecms { dot } com If the release candidate is ok for all you, I will proceed with the official in a very few. Best regards Marti Maria The LittleCMS Project http:\www.littlecms.com |
From: Richard H. <hug...@gm...> - 2020-05-20 11:34:21
|
On Tue, 19 May 2020 at 20:50, <mar...@li...> wrote: > http://www.littlecms.com/lcms2-2.10rc1.tar.gz Work great here, thanks. All the colord self tests pass with this installed. > MD5 is now accesible in API. Do you mean something like cmsSetHeaderProfileID? > Maybe the biggest difference of 2.10 with other releases lies in the > bundle with the "fast float" plug-in. Yes! > I have decided to releases this plug-in AS OPEN SOURCE UNDER GPL3 > LICENCE. Please check the license carefully before including the code > in your applications. Less awesome. :( Whilst I really appreciate the "gift" of the fast math plugin, if it was "LGPL v2+" I could unconditionally enable it in colord. Obviously the L in the LGPLv2+ means it can be used in non-free software (which is probably why you chose the * variant) but it means it can be used by the animation studios and places like that. I really don't want to come across ungrateful, as it's your gift to give, not the receiver to set conditions. Richard. |
From: <mar...@li...> - 2020-05-21 07:50:30
|
Quoting Richard Hughes <hug...@gm...>: > Work great here, thanks. All the colord self tests pass with this installed. Thanks! >> MD5 is now accesible in API. > Do you mean something like cmsSetHeaderProfileID? You have cmsMD5alloc, cmsMD5add, cmsMD5finish in the plug-in API. This exposes the internal implementation of the MD5 algorithm. Good for embedded systems and situations whith scarce resources where code reuse is a big requirement. Otherwise, carefull about MD5, which has been proven to be insecure. I use it because the ICC spec, but there are way better message digest algorithms. > > Less awesome. :( Whilst I really appreciate the "gift" of the fast > math plugin, if it was "LGPL v2+" I could unconditionally enable it in > colord. Obviously the L in the LGPLv2+ means it can be used in > non-free software (which is probably why you chose the * variant) but > it means it can be used by the animation studios and places like that. > I really don't want to come across ungrateful, as it's your gift to > give, not the receiver to set conditions. Well, this is a way to give support to free software. The plug-in basically adds thoughput. With the core lcms2 you can do the same. If you do free free software you can use it for free. If you need this on commercial software, please contact me privately. There is a commercial license available at a reasonable fee. Best regards Marti |
From: Boudewijn R. <bo...@va...> - 2020-05-20 12:01:10
|
On woensdag 20 mei 2020 13:34:02 CEST Richard Hughes wrote: > On Tue, 19 May 2020 at 20:50, <mar...@li...> wrote: > > http://www.littlecms.com/lcms2-2.10rc1.tar.gz > > Work great here, thanks. All the colord self tests pass with this installed. Same here -- works fine, all related unittests in krita pass. > > I have decided to releases this plug-in AS OPEN SOURCE UNDER GPL3 > > LICENCE. Please check the license carefully before including the code > > in your applications. > > Less awesome. :( Whilst I really appreciate the "gift" of the fast > math plugin, if it was "LGPL v2+" I could unconditionally enable it in > colord. Obviously the L in the LGPLv2+ means it can be used in > non-free software (which is probably why you chose the * variant) but > it means it can be used by the animation studios and places like that. For Krita it's perfect, and subjectively speaking, it makes everything feel smoother :-) -- https://www.krita.org |
From: Noel C. <NCa...@Pr...> - 2020-05-20 13:28:44
|
With only a few minutes effort we merged your updated Little CMS sources into our code and it builds into our plug-in products and runs perfectly. We only have 3 .c files where we (minimally) modify your code e.g., to hand-optimize for better performance or eliminate warnings as our compiler is set to build as C++ and emit maximum warnings and code analyzer output. If only other libraries were this clean and functional. Thank you, Marti and all who have contributed. -Noel Carboni ProDigital Software -----Original Message----- From: mar...@li... <mar...@li...> Sent: Tue, May 19, 2020 3:50 PM To: Lcms List <lcm...@li...> Subject: [Lcms-user] Release candidate of lcms2-2.10 available Hi there, After a long period of inactivity, I am happy to announce the imminent release of lcms2-2.10. The release candidate is available here: http://www.littlecms.com/lcms2-2.10rc1.tar.gz It includes bug fixes and some compilation aids, like the possibility of removing the "register" modifier. MD5 is now accesible in API. PostScript CSA generation is also much better, thanks to Philipp Knechtges. This solves historical performance issues on PostScript which affect many intepreters, Camelot, Ghostscript... Maybe the biggest difference of 2.10 with other releases lies in the bundle with the "fast float" plug-in. Previouly released as a commercial package, the "fast float" plug-in increases floating point performance significantly. Thet means, you call a function when initializing your code and you get a throughput gain when doing floating point transforms. The plug-in has also other features like dithered output or fast 8 bit RGB transforms. There is a test bed in the plug-in directory that shows and measures the throughput gain in your target computer. I have decided to releases this plug-in AS OPEN SOURCE UNDER GPL3 LICENCE. Please check the license carefully before including the code in your applications. This is only on the plug-in, the lcms2 core is still under MIT license. In case of doubt you can contact me on this mailing list or by using the mail info { at } littlecms { dot } com If the release candidate is ok for all you, I will proceed with the official in a very few. Best regards Marti Maria The LittleCMS Project http:\www.littlecms.com _______________________________________________ Lcms-user mailing list Lcm...@li... https://lists.sourceforge.net/lists/listinfo/lcms-user |
From: <mar...@li...> - 2020-05-21 07:34:24
|
Hello, Quoting Boudewijn Rempt via Lcms-user <lcm...@li...>: > > Same here -- works fine, all related unittests in krita pass. Excellent, thank you. > For Krita it's perfect, and subjectively speaking, it makes > everything feel smoother :-) I must confess Krita has been one of the reasons to release the plug-in as open source. Let me say you have evolved into an awesome program. The one I reccomend it to whosever that wants a photoshop alternative. The plug-in should add enough speed to allow floating-point transformations in HDR and other special workflows. 8 bit throughput should also be increased. But please be careful on testing, because the optimizations the plug-in uses are rather agressive and it is possible to get some small differences in numbers. I have been using the plug-in for years and it works, but it is certainly desireable to have a way to deactivate. The yet-existing flag cmsFLAGS_NOOPTIMIZE disables the plug-in as well. Please let me know if you need assistence on Krita. And keep on that good work! Best regards Marti |
From: Boudewijn R. <bo...@va...> - 2020-05-21 08:00:59
|
On donderdag 21 mei 2020 09:35:59 CEST mar...@li... wrote: > I must confess Krita has been one of the reasons to release the > plug-in as open source. Let me say you have evolved into an awesome > program. The one I reccomend it to whosever that wants a photoshop > alternative. Thanks! > The plug-in should add enough speed to allow floating-point > transformations in HDR and other special workflows. 8 bit throughput > should also be increased. > > But please be careful on testing, because the optimizations the > plug-in uses are rather agressive and it is possible to get some small > differences in numbers. I have been using the plug-in for years and it > works, but it is certainly desireable to have a way to deactivate. The > yet-existing flag cmsFLAGS_NOOPTIMIZE disables the plug-in as well. > > Please let me know if you need assistence on Krita. And keep on that > good work! Sure, will do! -- https://www.krita.org |
From: <mar...@li...> - 2020-05-23 15:36:39
|
Hello, Many thanks to everybody for testing & reporting. Here is release candidate 2, with all glitches you have found hopefully fixed. http://www.littlecms.com/lcms2-2.10rc2.tar.gz Best regards Marti Maria The LittleCMS Project http:\www.littlecms.com |
From: Carles L. <car...@in...> - 2020-05-29 12:42:21
|
Hello all, we found with the latest releases that we can't save DeviceLink profiles to memory buffers or files. We create DeviceLink profiles "on the fly". The input is normally RGB and the output can be anything from 1CLR to FCLR The function Type_Lut16_Write returns with an error if the inputCha * outputCha is not 9, in the case that the LUT has no matrix. ... if (!_cmsWriteUInt8Number(io, (cmsUInt8Number) InputChannels)) return FALSE; if (!_cmsWriteUInt8Number(io, (cmsUInt8Number) OutputChannels)) return FALSE ; if (!_cmsWriteUInt8Number(io, (cmsUInt8Number) clutPoints)) return FALSE; if (!_cmsWriteUInt8Number(io, 0)) return FALSE; // Padding n = NewLUT->InputChannels * NewLUT->OutputChannels; if (MatMPE != NULL) { for (i = 0; i < n; i++) { if (!_cmsWrite15Fixed16Number(io, MatMPE->Double[i])) return FALSE; } } else { if (n != 9) return FALSE; if (!_cmsWrite15Fixed16Number(io, 1)) return FALSE; if (!_cmsWrite15Fixed16Number(io, 0)) return FALSE; if (!_cmsWrite15Fixed16Number(io, 0)) return FALSE; if (!_cmsWrite15Fixed16Number(io, 0)) return FALSE; if (!_cmsWrite15Fixed16Number(io, 1)) return FALSE; if (!_cmsWrite15Fixed16Number(io, 0)) return FALSE; if (!_cmsWrite15Fixed16Number(io, 0)) return FALSE; if (!_cmsWrite15Fixed16Number(io, 0)) return FALSE; if (!_cmsWrite15Fixed16Number(io, 1)) return FALSE; } ... We think that the verification about the number of elements of the matrix (n != 9) should be in the other case, not in the place where the identity matrix is written. Do you think you can fix it? Are we wrong? Thanks a lot Carles Llopis On Sat, May 23, 2020 at 5:38 PM <mar...@li...> wrote: > > Hello, > > Many thanks to everybody for testing & reporting. > > Here is release candidate 2, with all glitches you have found hopefully > fixed. > > http://www.littlecms.com/lcms2-2.10rc2.tar.gz > > Best regards > Marti Maria > The LittleCMS Project > http:\www.littlecms.com > > > > > _______________________________________________ > Lcms-user mailing list > Lcm...@li... > https://lists.sourceforge.net/lists/listinfo/lcms-user > -- La información contenida en este mensaje y/o archivo(s) adjunto(s), enviada desde INEDIT SOFTWARE SL, es confidencial/privilegiada y está destinada a ser leída sólo por la(s) persona(s) a la(s) que va dirigida. Si usted lee este mensaje y no es el destinatario señalado, el empleado o el agente responsable de entregar el mensaje al destinatario, o ha recibido esta comunicación por error, le informamos que está totalmente prohibida y puede ser ilegal cualquier divulgación, distribución o reproducción de esta comunicación, y le rogamos que nos lo notifique inmediatamente y nos devuelva el mensaje original a la dirección arriba mencionada. Gracias. POLÍTICA DE PRIVACIDAD <https://www.inedit.com/es/aviso-legal/> The information contained in this message and/or attached file(s), sent from INEDIT SOFTWARE SL, is confidential/privileged and is intended to be read only by the person(s) to whom it is adressed. If you read this message and you are not the designated recipient, employee or agent responsible for delivering the message to the recipient, or have received this communication by mistake, we inform you that it is totally prohibited and may be illega, any disclosure, distribution or reproduction of this communication, and we ask you to notify us immediately and return the original message to the address mentioned above. Thank you. PRIVACY & TERMS <https://www.inedit.com/en/aviso-legal/> |
From: <mar...@li...> - 2020-06-01 14:09:34
|
Quoting Carles Llopis <car...@in...>: > we found with the latest releases that we can't save DeviceLink profiles to > memory buffers or files. > We create DeviceLink profiles "on the fly". The input is normally RGB and > the output can be anything from 1CLR to FCLR This is by design. Has been there for many time. If you create a rather usual 3x3 lut and you dont't specify any matrix, lcms puts in the profile a identity for you. If the pipeline is not 3x3, then you have to add the matrix. This is because for multichannel it is not clear what a "identity" means. Note that the spec *requires* a matrix for Lut16, so you have to put something. Then you have several options: - Use a V4 ICC profile with a modern LutAtoB/LutBtoA - Add a matrix to the pipeline. Best regards Marti |
From: Carles L. <car...@in...> - 2020-06-01 14:11:41
|
Ah, ok, then we'll add the indentity matrix by ourselves. thank you! Carles > On 1 Jun 2020, at 16:11, mar...@li... wrote: > > > Quoting Carles Llopis <car...@in...>: > >> we found with the latest releases that we can't save DeviceLink profiles to >> memory buffers or files. >> We create DeviceLink profiles "on the fly". The input is normally RGB and >> the output can be anything from 1CLR to FCLR > > This is by design. Has been there for many time. If you create a rather usual 3x3 lut and you dont't specify any matrix, lcms puts in the profile a identity for you. If the pipeline is not 3x3, then you have to add the matrix. This is because for multichannel it is not clear what a "identity" means. Note that the spec *requires* a matrix for Lut16, so you have to put something. > > Then you have several options: > > - Use a V4 ICC profile with a modern LutAtoB/LutBtoA > - Add a matrix to the pipeline. > > Best regards > Marti > > > > > -- La información contenida en este mensaje y/o archivo(s) adjunto(s), enviada desde INEDIT SOFTWARE SL, es confidencial/privilegiada y está destinada a ser leída sólo por la(s) persona(s) a la(s) que va dirigida. Si usted lee este mensaje y no es el destinatario señalado, el empleado o el agente responsable de entregar el mensaje al destinatario, o ha recibido esta comunicación por error, le informamos que está totalmente prohibida y puede ser ilegal cualquier divulgación, distribución o reproducción de esta comunicación, y le rogamos que nos lo notifique inmediatamente y nos devuelva el mensaje original a la dirección arriba mencionada. Gracias. POLÍTICA DE PRIVACIDAD <https://www.inedit.com/es/aviso-legal/> The information contained in this message and/or attached file(s), sent from INEDIT SOFTWARE SL, is confidential/privileged and is intended to be read only by the person(s) to whom it is adressed. If you read this message and you are not the designated recipient, employee or agent responsible for delivering the message to the recipient, or have received this communication by mistake, we inform you that it is totally prohibited and may be illega, any disclosure, distribution or reproduction of this communication, and we ask you to notify us immediately and return the original message to the address mentioned above. Thank you. PRIVACY & TERMS <https://www.inedit.com/en/aviso-legal/> |
From: Carles L. <car...@in...> - 2020-06-02 08:17:27
|
Hi Marti, well, the specs say that Lut16 type contains a 3x3 matrix (only used for XYZ), input and output curves and the grid itself. So we keep thinking that the n calculated as inputChannels * outputChannels makes no sense. Best regards Carles Llopis | Developer & neoStampa Specialist T. +34 937 912 821 - +34 646 373 569 A. C/Rocà, 6 08394 - Sant Vicenç de Montalt, Barcelona. View Map <https://goo.gl/maps/eN3Yo2Hty3K77sVPA> Visit our website> <https://www.inedit.com/> <https://www.youtube.com/channel/UCoZRohS-Vx7DrieESs6M92g> <https://www.linkedin.com/company/ineditsoftware> <https://www.instagram.com/inedit_software/> <https://www.facebook.com/ineditsoftware/> <https://twitter.com/IneditSoftware> > On 1 Jun 2020, at 16:11, mar...@li... wrote: > > > Quoting Carles Llopis <car...@in...>: > >> we found with the latest releases that we can't save DeviceLink profiles to >> memory buffers or files. >> We create DeviceLink profiles "on the fly". The input is normally RGB and >> the output can be anything from 1CLR to FCLR > > This is by design. Has been there for many time. If you create a rather usual 3x3 lut and you dont't specify any matrix, lcms puts in the profile a identity for you. If the pipeline is not 3x3, then you have to add the matrix. This is because for multichannel it is not clear what a "identity" means. Note that the spec *requires* a matrix for Lut16, so you have to put something. > > Then you have several options: > > - Use a V4 ICC profile with a modern LutAtoB/LutBtoA > - Add a matrix to the pipeline. > > Best regards > Marti > > > > > -- La información contenida en este mensaje y/o archivo(s) adjunto(s), enviada desde INEDIT SOFTWARE SL, es confidencial/privilegiada y está destinada a ser leída sólo por la(s) persona(s) a la(s) que va dirigida. Si usted lee este mensaje y no es el destinatario señalado, el empleado o el agente responsable de entregar el mensaje al destinatario, o ha recibido esta comunicación por error, le informamos que está totalmente prohibida y puede ser ilegal cualquier divulgación, distribución o reproducción de esta comunicación, y le rogamos que nos lo notifique inmediatamente y nos devuelva el mensaje original a la dirección arriba mencionada. Gracias. POLÍTICA DE PRIVACIDAD <https://www.inedit.com/es/aviso-legal/> The information contained in this message and/or attached file(s), sent from INEDIT SOFTWARE SL, is confidential/privileged and is intended to be read only by the person(s) to whom it is adressed. If you read this message and you are not the designated recipient, employee or agent responsible for delivering the message to the recipient, or have received this communication by mistake, we inform you that it is totally prohibited and may be illega, any disclosure, distribution or reproduction of this communication, and we ask you to notify us immediately and return the original message to the address mentioned above. Thank you. PRIVACY & TERMS <https://www.inedit.com/en/aviso-legal/> |
From: <mar...@li...> - 2020-06-02 09:48:10
|
<div dir='auto'><div><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>well, the specs say that Lut16 type contains a 3x3 matrix (only used for XYZ), input and output curves and the grid itself.</div><div>So we keep thinking that the n calculated as inputChannels * outputChannels makes no sense. </div><div></div></div></blockquote></div></div></div><div dir="auto"><br></div><div dir="auto">You are absolutely right, weird enough, the spec forces 3x3 no matter channel count. If color space is not XYZ, whole matrix is ignored. The CMM does that, but somehow the write routine was not doing same behaviour. Thanks for pointing out. It is now fixed on GIT.</div><div dir="auto"><br></div><div dir="auto">Marti</div></div> |
From: Carles L. <car...@in...> - 2020-06-02 10:44:03
|
Thanks a lot Martí Carles Llopis | Developer & neoStampa Specialist T. +34 937 912 821 - +34 646 373 569 A. C/Rocà, 6 08394 - Sant Vicenç de Montalt, Barcelona. View Map <https://goo.gl/maps/eN3Yo2Hty3K77sVPA> Visit our website> <https://www.inedit.com/> <https://www.youtube.com/channel/UCoZRohS-Vx7DrieESs6M92g> <https://www.linkedin.com/company/ineditsoftware> <https://www.instagram.com/inedit_software/> <https://www.facebook.com/ineditsoftware/> <https://twitter.com/IneditSoftware> > On 2 Jun 2020, at 11:47, mar...@li... wrote: > > > > well, the specs say that Lut16 type contains a 3x3 matrix (only used for XYZ), input and output curves and the grid itself. > So we keep thinking that the n calculated as inputChannels * outputChannels makes no sense. > > You are absolutely right, weird enough, the spec forces 3x3 no matter channel count. If color space is not XYZ, whole matrix is ignored. The CMM does that, but somehow the write routine was not doing same behaviour. Thanks for pointing out. It is now fixed on GIT. > > Marti -- La información contenida en este mensaje y/o archivo(s) adjunto(s), enviada desde INEDIT SOFTWARE SL, es confidencial/privilegiada y está destinada a ser leída sólo por la(s) persona(s) a la(s) que va dirigida. Si usted lee este mensaje y no es el destinatario señalado, el empleado o el agente responsable de entregar el mensaje al destinatario, o ha recibido esta comunicación por error, le informamos que está totalmente prohibida y puede ser ilegal cualquier divulgación, distribución o reproducción de esta comunicación, y le rogamos que nos lo notifique inmediatamente y nos devuelva el mensaje original a la dirección arriba mencionada. Gracias. POLÍTICA DE PRIVACIDAD <https://www.inedit.com/es/aviso-legal/> The information contained in this message and/or attached file(s), sent from INEDIT SOFTWARE SL, is confidential/privileged and is intended to be read only by the person(s) to whom it is adressed. If you read this message and you are not the designated recipient, employee or agent responsible for delivering the message to the recipient, or have received this communication by mistake, we inform you that it is totally prohibited and may be illega, any disclosure, distribution or reproduction of this communication, and we ask you to notify us immediately and return the original message to the address mentioned above. Thank you. PRIVACY & TERMS <https://www.inedit.com/en/aviso-legal/> |