diff --git a/payload_generator/cow_size_estimator.cc b/payload_generator/cow_size_estimator.cc
index 3eb0aca..f3f5264 100644
--- a/payload_generator/cow_size_estimator.cc
+++ b/payload_generator/cow_size_estimator.cc
@@ -16,12 +16,13 @@
 
 #include "update_engine/payload_generator/cow_size_estimator.h"
 
+#include <string>
 #include <utility>
 #include <vector>
 
+#include <android-base/unique_fd.h>
 #include <libsnapshot/cow_writer.h>
 
-#include "android-base/unique_fd.h"
 #include "update_engine/common/cow_operation_convert.h"
 #include "update_engine/payload_consumer/vabc_partition_writer.h"
 #include "update_engine/update_metadata.pb.h"
@@ -64,9 +65,11 @@
     const google::protobuf::RepeatedPtrField<InstallOperation>& operations,
     const google::protobuf::RepeatedPtrField<CowMergeOperation>&
         merge_operations,
-    size_t block_size) {
+    size_t block_size,
+    std::string compression) {
   android::snapshot::CowWriter cow_writer{
-      {.block_size = static_cast<uint32_t>(block_size), .compression = "gz"}};
+      {.block_size = static_cast<uint32_t>(block_size),
+       .compression = std::move(compression)}};
   // CowWriter treats -1 as special value, will discard all the data but still
   // reports Cow size. Good for estimation purposes
   cow_writer.Initialize(android::base::borrowed_fd{-1});
diff --git a/payload_generator/cow_size_estimator.h b/payload_generator/cow_size_estimator.h
index cba89b5..cad4bad 100644
--- a/payload_generator/cow_size_estimator.h
+++ b/payload_generator/cow_size_estimator.h
@@ -14,10 +14,12 @@
 // limitations under the License.
 //
 #include <cstddef>
+#include <string>
 
 #include <update_engine/update_metadata.pb.h>
 
 #include "update_engine/payload_consumer/file_descriptor.h"
+#include "update_engine/payload_generator/delta_diff_generator.h"
 
 namespace chromeos_update_engine {
 // Given file descriptor to the source image, target image, and list of
@@ -31,6 +33,7 @@
     const google::protobuf::RepeatedPtrField<InstallOperation>& operations,
     const google::protobuf::RepeatedPtrField<CowMergeOperation>&
         merge_operations,
-    size_t block_size);
+    size_t block_size,
+    std::string compression);
 
 }  // namespace chromeos_update_engine
diff --git a/payload_generator/delta_diff_generator.cc b/payload_generator/delta_diff_generator.cc
index 74014d9..a43c782 100644
--- a/payload_generator/delta_diff_generator.cc
+++ b/payload_generator/delta_diff_generator.cc
@@ -132,11 +132,12 @@
       *operations.Add() = aop.op;
     }
     *cow_size_ = EstimateCowSize(
-        source_fd,
+        std::move(source_fd),
         std::move(target_fd),
-        operations,
+        std::move(operations),
         {cow_merge_sequence_->begin(), cow_merge_sequence_->end()},
-        config_.block_size);
+        config_.block_size,
+        config_.target.dynamic_partition_metadata->vabc_compression_param());
     LOG(INFO) << "Estimated COW size for partition: " << new_part_.name << " "
               << *cow_size_;
   }
diff --git a/payload_generator/payload_file.cc b/payload_generator/payload_file.cc
index 4334066..d303cfb 100644
--- a/payload_generator/payload_file.cc
+++ b/payload_generator/payload_file.cc
@@ -74,6 +74,8 @@
 
   if (config.disable_vabc) {
     manifest_.mutable_dynamic_partition_metadata()->set_vabc_enabled(false);
+    manifest_.mutable_dynamic_partition_metadata()->set_vabc_compression_param(
+        "");
   }
   if (config.is_partial_update) {
     manifest_.set_partial_update(true);
diff --git a/payload_generator/payload_generation_config.cc b/payload_generator/payload_generation_config.cc
index f5a7062..73c9ab3 100644
--- a/payload_generator/payload_generation_config.cc
+++ b/payload_generator/payload_generation_config.cc
@@ -180,7 +180,10 @@
   if (store.GetBoolean("virtual_ab_compression", &vabc_enabled)) {
     metadata->set_vabc_enabled(vabc_enabled);
   }
-
+  // We use "gz" compression by default for VABC.
+  if (metadata->vabc_enabled()) {
+    metadata->set_vabc_compression_param("gz");
+  }
   dynamic_partition_metadata = std::move(metadata);
   return true;
 }
