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

Reply via email to