X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=imagesqueeze.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fimagesqueeze%2Fcodec%2FTable.java;h=4e6e638bfbb5a0f46ec00cae29e88d32ab67d2a2;hp=33637d7de36a4bd92afb313f143c8ad128d8eaa8;hb=a4acb4f31760b0c654f9a041eef9797782d6043a;hpb=84d3759e6f959c1f9f8b29bec5303d57f1c5c098 diff --git a/src/main/java/eu/svjatoslav/imagesqueeze/codec/Table.java b/src/main/java/eu/svjatoslav/imagesqueeze/codec/Table.java index 33637d7..4e6e638 100755 --- a/src/main/java/eu/svjatoslav/imagesqueeze/codec/Table.java +++ b/src/main/java/eu/svjatoslav/imagesqueeze/codec/Table.java @@ -1,7 +1,7 @@ /* * 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. @@ -94,15 +94,13 @@ public class Table implements Comparable { for (int i = 0; i < 256; i++) { - if (range[currentCheckPointer] == i) { + if (range[currentCheckPointer] == i) currentCheckPointer++; - } - if (currentCheckPointer > 0) { + if (currentCheckPointer > 0) bitCountForRange[i] = bitcount[currentCheckPointer - 1]; - } else { + else bitCountForRange[i] = 0; - } } @@ -110,20 +108,16 @@ public class Table implements Comparable
{ int seek; seekLoop: { - for (seek = 0; seek < usedEntries; seek++) { - + for (seek = 0; seek < usedEntries; seek++) if (switchTreshold[seek] >= i) break seekLoop; - - } } proposedRangeForActualRange[i] = range[seek]; - if (seek == 0) { + if (seek == 0) proposedRangeForActualRangeLow[i] = 0; - } else { + else proposedRangeForActualRangeLow[i] = switchTreshold[seek - 1] + 1; - } proposedRangeForActualRangeHigh[i] = switchTreshold[seek]; } @@ -132,11 +126,10 @@ public class Table implements Comparable
{ if (range[currentCheckPointer] == i) currentCheckPointer--; - if (currentCheckPointer < 0) { + if (currentCheckPointer < 0) proposedDecreasedRange[i] = 0; - } else { + else proposedDecreasedRange[i] = (byte) (range[currentCheckPointer]); - } } } @@ -144,12 +137,12 @@ public class Table implements Comparable
{ public void load(final BitInputStream inputStream) throws IOException { reset(); - final int availableEntries = inputStream.readIntegerCompressed8(); + final int availableEntries = ImageDecoder + .readIntegerCompressed8(inputStream); - for (int i = 0; i < availableEntries; i++) { + for (int i = 0; i < availableEntries; i++) addEntry(inputStream.readBits(8), inputStream.readBits(8), inputStream.readBits(4)); - } } public int proposeBitcountForRange(int range) { @@ -177,9 +170,8 @@ public class Table implements Comparable
{ if (inheritedRange < 0) inheritedRange = 0; - if (proposedRangeForActualRangeLow[inheritedRange] <= actualRange) { + if (proposedRangeForActualRangeLow[inheritedRange] <= actualRange) return inheritedRange; - } return proposeDecreasedRange(inheritedRange); } @@ -199,7 +191,7 @@ public class Table implements Comparable
{ } public void save(final BitOutputStream outputStream) throws IOException { - outputStream.storeIntegerCompressed8(usedEntries); + ImageEncoder.storeIntegerCompressed8(outputStream, usedEntries); for (int i = 0; i < usedEntries; i++) { outputStream.storeBits(range[i], 8);