]> granicus.if.org Git - libvpx/commitdiff
Use specific PICK_MODE_CONTEXT for supertx.
authorGeza Lore <gezalore@gmail.com>
Tue, 12 Jan 2016 13:06:42 +0000 (13:06 +0000)
committerGeza Lore <gezalore@gmail.com>
Tue, 12 Jan 2016 13:06:42 +0000 (13:06 +0000)
Change-Id: I402d10dd666ebc4a06ce4472810a7e22f2e056ff

vp10/encoder/context_tree.c
vp10/encoder/context_tree.h
vp10/encoder/encodeframe.c

index 1ac802f81e863654bbc06a0016750f4600f77426..64552abfc2e90a5c10d66e4d5cf0de32e0858212 100644 (file)
@@ -81,6 +81,9 @@ static void alloc_tree_contexts(VP10_COMMON *cm, PC_TREE *tree,
   alloc_mode_context(cm, num_4x4_blk, &tree->none);
   alloc_mode_context(cm, num_4x4_blk/2, &tree->horizontal[0]);
   alloc_mode_context(cm, num_4x4_blk/2, &tree->vertical[0]);
+#ifdef CONFIG_SUPERTX
+  alloc_mode_context(cm, num_4x4_blk, &tree->super_tx);
+#endif
 
   if (num_4x4_blk > 4) {
     alloc_mode_context(cm, num_4x4_blk/2, &tree->horizontal[1]);
@@ -97,6 +100,9 @@ static void free_tree_contexts(PC_TREE *tree) {
   free_mode_context(&tree->horizontal[1]);
   free_mode_context(&tree->vertical[0]);
   free_mode_context(&tree->vertical[1]);
+#ifdef CONFIG_SUPERTX
+  free_mode_context(&tree->super_tx);
+#endif
 }
 
 // This function sets up a tree of contexts such that at each square
index 55ae471c5b3ec50c9552bbf67bd43743e546de72..80e1a47965a70c0024f19f3f091c09218685f669 100644 (file)
@@ -87,6 +87,9 @@ typedef struct PC_TREE {
     struct PC_TREE *split[4];
     PICK_MODE_CONTEXT *leaf_split[4];
   };
+#ifdef CONFIG_SUPERTX
+  PICK_MODE_CONTEXT super_tx;
+#endif
 } PC_TREE;
 
 void vp10_setup_pc_tree(struct VP10Common *cm, struct ThreadData *td);
index e516a5f9fe48295b5cd64fa7d4769f025255a998..66b83132ff5ae0b0f9c4c4e50c2c4264e23dd568 100644 (file)
@@ -1382,10 +1382,10 @@ static void update_state_sb_supertx(VP10_COMP *cpi, ThreadData *td,
   }
 
   for (i = 0; i < MAX_MB_PLANE; ++i) {
-    p[i].coeff = (&pc_tree->none)->coeff_pbuf[i][1];
-    p[i].qcoeff = (&pc_tree->none)->qcoeff_pbuf[i][1];
-    pd[i].dqcoeff = (&pc_tree->none)->dqcoeff_pbuf[i][1];
-    p[i].eobs = (&pc_tree->none)->eobs_pbuf[i][1];
+    p[i].coeff = (&pc_tree->super_tx)->coeff_pbuf[i][1];
+    p[i].qcoeff = (&pc_tree->super_tx)->qcoeff_pbuf[i][1];
+    pd[i].dqcoeff = (&pc_tree->super_tx)->dqcoeff_pbuf[i][1];
+    p[i].eobs = (&pc_tree->super_tx)->eobs_pbuf[i][1];
   }
 }