From 3feda096bfea1cc43b7b496e29388e3db02c9976 Mon Sep 17 00:00:00 2001
From: Vojtech Moravec <vojtech.moravec.st@vsb.cz>
Date: Fri, 16 Oct 2020 09:12:49 +0200
Subject: [PATCH] Load only middle plane data for middle plane codebook
 training.

---
 .../java/cz/it4i/qcmp/compression/VQImageCompressor.java   | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/main/java/cz/it4i/qcmp/compression/VQImageCompressor.java b/src/main/java/cz/it4i/qcmp/compression/VQImageCompressor.java
index 05bb5fe..5d04d7b 100644
--- a/src/main/java/cz/it4i/qcmp/compression/VQImageCompressor.java
+++ b/src/main/java/cz/it4i/qcmp/compression/VQImageCompressor.java
@@ -306,7 +306,7 @@ public class VQImageCompressor extends CompressorDecompressorBase implements IIm
             }
 
             final int[] indices = quantizeVectorsImpl(quantizer, voxelData, options.getWorkerCount());
-            
+
             voxelLayersSizes[voxelLayerIndex] = writeHuffmanEncodedIndices(compressStream, huffman, indices);
             stopwatch.stop();
             if (options.isConsoleApplication()) {
@@ -395,7 +395,10 @@ public class VQImageCompressor extends CompressorDecompressorBase implements IIm
 
     int[][] loadDataForCodebookTraining(final IPlaneLoader planeLoader) throws ImageCompressionException {
         final int[][] trainingData;
-        if (options.getInputDataInfo().isPlaneIndexSet()) {
+        if (options.getCodebookType() == CompressionOptions.CodebookType.MiddlePlane) {
+            final int middlePlaneIndex = (options.getInputDataInfo().getDimensions().getZ() / 2);
+            trainingData = planeLoader.loadVectorsFromPlaneRange(options, new Range<>(middlePlaneIndex, middlePlaneIndex + 1));
+        } else if (options.getInputDataInfo().isPlaneIndexSet()) {
             reportStatusToListeners("VQ: Loading single plane data.");
             final int planeIndex = options.getInputDataInfo().getPlaneIndex();
             trainingData = planeLoader.loadVectorsFromPlaneRange(options, new Range<>(planeIndex, planeIndex + 1));
-- 
GitLab