[OpenJDK 2D-Dev] [8] request fro review: 8005530: [lcms] Improve performance of ColorConverOp for default destinations
Andrew Brygin
andrew.brygin at oracle.com
Wed Jan 9 12:25:26 UTC 2013
Hello Jennifer and Phil,
could you please review a fix for CR 8005530?
CR: http://bugs.sun.com/view_bug.do?bug_id=8005530
Webrev:http://cr.openjdk.java.net/~bae/8005530/webrev.00/
This fix improves performance of ColorConvertOp.filter()
operation in case of lcms. The fix can be divided into
three separate changes:
* provide support for custom component images in
LCMSImageLayout.
This change affects the case of conversion to default
destination.
* provide a way to process whole image, instead of
scan-by-scan processing, if both source and
destination images do not contain padding samples
(i.e. next scan starts immediately after previous).
* increase optimization level for lcms library from
LOW to HIGHEST. This change affects both new and
standard build systems.
A benchmark comparison below illustrates the increase
of performance:
Options common across all tests:
testname=cmm.colorconv.ccop.op_img
cmm.colorconv.ccop.ccopOptions.srcType=BYTE_3BYTE_BGR
cmm.colorconv.ccop.ccopOptions.content=photo
cmm.opts.profiles=1001
cmm.colorconv.ccop.ccopOptions.dstType=BYTE_3BYTE_BGR,cmm.colorconv.ccop.ccopOptions.size=250:
OpenJDK Baseline: 0.152008134 (var=1.02%) (100.0%)
*************************************|
*************************************|
*************************************|
OpenJDK Fix: 0.245116358 (var=2.0%) (161.25%)
*************************************|**********************
*************************************|**********************
*************************************|*********************
cmm.colorconv.ccop.ccopOptions.dstType=BYTE_3BYTE_BGR,cmm.colorconv.ccop.ccopOptions.size=4000:
OpenJDK Baseline: 0.914826498 (var=0.41%) (100.0%)
***************************|
***************************|
***************************|
OpenJDK Fix: 0.001310043 (var=2.24%) (221.48%)
***************************|********************************
***************************|********************************
***************************|********************************
cmm.colorconv.ccop.ccopOptions.dstType=COMPATIBLE_DST,cmm.colorconv.ccop.ccopOptions.size=250:
OpenJDK Baseline: 0.060737151 (var=1.57%) (100.0%)
***************|
***************|
***************|
OpenJDK Fix: 0.242736486 (var=1.53%) (399.65%)
***************|*******************************************
***************|********************************************
***************|********************************************
cmm.colorconv.ccop.ccopOptions.dstType=COMPATIBLE_DST,cmm.colorconv.ccop.ccopOptions.size=4000:
OpenJDK Baseline: 0.559251559 (var=0.7%) (100.0%)
*******|
*******|
*******|
OpenJDK Fix: 0.001306904 (var=1.05%) (838.16%)
*******|***************************************************
*******|****************************************************
*******|****************************************************
Summary:
OpenJDK Baseline:
Number of tests: 4
Overall average: 0.053373173444166644
Best spread: 0.41% variance
Worst spread: 1.57% variance
(Basis for results comparison)
OpenJDK Fix:
Number of tests: 4
Overall average: 0.12261744826137347
Best spread: 1.05% variance
Worst spread: 2.24% variance
Comparison to basis:
Best result: 838.16% of basis
Worst result: 161.25% of basis
Number of wins: 4
Number of ties: 0
Number of losses: 0
Thanks,
Andrew
More information about the 2d-dev
mailing list