protected double calculate() throws Exception { final String key = String.format("%s.%sX%s", getClass().getName(), sizes.getTileWidth(), sizes.getTileHeight()); StopWatch sw; BufferedImage image; ByteArrayOutputStream stream; long elapsed = 0; for (int i = 0; i < count; i++) { sw = new Slf4JStopWatch(key); JPEG2000CodecOptions options = JPEG2000CodecOptions.getDefaultOptions(); options.lossless = false; options.codeBlockSize = CODE_BLOCK; options.quality = 1.0f; image = new BufferedImage(sizes.getTileWidth(), sizes.getTileHeight(), IMAGE_TYPE); stream = new ByteArrayOutputStream(); service.writeImage(stream, image, options); sw.stop(); elapsed += sw.getElapsedTime(); } return ((double) elapsed) / count; }