]> granicus.if.org Git - libvpx/commitdiff
Use transform block partition depth count for frame header reset
authorJingning Han <jingning@google.com>
Thu, 27 Oct 2016 18:19:53 +0000 (11:19 -0700)
committerJingning Han <jingning@google.com>
Thu, 27 Oct 2016 18:49:32 +0000 (18:49 +0000)
Use the transform block partition depth counts to decide if to
reset the tx_mode at frame header level. Add a comment to make this
explicit.

Change-Id: I417920b4b61eeb91cde9536336a12deea2d42f79

av1/encoder/encodeframe.c

index c94c1d8f768f5c2bfa9eeb044aa5ed033752d8d2..4978b2c5c706a349bac796f33fa8d91e0c7f6cb1 100644 (file)
@@ -4886,17 +4886,18 @@ void av1_encode_frame(AV1_COMP *cpi) {
       int count16x16_16x16p = 0, count16x16_lp = 0;
       int count32x32 = 0;
       for (i = 0; i < TX_SIZE_CONTEXTS; ++i) {
-        count4x4 += counts->tx_size[0][i][TX_4X4];
-        count4x4 += counts->tx_size[1][i][TX_4X4];
-        count4x4 += counts->tx_size[2][i][TX_4X4];
-
-        count8x8_lp += counts->tx_size[1][i][TX_8X8];
-        count8x8_lp += counts->tx_size[2][i][TX_8X8];
-        count8x8_8x8p += counts->tx_size[0][i][TX_8X8];
-
-        count16x16_16x16p += counts->tx_size[1][i][TX_16X16];
-        count16x16_lp += counts->tx_size[2][i][TX_16X16];
-        count32x32 += counts->tx_size[2][i][TX_32X32];
+        // counts->tx_size[max_depth][context_idx][this_depth_level]
+        count4x4 += counts->tx_size[0][i][0];
+        count4x4 += counts->tx_size[1][i][0];
+        count4x4 += counts->tx_size[2][i][0];
+
+        count8x8_lp += counts->tx_size[1][i][1];
+        count8x8_lp += counts->tx_size[2][i][1];
+        count8x8_8x8p += counts->tx_size[0][i][1];
+
+        count16x16_16x16p += counts->tx_size[1][i][2];
+        count16x16_lp += counts->tx_size[2][i][2];
+        count32x32 += counts->tx_size[2][i][3];
       }
 #if CONFIG_EXT_TX && CONFIG_RECT_TX
       count4x4 += counts->tx_size_implied[0][TX_4X4];