From 2d25c746e20e50d9a20e31ccc4d2daf7698de6f8 Mon Sep 17 00:00:00 2001
From: Vojtech Moravec <vojtech.moravec.st@vsb.cz>
Date: Fri, 16 Oct 2020 13:57:34 +0200
Subject: [PATCH] Add option to not duplicate source vectors.

This change save A LOT OF memory.
---
 .../cz/it4i/qcmp/quantization/vector/LBGVectorQuantizer.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/main/java/cz/it4i/qcmp/quantization/vector/LBGVectorQuantizer.java b/src/main/java/cz/it4i/qcmp/quantization/vector/LBGVectorQuantizer.java
index 0245ca6..86d93dc 100644
--- a/src/main/java/cz/it4i/qcmp/quantization/vector/LBGVectorQuantizer.java
+++ b/src/main/java/cz/it4i/qcmp/quantization/vector/LBGVectorQuantizer.java
@@ -35,7 +35,8 @@ public class LBGVectorQuantizer {
     public LBGVectorQuantizer(final int[][] vectors,
                               final int codebookSize,
                               final int workerCount,
-                              final V3i vectorDimensions) {
+                              final V3i vectorDimensions,
+                              final boolean createCopyOfSrcVectors) {
         assert (vectors.length > 0) : "No training vectors provided";
 
         this.vectorDimensions = vectorDimensions;
@@ -44,7 +45,7 @@ public class LBGVectorQuantizer {
 
         this.trainingVectors = new TrainingVector[vectors.length];
         for (int i = 0; i < vectors.length; i++) {
-            trainingVectors[i] = new TrainingVector(Arrays.copyOf(vectors[i], vectorSize));
+            trainingVectors[i] = new TrainingVector(createCopyOfSrcVectors ? Arrays.copyOf(vectors[i], vectorSize) : vectors[i]);
         }
 
         this.codebookSize = codebookSize;
-- 
GitLab