Correct scale factor for TX_16X64 and TX_64X16.

BUG=aomedia:1114

Change-Id: I7fbeb4c2da996801b945304e182403ec325f95bc
diff --git a/av1/encoder/av1_fwd_txfm2d.c b/av1/encoder/av1_fwd_txfm2d.c
index 1bf5a42..3f235d3 100644
--- a/av1/encoder/av1_fwd_txfm2d.c
+++ b/av1/encoder/av1_fwd_txfm2d.c
@@ -84,10 +84,9 @@
   int rect_type2_shift = 0;
   if (rect_type == 2 || rect_type == -2) {
     const int txfm_size_max = AOMMAX(txfm_size_col, txfm_size_row);
-    // For 64x16 / 16x64 shift 3 bits, for 32x8 / 8x32 shift 2 bits, for
-    // 16x4 / 4x16 shift by 1 bit.
-    rect_type2_shift =
-        (txfm_size_max == 64 ? 3 : (txfm_size_max == 32 ? 2 : 1));
+    // For 64x16 / 16x64 / 32x8 / 8x32 shift 2 bits, and
+    // For 16x4 / 4x16 shift by 1 bit.
+    rect_type2_shift = (txfm_size_max >= 32) ? 2 : 1;
   }
   // Take the shift from the larger dimension in the rectangular case.
   const int8_t *shift = (txfm_size_col > txfm_size_row) ? cfg->row_cfg->shift
diff --git a/test/av1_fwd_txfm2d_test.cc b/test/av1_fwd_txfm2d_test.cc
index bc81f99..3f568e9 100644
--- a/test/av1_fwd_txfm2d_test.cc
+++ b/test/av1_fwd_txfm2d_test.cc
@@ -162,7 +162,7 @@
       param_list.push_back(AV1FwdTxfm2dParam(tx_type, TX_32X64, 136, 7));
       param_list.push_back(AV1FwdTxfm2dParam(tx_type, TX_64X32, 136, 7));
       param_list.push_back(AV1FwdTxfm2dParam(tx_type, TX_16X64, 16, 1.6));
-      param_list.push_back(AV1FwdTxfm2dParam(tx_type, TX_64X16, 16, 1.6));
+      param_list.push_back(AV1FwdTxfm2dParam(tx_type, TX_64X16, 20, 2.0));
     }
 #endif  // CONFIG_TX64X64
   }
diff --git a/test/av1_inv_txfm2d_test.cc b/test/av1_inv_txfm2d_test.cc
index 9877fd9..953ec68 100644
--- a/test/av1_inv_txfm2d_test.cc
+++ b/test/av1_inv_txfm2d_test.cc
@@ -167,8 +167,8 @@
       param_list.push_back(AV1InvTxfm2dParam(tx_type, TX_64X64, 3, 0.2));
       param_list.push_back(AV1InvTxfm2dParam(tx_type, TX_32X64, 3, 0.3));
       param_list.push_back(AV1InvTxfm2dParam(tx_type, TX_64X32, 3, 0.31));
-      param_list.push_back(AV1InvTxfm2dParam(tx_type, TX_16X64, 2, 0.11));
-      param_list.push_back(AV1InvTxfm2dParam(tx_type, TX_64X16, 2, 0.11));
+      param_list.push_back(AV1InvTxfm2dParam(tx_type, TX_16X64, 2, 0.16));
+      param_list.push_back(AV1InvTxfm2dParam(tx_type, TX_64X16, 2, 0.16));
     }
 #endif  // CONFIG_TX64X64
   }
diff --git a/test/av1_txfm_test.cc b/test/av1_txfm_test.cc
index b13984b..2e937cb 100644
--- a/test/av1_txfm_test.cc
+++ b/test/av1_txfm_test.cc
@@ -124,8 +124,7 @@
     amplify_factor *= pow(2, 0.5);
   } else if (abs(rect_type) == 2) {
     const int tx_max_dim = AOMMAX(tx_width, tx_height);
-    const int rect_type2_shift =
-        tx_max_dim == 64 ? 3 : tx_max_dim == 32 ? 2 : 1;
+    const int rect_type2_shift = (tx_max_dim >= 32) ? 2 : 1;
     amplify_factor *= pow(2, rect_type2_shift);
   }
   return amplify_factor;