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=b79e1e63c7cc0ee4b9af48c7d0198e0c6e221879;hp=bac16305552d9c7db9892bad24732a81dc3882a8;hb=HEAD;hpb=c7d0b8e1723045c0df086d9214a35f54db47684c diff --git a/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java b/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java index bac1630..b79e1e6 100755 --- a/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java +++ b/src/main/java/eu/svjatoslav/imagesqueeze/codec/OperatingContext.java @@ -1,51 +1,59 @@ +/* + * Image codec. Author: Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * This project is released under Creative Commons Zero (CC0) license. + */ package eu.svjatoslav.imagesqueeze.codec; -public class OperatingContext { - - Image image; - byte[] yMap; - byte[] uMap; - byte[] vMap; - ColorStats colorStats = new ColorStats(); - - public OperatingContext(){ - } - - public void initialize(Image image, byte [] brightnessMap, byte [] colornessMap, byte [] colorMap){ - this.image = image; - this.yMap = brightnessMap; - this.uMap = colornessMap; - this.vMap = colorMap; - - colorStats.reset(); - } - - public void measureNeighborEncode(int x, int y){ - if ((y >= 0) && (y < image.metaData.height) && (x >= 0) && (x < image.metaData.width)){ - - 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++; - } - } - - public int getYRange(int index){ - int brightness = ImageEncoder.byteToInt(yMap[index]); - return Math.abs(brightness - colorStats.getAverageY()); - } - - public int getURange(int index){ - int colorness = ImageEncoder.byteToInt(uMap[index]); - return Math.abs(colorness - colorStats.getAverageU()); - } - - public int getVRange(int index){ - int color = ImageEncoder.byteToInt(vMap[index]); - return Math.abs(color - colorStats.getAverageV()); - } - - +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++; + } + } + }