Use sqrt of noise ratio for gop partitioning.

Change-Id: I79209449327cba9434e8d5a3e5f5059762a2ed86
diff --git a/av1/encoder/pass2_strategy.c b/av1/encoder/pass2_strategy.c
index 0a80915..39cd36b 100644
--- a/av1/encoder/pass2_strategy.c
+++ b/av1/encoder/pass2_strategy.c
@@ -2043,8 +2043,9 @@
                 temp_accu_coeff *= stats[n].cor_coeff;
                 this_score +=
                     temp_accu_coeff *
-                    (1 - stats[n].noise_var /
-                             AOMMAX(regions[this_reg].avg_intra_err, 0.001));
+                    sqrt(AOMMAX(0.5,
+                                1 - stats[n].noise_var /
+                                        AOMMAX(stats[n].intra_error, 0.001)));
                 count_f++;
               }
               // preceding frames
@@ -2054,8 +2055,9 @@
                 temp_accu_coeff *= stats[n].cor_coeff;
                 this_score +=
                     temp_accu_coeff *
-                    (1 - stats[n].noise_var /
-                             AOMMAX(regions[this_reg].avg_intra_err, 0.001));
+                    sqrt(AOMMAX(0.5,
+                                1 - stats[n].noise_var /
+                                        AOMMAX(stats[n].intra_error, 0.001)));
               }
 
               if (this_score > best_score) {
diff --git a/av1/qmode_rc/ratectrl_qmode.cc b/av1/qmode_rc/ratectrl_qmode.cc
index 0a2892d..9dfdebc 100644
--- a/av1/qmode_rc/ratectrl_qmode.cc
+++ b/av1/qmode_rc/ratectrl_qmode.cc
@@ -630,8 +630,10 @@
           temp_accu_coeff *= stats_list[order_index + n].cor_coeff;
           this_score +=
               temp_accu_coeff *
-              (1 - stats_list[order_index + n].noise_var /
-                       AOMMAX(regions_list[this_reg].avg_intra_err, 0.001));
+              sqrt(AOMMAX(
+                  0.5, 1 - stats_list[order_index + n].noise_var /
+                               AOMMAX(stats_list[order_index + n].intra_error,
+                                      0.001)));
           count_f++;
         }
         // preceding frames
@@ -641,8 +643,10 @@
           temp_accu_coeff *= stats_list[order_index + n].cor_coeff;
           this_score +=
               temp_accu_coeff *
-              (1 - stats_list[order_index + n].noise_var /
-                       AOMMAX(regions_list[this_reg].avg_intra_err, 0.001));
+              sqrt(AOMMAX(
+                  0.5, 1 - stats_list[order_index + n].noise_var /
+                               AOMMAX(stats_list[order_index + n].intra_error,
+                                      0.001)));
         }
 
         if (this_score > best_score) {
diff --git a/test/ratectrl_qmode_test.cc b/test/ratectrl_qmode_test.cc
index bcbab4b..3c947b0 100644
--- a/test/ratectrl_qmode_test.cc
+++ b/test/ratectrl_qmode_test.cc
@@ -1017,7 +1017,7 @@
                  std::back_inserter(gop_interval_list),
                  [](GopStruct const &x) { return x.show_frame_count; });
   EXPECT_THAT(gop_interval_list,
-              ElementsAre(21, 9, 30, 30, 17, 13, 21, 9, 30, 12, 16, 2, 30, 10));
+              ElementsAre(21, 9, 30, 30, 17, 13, 7, 23, 30, 12, 16, 2, 30, 10));
 }
 
 // TODO(b/242892473): Add a test which passes lookahead GOPs.