Add VAR_TX_NO_TX_MODE experiment.
This experiment removes the tx_mode flag from the uncompressed frame
header and instead always uses a constant value.
objective-1-fast:
master@2017-06-29T00:51:22.142Z -> no_tx_mode@2017-06-29T01:09:32.392Z
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
-0.0103 | 0.0183 | -0.0076 | -0.0103 | -0.0052 | -0.0208 | 0.0004
Change-Id: I9d49c4d99ed102e52c86e339f20623063886f49d
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index bf60ae9..c4bd5d2 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -3913,6 +3913,11 @@
*mode = ONLY_4X4;
return;
}
+#if CONFIG_VAR_TX_NO_TX_MODE
+ (void)wb;
+ *mode = TX_MODE_SELECT;
+ return;
+#else
#if CONFIG_TX64X64
aom_wb_write_bit(wb, *mode == TX_MODE_SELECT);
if (*mode != TX_MODE_SELECT) {
@@ -3923,6 +3928,7 @@
aom_wb_write_bit(wb, *mode == TX_MODE_SELECT);
if (*mode != TX_MODE_SELECT) aom_wb_write_literal(wb, *mode, 2);
#endif // CONFIG_TX64X64
+#endif // CONFIG_VAR_TX_NO_TX_MODE
}
#if !CONFIG_EC_ADAPT
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index 511066d..56b1481 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -4532,6 +4532,9 @@
static TX_MODE select_tx_mode(const AV1_COMP *cpi) {
if (cpi->common.all_lossless) return ONLY_4X4;
+#if CONFIG_VAR_TX_NO_TX_MODE
+ return TX_MODE_SELECT;
+#else
if (cpi->sf.tx_size_search_method == USE_LARGESTALL)
return ALLOW_32X32 + CONFIG_TX64X64;
else if (cpi->sf.tx_size_search_method == USE_FULL_RD ||
@@ -4539,6 +4542,7 @@
return TX_MODE_SELECT;
else
return cpi->common.tx_mode;
+#endif // CONFIG_VAR_TX_NO_TX_MODE
}
void av1_init_tile_data(AV1_COMP *cpi) {