diff --git a/src/main/java/azgracompress/cli/CliConstants.java b/src/main/java/azgracompress/cli/CliConstants.java
index 29222fded52aaf8cf54c08e0582c22dc0edc6980..62ea677bd33fcca64b08c34892cbe3eb3ab32d19 100644
--- a/src/main/java/azgracompress/cli/CliConstants.java
+++ b/src/main/java/azgracompress/cli/CliConstants.java
@@ -34,8 +34,8 @@ public class CliConstants {
public static final String WORKER_COUNT_SHORT = "wc";
public static final String WORKER_COUNT_LONG = "worker-count";
- public static final String CODEBOOK_CACHE_FOLDER_SHORT = "wc";
- public static final String CODEBOOK_CACHE_FOLDER_LONG = "worker-count";
+ public static final String CODEBOOK_CACHE_FOLDER_SHORT = "cbc";
+ public static final String CODEBOOK_CACHE_FOLDER_LONG = "codebook-cache";
public static final String SCALAR_QUANTIZATION_SHORT = "sq";
public static final String SCALAR_QUANTIZATION_LONG = "scalar-quantization";
diff --git a/src/main/java/azgracompress/compression/ImageCompressor.java b/src/main/java/azgracompress/compression/ImageCompressor.java
index 20cb982594b32b98606cd17a66e439d28809225e..6f0b45b30f8a4f5c6f5edb34bc09efea9a575576 100644
--- a/src/main/java/azgracompress/compression/ImageCompressor.java
+++ b/src/main/java/azgracompress/compression/ImageCompressor.java
@@ -98,9 +98,13 @@ public class ImageCompressor extends CompressorDecompressorBase {
private QCMPFileHeader createHeader() {
QCMPFileHeader header = new QCMPFileHeader();
+
header.setQuantizationType(options.getQuantizationType());
header.setBitsPerPixel((byte) options.getBitsPerPixel());
- header.setCodebookPerPlane(!options.hasReferencePlaneIndex());
+
+ // Codebook per plane is used only if reference plane isn't set nor is the cache folder.
+ final boolean oneCodebook = options.hasReferencePlaneIndex() || options.hasCodebookCacheFolder();
+ header.setCodebookPerPlane(!oneCodebook);
header.setImageSizeX(options.getImageDimension().getX());
header.setImageSizeY(options.getImageDimension().getY());
diff --git a/src/main/java/azgracompress/compression/SQImageCompressor.java b/src/main/java/azgracompress/compression/SQImageCompressor.java
index f49727da939e0a5b1b8870232d9ae80db0126953..5f8f8392dedb6e467503691ad3947789f26051ee 100644
--- a/src/main/java/azgracompress/compression/SQImageCompressor.java
+++ b/src/main/java/azgracompress/compression/SQImageCompressor.java
@@ -85,6 +85,7 @@ public class SQImageCompressor extends CompressorDecompressorBase implements IIm
Log("Loading codebook from cache file.");
quantizer = loadQuantizerFromCache();
Log("Cached quantizer created.");
+ writeCodebookToOutputStream(quantizer, compressStream);
} else if (options.hasReferencePlaneIndex()) {
// TODO(Moravec): Reference plane will be deprecated in favor of 'middle' plane.
stopwatch.restart();
diff --git a/src/main/java/azgracompress/compression/VQImageCompressor.java b/src/main/java/azgracompress/compression/VQImageCompressor.java
index 52fd5af86b17db93203697621670a7ccdd6d5315..fe3d027130aafc6d51284e3302220e90a0c7036f 100644
--- a/src/main/java/azgracompress/compression/VQImageCompressor.java
+++ b/src/main/java/azgracompress/compression/VQImageCompressor.java
@@ -94,6 +94,7 @@ public class VQImageCompressor extends CompressorDecompressorBase implements IIm
Log("Loading codebook from cache file.");
quantizer = loadQuantizerFromCache();
Log("Cached quantizer created.");
+ writeQuantizerToCompressStream(quantizer, compressStream);
} else if (options.hasReferencePlaneIndex()) {
stopwatch.restart();