mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2025-08-04 03:55:28 -04:00
WebP cleanup
This commit is contained in:
parent
606fd53823
commit
ac7612b3df
@ -62,7 +62,6 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import static com.twelvemonkeys.imageio.plugins.webp.lossless.VP8LDecoder.copyIntoRasterWithParams;
|
||||
|
||||
import static java.lang.Math.max;
|
||||
import static java.lang.Math.min;
|
||||
|
||||
@ -134,8 +133,8 @@ final class WebPImageReader extends ImageReaderBase {
|
||||
|
||||
if (DEBUG) {
|
||||
System.out.printf("chunk: '%s'\n", fourCC(nextChunk));
|
||||
System.out.println("chunkLength: " + chunkLength);
|
||||
System.out.println("chunkStart: " + chunkStart);
|
||||
System.out.println("chunkLength: " + chunkLength);
|
||||
}
|
||||
|
||||
switch (nextChunk) {
|
||||
@ -473,8 +472,8 @@ final class WebPImageReader extends ImageReaderBase {
|
||||
|
||||
if (DEBUG) {
|
||||
System.out.printf("chunk: '%s'\n", fourCC(nextChunk));
|
||||
System.out.println("chunkLength: " + chunkLength);
|
||||
System.out.println("chunkStart: " + chunkStart);
|
||||
System.out.println("chunkLength: " + chunkLength);
|
||||
}
|
||||
|
||||
switch (nextChunk) {
|
||||
@ -684,8 +683,8 @@ final class WebPImageReader extends ImageReaderBase {
|
||||
long chunkStart = imageInput.getStreamPosition();
|
||||
|
||||
// System.err.printf("chunk: '%s'\n", fourCC(nextChunk));
|
||||
// System.err.println("chunkLength: " + chunkLength);
|
||||
// System.err.println("chunkStart: " + chunkStart);
|
||||
// System.err.println("chunkLength: " + chunkLength);
|
||||
|
||||
switch (nextChunk) {
|
||||
case WebP.CHUNK_EXIF:
|
||||
|
@ -67,6 +67,11 @@ final class ColorIndexingTransform implements Transform {
|
||||
|
||||
// Arraycopy for 4 elements might not be beneficial
|
||||
System.arraycopy(colorTable, index * 4, rgba, 0, 4);
|
||||
// rgba[0] = colorTable[index * 4];
|
||||
// rgba[1] = colorTable[index * 4 + 1];
|
||||
// rgba[2] = colorTable[index * 4 + 2];
|
||||
// rgba[3] = colorTable[index * 4 + 3];
|
||||
|
||||
raster.setDataElements(x, y, rgba);
|
||||
}
|
||||
}
|
||||
|
@ -35,11 +35,11 @@ import javax.imageio.stream.ImageInputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
final class BoolDecoder {
|
||||
private int bit_count; /* # of bits shifted out of value, at most 7 */
|
||||
private int bitCount; // # of bits shifted out of value, at most 7
|
||||
ImageInputStream data;
|
||||
private long offset; /* pointer to next compressed data byte */
|
||||
private int range; /* always identical to encoder's range */
|
||||
private int value; /* contains at least 24 significant bits */
|
||||
private long offset; // pointer to next compressed data byte
|
||||
private int range; // always identical to encoder's range
|
||||
private int value; // contains at least 24 significant bits
|
||||
|
||||
BoolDecoder(ImageInputStream frame, long offset) throws IOException {
|
||||
this.data = frame;
|
||||
@ -48,15 +48,15 @@ final class BoolDecoder {
|
||||
}
|
||||
|
||||
private void initBoolDecoder() throws IOException {
|
||||
value = 0; /* value = first 16 input bits */
|
||||
value = 0; // value = first 16 input bits
|
||||
|
||||
data.seek(offset);
|
||||
value = data.readUnsignedByte() << 8;
|
||||
// value = (data[offset]) << 8;
|
||||
offset++;
|
||||
|
||||
range = 255; /* initial range is full */
|
||||
bit_count = 0; /* have not yet shifted out any bits */
|
||||
range = 255; // initial range is full
|
||||
bitCount = 0; // have not yet shifted out any bits
|
||||
}
|
||||
|
||||
public int readBit() throws IOException {
|
||||
@ -66,21 +66,21 @@ final class BoolDecoder {
|
||||
public int readBool(int probability) throws IOException {
|
||||
int bit = 0;
|
||||
int split;
|
||||
int bigsplit;
|
||||
int bigSplit;
|
||||
int range = this.range;
|
||||
int value = this.value;
|
||||
split = 1 + (((range - 1) * probability) >> 8);
|
||||
bigsplit = (split << 8);
|
||||
bigSplit = (split << 8);
|
||||
range = split;
|
||||
|
||||
if (value >= bigsplit) {
|
||||
if (value >= bigSplit) {
|
||||
range = this.range - split;
|
||||
value = value - bigsplit;
|
||||
value = value - bigSplit;
|
||||
bit = 1;
|
||||
}
|
||||
|
||||
{
|
||||
int count = this.bit_count;
|
||||
int count = this.bitCount;
|
||||
int shift = Globals.vp8dxBitreaderNorm[range];
|
||||
range <<= shift;
|
||||
value <<= shift;
|
||||
@ -94,44 +94,35 @@ final class BoolDecoder {
|
||||
count += 8;
|
||||
}
|
||||
|
||||
this.bit_count = count;
|
||||
this.bitCount = count;
|
||||
}
|
||||
this.value = value;
|
||||
this.range = range;
|
||||
|
||||
return bit;
|
||||
}
|
||||
|
||||
/*
|
||||
* Convenience function reads a "literal", that is, a "num_bits" wide
|
||||
/**
|
||||
* Convenience method reads a "literal", that is, a "numBits" wide
|
||||
* unsigned value whose bits come high- to low-order, with each bit encoded
|
||||
* at probability 128 (i.e., 1/2).
|
||||
*/
|
||||
public int readLiteral(int num_bits) throws IOException {
|
||||
public int readLiteral(int numBits) throws IOException {
|
||||
int v = 0;
|
||||
while (num_bits-- > 0) {
|
||||
while (numBits-- > 0) {
|
||||
v = (v << 1) + readBool(128);
|
||||
}
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
// int readTree(int t[], /* tree specification */ int p[] /* corresponding interior node probabilities */) throws IOException {
|
||||
// int i = 0; /* begin at root */
|
||||
//
|
||||
// /* Descend tree until leaf is reached */
|
||||
// while ((i = t[i + readBool(p[i >> 1])]) > 0) {
|
||||
// }
|
||||
// return -i; /* return value is negation of nonpositive index */
|
||||
//
|
||||
// }
|
||||
//
|
||||
// int readTree(int t[], /* tree specification */ int p[], /* corresponding interior node probabilities */ int skip_branches) throws IOException {
|
||||
int readTree(int[] t, /* tree specification */ int[] p, /* corresponding interior node probabilities */ int skip_branches) throws IOException {
|
||||
int i = skip_branches * 2; /* begin at root */
|
||||
int readTree(int[] t, /* tree specification */ int[] p, /* corresponding interior node probabilities */ int skipBranches) throws IOException {
|
||||
int i = skipBranches * 2; // begin at root
|
||||
|
||||
/* Descend tree until leaf is reached */
|
||||
// Descend tree until leaf is reached
|
||||
while ((i = t[i + readBool(p[i >> 1])]) > 0) {
|
||||
}
|
||||
return -i; /* return value is negation of nonpositive index */
|
||||
return -i; // return value is negation of nonpositive index
|
||||
}
|
||||
|
||||
public void seek() throws IOException {
|
||||
|
Loading…
x
Reference in New Issue
Block a user