X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=imagesqueeze.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fimagesqueeze%2Fcodec%2FApproximator.java;h=355cb76962db2d13b9411132ef92bf87c2ffb46a;hp=0f3857b900f7e7e654aa727fa5f9ce9be71ae417;hb=7b3e2cbabc6df4010fb50b129933ad91ada21e62;hpb=be13f5e7ec2b5e610db95ab2950a35a4e64c9a71 diff --git a/src/main/java/eu/svjatoslav/imagesqueeze/codec/Approximator.java b/src/main/java/eu/svjatoslav/imagesqueeze/codec/Approximator.java index 0f3857b..355cb76 100755 --- a/src/main/java/eu/svjatoslav/imagesqueeze/codec/Approximator.java +++ b/src/main/java/eu/svjatoslav/imagesqueeze/codec/Approximator.java @@ -9,77 +9,62 @@ package eu.svjatoslav.imagesqueeze.codec; -import java.io.IOException; - import eu.svjatoslav.commons.data.BitInputStream; import eu.svjatoslav.commons.data.BitOutputStream; +import java.io.IOException; + /** * 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 { - - public Table yTable = new Table(); - public Table uTable = new Table(); - public Table vTable = new Table(); - - public Approximator() { - } - - @Override - public int compareTo(final Approximator o) { - int result = yTable.compareTo(o.yTable); - if (result != 0) { - return result; - } - - result = uTable.compareTo(o.uTable); - if (result != 0) { - return result; - } - - result = vTable.compareTo(o.vTable); - return result; - } - - 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); - - vTable.addEntry(0, 9, 0); - vTable.addEntry(27, 30, 4); - vTable.addEntry(255, 255, 6); - - computeLookupTables(); - } - - public void load(final BitInputStream inputStream) throws IOException { - yTable.load(inputStream); - uTable.load(inputStream); - vTable.load(inputStream); - } - - public void save(final BitOutputStream outputStream) throws IOException { - yTable.save(outputStream); - uTable.save(outputStream); - vTable.save(outputStream); - } +class Approximator { + + public final Table yTable = new Table(); + public final Table uTable = new Table(); + public final Table vTable = new Table(); + + public Approximator() { + } + + + 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); + + vTable.addEntry(0, 9, 0); + vTable.addEntry(27, 30, 4); + vTable.addEntry(255, 255, 6); + + computeLookupTables(); + } + + public void load(final BitInputStream inputStream) throws IOException { + yTable.load(inputStream); + uTable.load(inputStream); + vTable.load(inputStream); + } + + public void save(final BitOutputStream outputStream) throws IOException { + yTable.save(outputStream); + uTable.save(outputStream); + vTable.save(outputStream); + } }