Add 4 way vert and horz split

This gives about 0.1% gain, bringing up the experiment gains
to 0.55%.

Change-Id: I88a9f9705f71677b72e33c1b2958a2770d8fa8af
diff --git a/av1/common/common_data.h b/av1/common/common_data.h
index f5c70d6..9809e97 100644
--- a/av1/common/common_data.h
+++ b/av1/common/common_data.h
@@ -247,16 +247,16 @@
   TX_4X4,    // TX_8X4
   TX_4X4,    // TX_8X16
   TX_4X4,    // TX_16X8
-  TX_8X8,    // TX_16X32
-  TX_8X8,    // TX_32X16
-  TX_16X16,  // TX_32X64
-  TX_16X16,  // TX_64X32
+  TX_4X8,    // TX_16X32
+  TX_8X4,    // TX_32X16
+  TX_8X16,   // TX_32X64
+  TX_16X8,   // TX_64X32
   TX_4X4,    // TX_4X16
   TX_4X4,    // TX_16X4
-  TX_4X8,    // TX_8X32 //
+  TX_4X8,    // TX_8X32
   TX_8X4,    // TX_32X8
-  TX_8X16,   // TX_16X64
-  TX_16X8,   // TX_64X16
+  TX_4X16,   // TX_16X64
+  TX_16X4,   // TX_64X16
 #if CONFIG_FLEX_PARTITION
   TX_4X8,   // TX_4X32
   TX_8X4,   // TX_32X4
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index a96b29f..d1478d7 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -1065,31 +1065,51 @@
         TX_PARTITION_TYPES)] = {
       {
           // Square
-          { AOM_CDF4(28581, 29581, 29681) }, { AOM_CDF4(23846, 24846, 24946) },
-          { AOM_CDF4(20847, 21847, 21947) }, { AOM_CDF4(24315, 25315, 25415) },
-          { AOM_CDF4(18196, 19196, 19296) }, { AOM_CDF4(12133, 13133, 13233) },
-          { AOM_CDF4(18791, 19791, 19891) }, { AOM_CDF4(10887, 11887, 11987) },
-          { AOM_CDF4(11005, 12005, 12105) }, { AOM_CDF4(27179, 28179, 28279) },
-          { AOM_CDF4(20004, 21004, 21104) }, { AOM_CDF4(11281, 12281, 12381) },
-          { AOM_CDF4(26549, 27549, 27649) }, { AOM_CDF4(19308, 20308, 20408) },
-          { AOM_CDF4(14224, 15224, 15324) }, { AOM_CDF4(28015, 29015, 29115) },
-          { AOM_CDF4(21546, 22546, 22646) }, { AOM_CDF4(14400, 15400, 15500) },
-          { AOM_CDF4(28165, 29165, 29265) }, { AOM_CDF4(22401, 23401, 23501) },
-          { AOM_CDF4(16088, 17088, 17188) },
+          { AOM_CDF6(28581, 29581, 29681, 29881, 29981) },
+          { AOM_CDF6(23846, 24846, 24946, 25046, 25146) },
+          { AOM_CDF6(20847, 21847, 21947, 22047, 22147) },
+          { AOM_CDF6(24315, 25315, 25415, 25515, 25615) },
+          { AOM_CDF6(18196, 19196, 19296, 19396, 19496) },
+          { AOM_CDF6(12133, 13133, 13233, 13333, 13433) },
+          { AOM_CDF6(18791, 19791, 19891, 19991, 20091) },
+          { AOM_CDF6(10887, 11887, 11987, 12087, 12187) },
+          { AOM_CDF6(11005, 12005, 12105, 12205, 12305) },
+          { AOM_CDF6(27179, 28179, 28279, 28379, 28479) },
+          { AOM_CDF6(20004, 21004, 21104, 21204, 21304) },
+          { AOM_CDF6(11281, 12281, 12381, 12481, 12581) },
+          { AOM_CDF6(26549, 27549, 27649, 27749, 27849) },
+          { AOM_CDF6(19308, 20308, 20408, 20508, 20608) },
+          { AOM_CDF6(14224, 15224, 15324, 15424, 15524) },
+          { AOM_CDF6(28015, 29015, 29115, 29215, 29315) },
+          { AOM_CDF6(21546, 22546, 22646, 22746, 22846) },
+          { AOM_CDF6(14400, 15400, 15500, 15600, 15700) },
+          { AOM_CDF6(28165, 29165, 29265, 29365, 29465) },
+          { AOM_CDF6(22401, 23401, 23501, 23601, 23701) },
+          { AOM_CDF6(16088, 17088, 17188, 17288, 17388) },
       },
       {
           // Rectangular
-          { AOM_CDF4(28581, 29581, 29681) }, { AOM_CDF4(23846, 24846, 24946) },
-          { AOM_CDF4(20847, 21847, 21947) }, { AOM_CDF4(24315, 25315, 25415) },
-          { AOM_CDF4(18196, 19196, 19296) }, { AOM_CDF4(12133, 13133, 13233) },
-          { AOM_CDF4(18791, 19791, 19891) }, { AOM_CDF4(10887, 11887, 11987) },
-          { AOM_CDF4(11005, 12005, 12105) }, { AOM_CDF4(27179, 28179, 28279) },
-          { AOM_CDF4(20004, 21004, 21104) }, { AOM_CDF4(11281, 12281, 12381) },
-          { AOM_CDF4(26549, 27549, 27649) }, { AOM_CDF4(19308, 20308, 20408) },
-          { AOM_CDF4(14224, 15224, 15324) }, { AOM_CDF4(28015, 29015, 29115) },
-          { AOM_CDF4(21546, 22546, 22646) }, { AOM_CDF4(14400, 15400, 15500) },
-          { AOM_CDF4(28165, 29165, 29265) }, { AOM_CDF4(22401, 23401, 23501) },
-          { AOM_CDF4(16088, 17088, 17188) },
+          { AOM_CDF6(28581, 29581, 29681, 29881, 29981) },
+          { AOM_CDF6(23846, 24846, 24946, 25046, 25146) },
+          { AOM_CDF6(20847, 21847, 21947, 22047, 22147) },
+          { AOM_CDF6(24315, 25315, 25415, 25515, 25615) },
+          { AOM_CDF6(18196, 19196, 19296, 19396, 19496) },
+          { AOM_CDF6(12133, 13133, 13233, 13333, 13433) },
+          { AOM_CDF6(18791, 19791, 19891, 19991, 20091) },
+          { AOM_CDF6(10887, 11887, 11987, 12087, 12187) },
+          { AOM_CDF6(11005, 12005, 12105, 12205, 12305) },
+          { AOM_CDF6(27179, 28179, 28279, 28379, 28479) },
+          { AOM_CDF6(20004, 21004, 21104, 21204, 21304) },
+          { AOM_CDF6(11281, 12281, 12381, 12481, 12581) },
+          { AOM_CDF6(26549, 27549, 27649, 27749, 27849) },
+          { AOM_CDF6(19308, 20308, 20408, 20508, 20608) },
+          { AOM_CDF6(14224, 15224, 15324, 15424, 15524) },
+          { AOM_CDF6(28015, 29015, 29115, 29215, 29315) },
+          { AOM_CDF6(21546, 22546, 22646, 22746, 22846) },
+          { AOM_CDF6(14400, 15400, 15500, 15600, 15700) },
+          { AOM_CDF6(28165, 29165, 29265, 29365, 29465) },
+          { AOM_CDF6(22401, 23401, 23501, 23601, 23701) },
+          { AOM_CDF6(16088, 17088, 17188, 17288, 17388) },
       }
     };
 #else
