diff --git a/src/main/java/azgracompress/utilities/MinMaxResult.java b/src/main/java/azgracompress/utilities/MinMaxResult.java new file mode 100644 index 0000000000000000000000000000000000000000..5a37e757d13c921fe9b301b9e9f8189742bd46f4 --- /dev/null +++ b/src/main/java/azgracompress/utilities/MinMaxResult.java @@ -0,0 +1,19 @@ +package azgracompress.utilities; + +public class MinMaxResult<T> { + private final T min; + private final T max; + + MinMaxResult(T min, T max) { + this.min = min; + this.max = max; + } + + public T getMin() { + return min; + } + + public T getMax() { + return max; + } +} \ No newline at end of file diff --git a/src/main/java/azgracompress/utilities/Utils.java b/src/main/java/azgracompress/utilities/Utils.java index af619162e4b6903bc1136377492bd21b5993509a..a249eea5893dd0609e88cb4d0395b92677567c69 100644 --- a/src/main/java/azgracompress/utilities/Utils.java +++ b/src/main/java/azgracompress/utilities/Utils.java @@ -5,6 +5,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; + public class Utils { public static double calculatePsnr(final double mse, final int signalMax) { @@ -83,6 +84,22 @@ public class Utils { } + public static MinMaxResult<Integer> getMinAndMax(final int[] data) { + int min = Integer.MAX_VALUE; + int max = Integer.MIN_VALUE; + + for (int i = 0; i < data.length; i++) { + if (data[i] < min) { + min = data[i]; + } + if (data[i] > max) { + max = data[i]; + } + } + return new MinMaxResult<Integer>(min, max); + } + + public static double calculateMse(final int[] difference) { double sum = 0.0; for (final int val : difference) {