Hi,

> When transforming larger images, performance really suffers due to the
> transform unpack/pack functions which are called per pixel.

Thats a sort of tradeoff.  Doing it in such way, you lose some performance
but you gain the formatting capabilities. And that is one of the big 
strengths
of lcms. Many usual buffer formats are directly supported, and if your
particular scheme is not, you can easely support it by writting a small
function. Anything other that one pixel would mean temporary buffers,
so the memory requeriments would increase.

> Is there a way to hook into the transform process to avoid the per pixel
> unpack/pack functions, and instead operate on an entire "line" of data
> by calling into the transform API from within my own unpack/pack loop?

There are several levels, on depending of your needs. If you *really* need
big performance, maybe because you are creating some sort of device like
a printer, a digital cinema processor or something like that, then
software based transforms are not enough and you need an ASIC.
Littlecms supports that by _cmsPrecalculateDeviceLink(). I have used this
way and it works.

Another way would be using _cmsPrecalculateDeviceLink() too but instead
of dumping the colormap to an ASIC, using the cmsEvalLUT function,
which also takes just one pixel. Then the task of converting your buffers to
16 bit, which is the internal format of lcms, is up to you.

Anyhow, in 1.16, which I will make a preview available in a week, the
measured performance of RGB -> RGB, 16 bits per channel is about
10 Mpixel/sec on my AMD 4000+, actually faster than ICM2 and
I think reasonable for most usage.

Regards
Marti Maria
The littleCMS project
http://www.littlecms.com


----- Original Message ----- 
From: "Paul Miller" <[EMAIL PROTECTED]>
To: "Lcms Liste" <lcms-user@lists.sourceforge.net>
Sent: Wednesday, August 02, 2006 3:14 PM
Subject: [Lcms-user] lcms transform performance


> When transforming larger images, performance really suffers due to the
> transform unpack/pack functions which are called per pixel.
>
> Is there a way to hook into the transform process to avoid the per pixel
> unpack/pack functions, and instead operate on an entire "line" of data
> by calling into the transform API from within my own unpack/pack loop?
>
> -- 
> Paul Miller | [EMAIL PROTECTED] | www.fxtech.com | Got Tivo?
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share 
> your
> opinions on IT & business topics through brief surveys -- and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Lcms-user mailing list
> Lcms-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lcms-user
>
> 


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to