diff --git a/av1/common/enums.h b/av1/common/enums.h
index 2820d31..feec832 100644
--- a/av1/common/enums.h
+++ b/av1/common/enums.h
@@ -262,12 +262,21 @@
 //  +-------+      |   |   |
 //  |       |      |   |   |
 //  +-------+      +---+---+
+//
+//  HORZ4              VERT4
+//  +-------+      +-+-+-+-+
+//  +-------+      | | | | |
+//  +-------+      | | | | |
+//  +-------+      | | | | |
+//  +-------+      +-+-+-+-+
 enum {
   TX_PARTITION_NONE,
   TX_PARTITION_SPLIT,
 #if CONFIG_NEW_TX_PARTITION_EXT
   TX_PARTITION_HORZ,
   TX_PARTITION_VERT,
+  TX_PARTITION_HORZ4,
+  TX_PARTITION_VERT4,
 #endif  // CONFIG_NEW_TX_PARTITION_EXT
   TX_PARTITION_TYPES,
 } UENUM1BYTE(TX_PARTITION_TYPE);
diff --git a/av1/common/onyxc_int.h b/av1/common/onyxc_int.h
index 840554e..7318c72 100644
--- a/av1/common/onyxc_int.h
+++ b/av1/common/onyxc_int.h
@@ -1284,25 +1284,25 @@
 #if CONFIG_NEW_TX_PARTITION
 #if CONFIG_NEW_TX_PARTITION_EXT
 static const int new_tx_partition_used[TX_SIZES_ALL][TX_PARTITION_TYPES] = {
-  { 1, 0, 0, 0 },  // 4x4 transform
-  { 1, 1, 1, 1 },  // 8x8 transform
-  { 1, 1, 1, 1 },  // 16x16 transform
-  { 1, 1, 1, 1 },  // 32x32 transform
-  { 1, 1, 1, 1 },  // 64x64 transform
-  { 1, 0, 1, 0 },  // 4x8 transform
-  { 1, 0, 0, 1 },  // 8x4 transform
-  { 1, 1, 1, 1 },  // 8x16 transform
-  { 1, 1, 1, 1 },  // 16x8 transform
-  { 1, 1, 1, 1 },  // 16x32 transform
-  { 1, 1, 1, 1 },  // 32x16 transform
-  { 1, 1, 1, 1 },  // 32x64 transform
-  { 1, 1, 1, 1 },  // 64x32 transform
-  { 1, 0, 1, 0 },  // 4x16 transform
-  { 1, 0, 0, 1 },  // 16x4 transform
-  { 1, 1, 1, 0 },  // 8x32 transform
-  { 1, 1, 0, 1 },  // 32x8 transform
-  { 1, 1, 1, 0 },  // 16x64 transform
-  { 1, 1, 0, 1 },  // 64x16 transform
+  { 1, 0, 0, 0, 0, 0 },  // 4x4 transform
+  { 1, 1, 1, 1, 0, 0 },  // 8x8 transform
+  { 1, 1, 1, 1, 1, 1 },  // 16x16 transform
+  { 1, 1, 1, 1, 1, 1 },  // 32x32 transform
+  { 1, 1, 1, 1, 1, 1 },  // 64x64 transform
+  { 1, 0, 1, 0, 0, 0 },  // 4x8 transform
+  { 1, 0, 0, 1, 0, 0 },  // 8x4 transform
+  { 1, 1, 1, 1, 1, 0 },  // 8x16 transform
+  { 1, 1, 1, 1, 0, 1 },  // 16x8 transform
+  { 1, 1, 1, 1, 1, 0 },  // 16x32 transform
+  { 1, 1, 1, 1, 0, 1 },  // 32x16 transform
+  { 1, 1, 1, 1, 1, 0 },  // 32x64 transform
+  { 1, 1, 1, 1, 0, 1 },  // 64x32 transform
+  { 1, 0, 1, 0, 1, 0 },  // 4x16 transform
+  { 1, 0, 0, 1, 0, 1 },  // 16x4 transform
+  { 1, 1, 1, 0, 1, 0 },  // 8x32 transform
+  { 1, 1, 0, 1, 0, 1 },  // 32x8 transform
+  { 1, 1, 1, 0, 1, 0 },  // 16x64 transform
+  { 1, 1, 0, 1, 0, 1 },  // 64x16 transform
 };
 #else
 static const int new_tx_partition_used[TX_SIZES_ALL][TX_PARTITION_TYPES] = {
@@ -1346,9 +1346,11 @@
           { { 0 }, { 0 }, 1 },                    // TX_PARTITION_NONE
           { { 1, 1, 1, 1 }, { 1, 1, 1, 1 }, 4 },  // TX_PARTITION_SPLIT
 #if CONFIG_NEW_TX_PARTITION_EXT
-          { { 1, 1 }, { 0, 0 }, 2 },  // TX_PARTITION_HORZ
-          { { 0, 0 }, { 1, 1 }, 2 },  // TX_PARTITION_VERT
-#endif                                // CONFIG_NEW_TX_PARTITION_EXT
+          { { 1, 1 }, { 0, 0 }, 2 },              // TX_PARTITION_HORZ
+          { { 0, 0 }, { 1, 1 }, 2 },              // TX_PARTITION_VERT
+          { { 2, 2, 2, 2 }, { 0, 0, 0, 0 }, 4 },  // TX_PARTITION_HORZ4
+          { { 0, 0, 0, 0 }, { 2, 2, 2, 2 }, 4 },  // TX_PARTITION_VERT4
+#endif                                            // CONFIG_NEW_TX_PARTITION_EXT
       },
       // Rectangular
       {
@@ -1357,6 +1359,8 @@
           { { 1, 1, 1, 1 }, { 1, 1, 1, 1 }, 4 },  // TX_PARTITION_SPLIT
           { { 1, 1 }, { 0, 0 }, 2 },              // TX_PARTITION_HORZ
           { { 0, 0 }, { 1, 1 }, 2 },              // TX_PARTITION_VERT
+          { { 2, 2, 2, 2 }, { 0, 0, 0, 0 }, 4 },  // TX_PARTITION_HORZ4
+          { { 0, 0, 0, 0 }, { 2, 2, 2, 2 }, 4 },  // TX_PARTITION_VERT4
 
 #else
           { { 0, 0 }, { 1, 1 }, 2 },  // TX_PARTITION_SPLIT
diff --git a/av1/encoder/block.h b/av1/encoder/block.h
index 9fe1e45e..6f13fa3 100644
--- a/av1/encoder/block.h
+++ b/av1/encoder/block.h
@@ -474,8 +474,8 @@
     1,  // BLOCK_32X64
     1,  // BLOCK_64X32
     1,  // BLOCK_64X64
-    0,  // BLOCK_64X128
-    0,  // BLOCK_128X64
+    1,  // BLOCK_64X128
+    1,  // BLOCK_128X64
     1,  // BLOCK_128X128
     1,  // BLOCK_4X16
     1,  // BLOCK_16X4