CT4: FG8 activity Test 8 variant 2 implementation - bypass coding for Cb DC sign

Bypass coding for Cb DC sign
diff --git a/av1/decoder/decodetxb.c b/av1/decoder/decodetxb.c
index ee0ac15..17506d2 100644
--- a/av1/decoder/decodetxb.c
+++ b/av1/decoder/decodetxb.c
@@ -1163,8 +1163,16 @@
 #if CONFIG_CONTEXT_DERIVATION
         if (plane == AOM_PLANE_Y || plane == AOM_PLANE_U) {
 #if CONFIG_CTX_BYPASS_DC_SIGN
-          sign = aom_read_literal(
-              r, 1, ACCT_INFO("sign", "dc_sign_cdf", "plane_y_or_u"));
+#if CONFIG_CTX_BYPASS_CB_DC_SIGN
+          if (plane == AOM_PLANE_Y) {
+            sign = aom_read_symbol(
+                r,
+                ec_ctx->dc_sign_cdf[plane_type][is_hidden ? 1 : 0][dc_sign_ctx],
+                2, ACCT_INFO("sign", "dc_sign_cdf", "plane_y_or_u"));
+          } else
+#endif
+            sign = aom_read_literal(
+                r, 1, ACCT_INFO("sign", "dc_sign_cdf", "plane_y_or_u"));
 #else
           sign = aom_read_symbol(
               r,
diff --git a/av1/encoder/encodetxb.c b/av1/encoder/encodetxb.c
index 390cec7b..f71cfae 100644
--- a/av1/encoder/encodetxb.c
+++ b/av1/encoder/encodetxb.c
@@ -1505,7 +1505,15 @@
 #endif
         } else {
 #if CONFIG_CTX_BYPASS_DC_SIGN
-          aom_write_literal(w, sign, 1);
+#if CONFIG_CTX_BYPASS_CB_DC_SIGN
+          if (plane == AOM_PLANE_Y) {
+            aom_write_symbol(
+                w, sign,
+                ec_ctx->dc_sign_cdf[plane_type][is_hidden ? 1 : 0][dc_sign_ctx],
+                2);
+          } else
+#endif
+            aom_write_literal(w, sign, 1);
 #else
           aom_write_symbol(
               w, sign,
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c
index 60c50b6..ef80c4d 100644
--- a/av1/encoder/rd.c
+++ b/av1/encoder/rd.c
@@ -1345,8 +1345,17 @@
       for (int gr = 0; gr < DC_SIGN_GROUPS; ++gr) {
         for (int ctx = 0; ctx < DC_SIGN_CONTEXTS; ++ctx) {
 #if CONFIG_CTX_BYPASS_DC_SIGN
-          pcost->dc_sign_cost[gr][ctx][0] = av1_cost_literal(1);
-          pcost->dc_sign_cost[gr][ctx][1] = av1_cost_literal(1);
+#if CONFIG_CTX_BYPASS_CB_DC_SIGN
+          if (plane == PLANE_TYPE_Y) {
+            av1_cost_tokens_from_cdf(pcost->dc_sign_cost[gr][ctx],
+                                     fc->dc_sign_cdf[plane][gr][ctx], NULL);
+          } else {
+#endif
+            pcost->dc_sign_cost[gr][ctx][0] = av1_cost_literal(1);
+            pcost->dc_sign_cost[gr][ctx][1] = av1_cost_literal(1);
+#if CONFIG_CTX_BYPASS_CB_DC_SIGN
+          }
+#endif
 #else
           av1_cost_tokens_from_cdf(pcost->dc_sign_cost[gr][ctx],
                                    fc->dc_sign_cdf[plane][gr][ctx], NULL);
diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake
index 787d99c..acd273f 100644
--- a/build/cmake/aom_config_defaults.cmake
+++ b/build/cmake/aom_config_defaults.cmake
@@ -166,6 +166,7 @@
                    "by-pass merge para coding. FG8-Test26")
 set_aom_config_var(CONFIG_CTX_Y_SECOND_MODE 1 "bypass coding FG8-Test27")
 set_aom_config_var(CONFIG_CTX_BYPASS_DC_SIGN 0 "bypass coding FG8-Test8")
+set_aom_config_var(CONFIG_CTX_BYPASS_CB_DC_SIGN 0 "bypass coding FG8-Test8")
 
 # AV2 experiment flags.
 set_aom_config_var(