X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=imagesqueeze.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fimagesqueeze%2Fcodec%2FOperatingContext.java;h=0df97798d368573d7d61b9c89a0bfb39b8b7381e;hp=e96d610ffd5e98ff7b6038e2fc7adbdfde05d15c;hb=4595d6b97aff8e6d9dcce902bc2f1119d4ab2f0e;hpb=4bcffe8896c08c9f60b2707da71bb39a64618d93 diff --git a/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java b/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java index e96d610..0df9779 100755 --- a/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java +++ b/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java @@ -1,64 +1,63 @@ /* - * Imagesqueeze - Image codec optimized for photos. - * Copyright (C) 2012, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * + * Imagesqueeze - Image codec. Copyright ©2012-2019, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public License - * as published by the Free Software Foundation. + * modify it under the terms of version 3 of the GNU Lesser General Public License + * or later as published by the Free Software Foundation. */ package eu.svjatoslav.imagesqueeze.codec; -public class OperatingContext { - - Image image; - byte[] yMap; - byte[] uMap; - byte[] vMap; - ColorStats colorStats = new ColorStats(); - - public OperatingContext() { - } - - public int getURange(final int index) { - final int colorness = ImageEncoder.byteToInt(uMap[index]); - return Math.abs(colorness - colorStats.getAverageU()); - } - - public int getVRange(final int index) { - final int color = ImageEncoder.byteToInt(vMap[index]); - return Math.abs(color - colorStats.getAverageV()); - } - - public int getYRange(final int index) { - final int brightness = ImageEncoder.byteToInt(yMap[index]); - return Math.abs(brightness - colorStats.getAverageY()); - } - - public void initialize(final Image image, final byte[] brightnessMap, - final byte[] colornessMap, final byte[] colorMap) { - this.image = image; - yMap = brightnessMap; - uMap = colornessMap; - vMap = colorMap; - - colorStats.reset(); - } - - public void measureNeighborEncode(final int x, final int y) { - if ((y >= 0) && (y < image.metaData.height) && (x >= 0) - && (x < image.metaData.width)) { - - final int neighborIndex = (y * image.metaData.width) + x; - - colorStats.ySum = colorStats.ySum - + ImageEncoder.byteToInt(yMap[neighborIndex]); - colorStats.uSum = colorStats.uSum - + ImageEncoder.byteToInt(uMap[neighborIndex]); - colorStats.vSum = colorStats.vSum - + ImageEncoder.byteToInt(vMap[neighborIndex]); - colorStats.pixelCount++; - } - } +class OperatingContext { + + final ColorStats colorStats = new ColorStats(); + private Image image; + private byte[] yMap; + private byte[] uMap; + private byte[] vMap; + + public OperatingContext() { + } + + public int getURange(final int index) { + final int colorness = ImageEncoder.byteToInt(uMap[index]); + return Math.abs(colorness - colorStats.getAverageU()); + } + + public int getVRange(final int index) { + final int color = ImageEncoder.byteToInt(vMap[index]); + return Math.abs(color - colorStats.getAverageV()); + } + + public int getYRange(final int index) { + final int brightness = ImageEncoder.byteToInt(yMap[index]); + return Math.abs(brightness - colorStats.getAverageY()); + } + + public void initialize(final Image image, final byte[] brightnessMap, + final byte[] colornessMap, final byte[] colorMap) { + this.image = image; + yMap = brightnessMap; + uMap = colornessMap; + vMap = colorMap; + + colorStats.reset(); + } + + public void measureNeighborEncode(final int x, final int y) { + if ((y >= 0) && (y < image.metaData.height) && (x >= 0) + && (x < image.metaData.width)) { + + final int neighborIndex = (y * image.metaData.width) + x; + + colorStats.ySum = colorStats.ySum + + ImageEncoder.byteToInt(yMap[neighborIndex]); + colorStats.uSum = colorStats.uSum + + ImageEncoder.byteToInt(uMap[neighborIndex]); + colorStats.vSum = colorStats.vSum + + ImageEncoder.byteToInt(vMap[neighborIndex]); + colorStats.pixelCount++; + } + } }