Add the q_segmentation experiment

This experiment implements low-cost delta q signalling on a per-block basis
for all non-inter frame types, which would allow for more efficient AQ
which bases its decisions on temporal information.

Based on an Intel proposal from March.

Change-Id: I18e73d8b12f4caa0b165df12c58ab506271bec03
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index 34e7189..705d265 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -1746,6 +1746,21 @@
   AOM_CDF8(4096, 8192, 12288, 16384, 20480, 24576, 28672)
 };
 
+#if CONFIG_Q_SEGMENTATION
+static const aom_cdf_prob
+    default_q_seg_tree_cdf[Q_SEGMENT_CDF_COUNT][CDF_SIZE(MAX_SEGMENTS)] = {
+      {
+          AOM_CDF8(5622, 7893, 16093, 18233, 27809, 28373, 32533),
+      },
+      {
+          AOM_CDF8(14274, 18230, 22557, 24935, 29980, 30851, 32344),
+      },
+      {
+          AOM_CDF8(27527, 28487, 28723, 28890, 32397, 32647, 32679),
+      },
+    };
+#endif
+
 static const aom_cdf_prob
     default_tx_size_cdf[MAX_TX_DEPTH][TX_SIZE_CONTEXTS][CDF_SIZE(MAX_TX_DEPTH +
                                                                  1)] = {
@@ -3521,6 +3536,10 @@
   av1_copy(fc->skip_probs, default_skip_probs);
 #endif  // CONFIG_NEW_MULTISYMBOL
   av1_copy(fc->seg.tree_cdf, default_seg_tree_cdf);
+#if CONFIG_Q_SEGMENTATION
+  for (int i = 0; i < Q_SEGMENT_CDF_COUNT; i++)
+    av1_copy(fc->seg.q_seg_cdf[i], default_q_seg_tree_cdf[i]);
+#endif
   av1_copy(fc->tx_size_cdf, default_tx_size_cdf);
   av1_copy(fc->delta_q_prob, default_delta_q_probs);
   av1_copy(fc->delta_q_cdf, default_delta_q_cdf);