X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=imagesqueeze.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fimagesqueeze%2Fcodec%2FApproximator.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fimagesqueeze%2Fcodec%2FApproximator.java;h=a4f78af536609df43c6df329ad856e1b0441cbfe;hp=622ae80dc6ec32ea5b7bc6a909f4c1904432b4b4;hb=4bcffe8896c08c9f60b2707da71bb39a64618d93;hpb=c7d0b8e1723045c0df086d9214a35f54db47684c diff --git a/src/main/java/eu/svjatoslav/imagesqueeze/codec/Approximator.java b/src/main/java/eu/svjatoslav/imagesqueeze/codec/Approximator.java index 622ae80..a4f78af 100755 --- a/src/main/java/eu/svjatoslav/imagesqueeze/codec/Approximator.java +++ b/src/main/java/eu/svjatoslav/imagesqueeze/codec/Approximator.java @@ -1,11 +1,22 @@ +/* + * Imagesqueeze - Image codec optimized for photos. + * Copyright (C) 2012, 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. + */ + package eu.svjatoslav.imagesqueeze.codec; import java.io.IOException; +import eu.svjatoslav.commons.data.BitInputStream; +import eu.svjatoslav.commons.data.BitOutputStream; + /** - * Since it is a lossy codec, instead of storing - * exact values, approximated values are stored - * to save on bit count. + * Since it is a lossy codec, instead of storing exact values, approximated + * values are stored to save on bit count. */ public class Approximator implements Comparable { @@ -14,29 +25,38 @@ public class Approximator implements Comparable { public Table uTable = new Table(); public Table vTable = new Table(); - public Approximator(){ + public Approximator() { } - public int compareTo(Approximator o) { + @Override + public int compareTo(final Approximator o) { int result = yTable.compareTo(o.yTable); - if (result != 0) return result; + if (result != 0) + return result; result = uTable.compareTo(o.uTable); - if (result != 0) return result; + if (result != 0) + return result; result = vTable.compareTo(o.vTable); return result; } - - public void initialize(){ + + public void computeLookupTables() { + yTable.computeLookupTables(); + uTable.computeLookupTables(); + vTable.computeLookupTables(); + } + + public void initialize() { yTable.reset(); uTable.reset(); vTable.reset(); - + yTable.addEntry(0, 6, 0); yTable.addEntry(27, 30, 4); yTable.addEntry(255, 255, 6); - + uTable.addEntry(0, 9, 0); uTable.addEntry(27, 30, 4); uTable.addEntry(255, 255, 6); @@ -44,26 +64,20 @@ public class Approximator implements Comparable { vTable.addEntry(0, 9, 0); vTable.addEntry(27, 30, 4); vTable.addEntry(255, 255, 6); - + computeLookupTables(); } - - public void save(BitOutputStream outputStream) throws IOException{ - yTable.save(outputStream); - uTable.save(outputStream); - vTable.save(outputStream); - } - - public void load(BitInputStream inputStream) throws IOException { + + public void load(final BitInputStream inputStream) throws IOException { yTable.load(inputStream); uTable.load(inputStream); - vTable.load(inputStream); + vTable.load(inputStream); } - public void computeLookupTables(){ - yTable.computeLookupTables(); - uTable.computeLookupTables(); - vTable.computeLookupTables(); + public void save(final BitOutputStream outputStream) throws IOException { + yTable.save(outputStream); + uTable.save(outputStream); + vTable.save(outputStream); } - + }