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