Skip to content
Snippets Groups Projects
Commit 70dfdc32 authored by Vojtech Moravec's avatar Vojtech Moravec
Browse files

Report compression ratio in verbose mode.

parent ffb9ebfb
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,9 @@ package azgracompress.compression; ...@@ -3,7 +3,9 @@ package azgracompress.compression;
import azgracompress.cli.ParsedCliOptions; import azgracompress.cli.ParsedCliOptions;
import azgracompress.fileformat.QCMPFileHeader; import azgracompress.fileformat.QCMPFileHeader;
import java.io.*; import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
public class ImageCompressor extends CompressorDecompressorBase { public class ImageCompressor extends CompressorDecompressorBase {
...@@ -35,6 +37,11 @@ public class ImageCompressor extends CompressorDecompressorBase { ...@@ -35,6 +37,11 @@ public class ImageCompressor extends CompressorDecompressorBase {
} }
} }
private void reportCompressionRatio(final QCMPFileHeader header, final int written) {
final long originalDataSize = 2 * header.getImageSizeX() * header.getImageSizeY() * header.getImageSizeZ();
final double compressionRatio = (double) written / (double) originalDataSize;
System.out.println(String.format("Compression ratio: %.5f", compressionRatio));
}
public boolean compress() { public boolean compress() {
IImageCompressor imageCompressor = getImageCompressor(); IImageCompressor imageCompressor = getImageCompressor();
...@@ -51,6 +58,10 @@ public class ImageCompressor extends CompressorDecompressorBase { ...@@ -51,6 +58,10 @@ public class ImageCompressor extends CompressorDecompressorBase {
imageCompressor.compress(compressStream); imageCompressor.compress(compressStream);
if (options.isVerbose()) {
reportCompressionRatio(header, compressStream.size());
}
} catch (Exception ex) { } catch (Exception ex) {
System.err.println(ex.getMessage()); System.err.println(ex.getMessage());
return false; return false;
......
...@@ -67,25 +67,11 @@ public class OutBitStream implements AutoCloseable { ...@@ -67,25 +67,11 @@ public class OutBitStream implements AutoCloseable {
bitBuffer |= (1 << (8 - bitBufferSize)); bitBuffer |= (1 << (8 - bitBufferSize));
} }
// if (bit > 0) {
// bitBuffer |= (1 << bitBufferSize);
// }
// ++bitBufferSize;
if (bitBufferSize == 8) { if (bitBufferSize == 8) {
flushBitBuffer(); flushBitBuffer();
} }
} }
// public void write(final byte value) {
//
// }
//
// public void write(final short value) {
//
// }
public void write(final int value) throws IOException { public void write(final int value) throws IOException {
int bit; int bit;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment