As you may have guessed from my recent list eMails, I've been looking at
Little CMS performance over the past few days.
I have improved Little CMS performance some overall through changes to
the C source code. This expands on the warning reduction changes I
worked up before, so Marti, if you haven't reviewed that code yet, you
can put it aside and just check the changes with this code base against
your Git repository:
http://Noel.ProDigitalSoftware.com/temp/LittleCMSOptimizations20170801.z
ip
Just one file has changed since my last submission: cmsintrp.c
Measured performance, via the testbed, as built with Visual Studio
2017's C++ compiler:
The code built from the above zip file, 64 bit:
16 bits on CLUT profiles : 38.7409 MPixel/sec.
8 bits on CLUT profiles : 32.9897 MPixel/sec.
8 bits on Matrix-Shaper profiles : 66.6667 MPixel/sec.
8 bits on SAME Matrix-Shaper profiles : 121.212 MPixel/sec.
8 bits on Matrix-Shaper profiles (AbsCol) : 66.6667 MPixel/sec.
16 bits on Matrix-Shaper profiles : 38.7409 MPixel/sec.
16 bits on SAME Matrix-Shaper profiles : 137.931 MPixel/sec.
16 bits on Matrix-Shaper profiles (AbsCol) : 38.7409 MPixel/sec.
8 bits on curves : 89.3855 MPixel/sec.
16 bits on curves : 94.1176 MPixel/sec.
8 bits on CMYK profiles : 14.5455 MPixel/sec.
16 bits on CMYK profiles : 14.5985 MPixel/sec.
8 bits on gray-to gray : 124.031 MPixel/sec.
8 bits on gray-to-lab gray : 125 MPixel/sec.
8 bits on SAME gray-to-gray : 124.031 MPixel/sec.
Git trunk as of 7/28, 64 bit:
16 bits on CLUT profiles : 34.4086 MPixel/sec.
8 bits on CLUT profiles : 32.2581 MPixel/sec.
8 bits on Matrix-Shaper profiles : 66.6667 MPixel/sec.
8 bits on SAME Matrix-Shaper profiles : 117.647 MPixel/sec.
8 bits on Matrix-Shaper profiles (AbsCol) : 66.1157 MPixel/sec.
16 bits on Matrix-Shaper profiles : 34.3348 MPixel/sec.
16 bits on SAME Matrix-Shaper profiles : 137.931 MPixel/sec.
16 bits on Matrix-Shaper profiles (AbsCol) : 34.4086 MPixel/sec.
8 bits on curves : 88.8889 MPixel/sec.
16 bits on curves : 94.1176 MPixel/sec.
8 bits on CMYK profiles : 11.9048 MPixel/sec.
16 bits on CMYK profiles : 11.9581 MPixel/sec.
8 bits on gray-to gray : 103.896 MPixel/sec.
8 bits on gray-to-lab gray : 105.263 MPixel/sec.
8 bits on SAME gray-to-gray : 104.575 MPixel/sec.
Release 2.8 64, bit:
16 bits on CLUT profiles : 34.4828 MPixel/sec.
8 bits on CLUT profiles : 32.3887 MPixel/sec.
8 bits on Matrix-Shaper profiles : 66.6667 MPixel/sec.
8 bits on SAME Matrix-Shaper profiles : 121.212 MPixel/sec.
8 bits on Matrix-Shaper profiles (AbsCol) : 66.6667 MPixel/sec.
16 bits on Matrix-Shaper profiles : 34.4828 MPixel/sec.
16 bits on SAME Matrix-Shaper profiles : 126.984 MPixel/sec.
16 bits on Matrix-Shaper profiles (AbsCol) : 34.4828 MPixel/sec.
8 bits on curves : 88.8889 MPixel/sec.
16 bits on curves : 94.1176 MPixel/sec.
8 bits on CMYK profiles : 11.9671 MPixel/sec.
16 bits on CMYK profiles : 12.012 MPixel/sec.
8 bits on gray-to gray : 105.263 MPixel/sec.
8 bits on gray-to-lab gray : 105.263 MPixel/sec.
8 bits on SAME gray-to-gray : 104.575 MPixel/sec.
The code from the above zip file 32 bit:
16 bits on CLUT profiles : 28.2686 MPixel/sec.
8 bits on CLUT profiles : 24.6914 MPixel/sec.
8 bits on Matrix-Shaper profiles : 51.7799 MPixel/sec.
8 bits on SAME Matrix-Shaper profiles : 78.4314 MPixel/sec.
8 bits on Matrix-Shaper profiles (AbsCol) : 51.6129 MPixel/sec.
16 bits on Matrix-Shaper profiles : 28.2686 MPixel/sec.
16 bits on SAME Matrix-Shaper profiles : 94.6746 MPixel/sec.
16 bits on Matrix-Shaper profiles (AbsCol) : 28.2686 MPixel/sec.
8 bits on curves : 63.745 MPixel/sec.
16 bits on curves : 71.7489 MPixel/sec.
8 bits on CMYK profiles : 11.3395 MPixel/sec.
16 bits on CMYK profiles : 11.4204 MPixel/sec.
8 bits on gray-to gray : 83.7696 MPixel/sec.
8 bits on gray-to-lab gray : 84.2105 MPixel/sec.
8 bits on SAME gray-to-gray : 84.2105 MPixel/sec.
Git trunk as of 7/28 32 bit:
16 bits on CLUT profiles : 27.1186 MPixel/sec.
8 bits on CLUT profiles : 24.2424 MPixel/sec.
8 bits on Matrix-Shaper profiles : 51.7799 MPixel/sec.
8 bits on SAME Matrix-Shaper profiles : 78.4314 MPixel/sec.
8 bits on Matrix-Shaper profiles (AbsCol) : 51.7799 MPixel/sec.
16 bits on Matrix-Shaper profiles : 27.1186 MPixel/sec.
16 bits on SAME Matrix-Shaper profiles : 94.6746 MPixel/sec.
16 bits on Matrix-Shaper profiles (AbsCol) : 27.1186 MPixel/sec.
8 bits on curves : 64 MPixel/sec.
16 bits on curves : 71.7489 MPixel/sec.
8 bits on CMYK profiles : 10.7889 MPixel/sec.
16 bits on CMYK profiles : 10.7817 MPixel/sec.
8 bits on gray-to gray : 79.2079 MPixel/sec.
8 bits on gray-to-lab gray : 79.2079 MPixel/sec.
8 bits on SAME gray-to-gray : 73.0594 MPixel/sec.
Release 2.8 32 bit:
16 bits on CLUT profiles : 27.1186 MPixel/sec.
8 bits on CLUT profiles : 24.5776 MPixel/sec.
8 bits on Matrix-Shaper profiles : 51.7799 MPixel/sec.
8 bits on SAME Matrix-Shaper profiles : 75.4717 MPixel/sec.
8 bits on Matrix-Shaper profiles (AbsCol) : 51.7799 MPixel/sec.
16 bits on Matrix-Shaper profiles : 27.1647 MPixel/sec.
16 bits on SAME Matrix-Shaper profiles : 94.6746 MPixel/sec.
16 bits on Matrix-Shaper profiles (AbsCol) : 27.1647 MPixel/sec.
8 bits on curves : 56.5371 MPixel/sec.
16 bits on curves : 63.4921 MPixel/sec.
8 bits on CMYK profiles : 10.7239 MPixel/sec.
16 bits on CMYK profiles : 10.8181 MPixel/sec.
8 bits on gray-to gray : 83.3333 MPixel/sec.
8 bits on gray-to-lab gray : 82.9016 MPixel/sec.
8 bits on SAME gray-to-gray : 82.9016 MPixel/sec.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user