From 3804d8d7831545e1461313acfbf3623bdf6f12f0 Mon Sep 17 00:00:00 2001 From: Vojtech Moravec <vojtech.moravec.st@vsb.cz> Date: Sat, 28 Mar 2020 16:48:04 +0100 Subject: [PATCH] Report MSE and PSNR on benchmark. Fix typo. --- .../java/azgracompress/benchmark/SQBenchmark.java | 2 +- .../java/azgracompress/benchmark/VQBenchmark.java | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/azgracompress/benchmark/SQBenchmark.java b/src/main/java/azgracompress/benchmark/SQBenchmark.java index 50b9e0f..a26b41e 100644 --- a/src/main/java/azgracompress/benchmark/SQBenchmark.java +++ b/src/main/java/azgracompress/benchmark/SQBenchmark.java @@ -83,7 +83,7 @@ public class SQBenchmark extends BenchmarkBase { final int[] diffArray = Utils.getDifference(planeData, quantizedData); final double mse = Utils.calculateMse(diffArray); final double PSNR = Utils.calculatePsnr(mse, U16.Max); - System.out.println(String.format("MSE: %.4f\tPNSR: %.4f(dB)", mse, PSNR)); + System.out.println(String.format("MSE: %.4f\tPSNR: %.4f(dB)", mse, PSNR)); } diff --git a/src/main/java/azgracompress/benchmark/VQBenchmark.java b/src/main/java/azgracompress/benchmark/VQBenchmark.java index 1e431eb..565bc98 100644 --- a/src/main/java/azgracompress/benchmark/VQBenchmark.java +++ b/src/main/java/azgracompress/benchmark/VQBenchmark.java @@ -1,5 +1,6 @@ package azgracompress.benchmark; +import azgracompress.U16; import azgracompress.cache.QuantizationCacheManager; import azgracompress.cli.ParsedCliOptions; import azgracompress.data.*; @@ -7,6 +8,7 @@ import azgracompress.quantization.vector.LBGResult; import azgracompress.quantization.vector.LBGVectorQuantizer; import azgracompress.quantization.vector.VQCodebook; import azgracompress.quantization.vector.VectorQuantizer; +import azgracompress.utilities.Utils; import java.io.File; @@ -116,10 +118,16 @@ public class VQBenchmark extends BenchmarkBase { final int[][] quantizedData = quantizer.quantize(planeData, workerCount); - // TODO(Moravec): Add huffman coding. - final ImageU16 quantizedImage = reconstructImageFromQuantizedVectors(plane, quantizedData, qVector); + { + + final int[] diffArray = Utils.getDifference(plane.getData(), quantizedImage.getData()); + final double mse = Utils.calculateMse(diffArray); + final double PSNR = Utils.calculatePsnr(mse, U16.Max); + System.out.println(String.format("MSE: %.4f\tPSNR: %.4f(dB)", mse, PSNR)); + } + if (!saveQuantizedPlaneData(quantizedImage.getData(), quantizedFile)) { System.err.println("Failed to save quantized plane."); return; -- GitLab