Marti wrote:
>> 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.

Agreed - it is nice to have this simple API and it was easy for me to 
figure out and use.

Unfortunately, we loading a 5K x 4K JPEG image (RGB8 -> RGBA8), it takes 
3 times longer to use the profile transform than not. Since it sounds 
like the transform resolves to a simple 16 bit lookup after the unpack, 
MOST of this time is tied up in the pack/unpack.

>> 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?
> 
> 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.

Ah, this is what I am looking for. I can easily handle the temporary 
16-bit line memory myself. But how fast is cmsEvalLUT? I'd have to call 
that THREE times per pixel.

> 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.

That sounds interesting!

Nice work on the API BTW.

> 
> 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
>>
>>
> 
> 


-- 
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

Reply via email to