diff --git a/src/main/java/azgracompress/compression/VQImageCompressor.java b/src/main/java/azgracompress/compression/VQImageCompressor.java
index ffb6c22ea763ffcc270cc61e09251e3d2b4c6c78..de00719fdb44827f1c1a77c4ebad57d7762a0698 100644
--- a/src/main/java/azgracompress/compression/VQImageCompressor.java
+++ b/src/main/java/azgracompress/compression/VQImageCompressor.java
@@ -228,7 +228,7 @@ public class VQImageCompressor extends CompressorDecompressorBase implements IIm
         Log("Saving cache file to %s", options.getOutputFile());
         QuantizationValueCache cache = new QuantizationValueCache(options.getOutputFile());
         try {
-            cache.saveQuantizationValues(options.getInputFile(), lbgResult.getCodebook());
+            cache.saveQuantizationValues(options.getInputFile(), lbgResult.getCodebook(), options.getVectorDimension());
         } catch (IOException e) {
             throw new ImageCompressionException("Unable to write cache.", e);
         }
diff --git a/src/main/java/azgracompress/quantization/QuantizationValueCache.java b/src/main/java/azgracompress/quantization/QuantizationValueCache.java
index fca4c95f5659dec7dbc3fe6193dafe516507096c..78797c3ef0674df6cf24da5f66dc7f998c29b75e 100644
--- a/src/main/java/azgracompress/quantization/QuantizationValueCache.java
+++ b/src/main/java/azgracompress/quantization/QuantizationValueCache.java
@@ -1,5 +1,6 @@
 package azgracompress.quantization;
 
+import azgracompress.data.V2i;
 import azgracompress.quantization.vector.CodebookEntry;
 
 import java.io.*;
@@ -50,10 +51,12 @@ public class QuantizationValueCache {
         }
     }
 
-    public void saveQuantizationValues(final String trainFile, final CodebookEntry[] entries) throws IOException {
+    public void saveQuantizationValues(final String trainFile,
+                                       final CodebookEntry[] entries,
+                                       final V2i qVecDims) throws IOException {
         final int codebookSize = entries.length;
-        final int entryWidth = entries[0].getWidth();
-        final int entryHeight = entries[0].getHeight();
+        final int entryWidth = qVecDims.getX();
+        final int entryHeight = qVecDims.getY();
         final String cacheFile = getCacheFileForVectorValues(trainFile,
                                                              codebookSize,
                                                              entryWidth,