From: Geza Lore Date: Tue, 12 Jan 2016 13:06:42 +0000 (+0000) Subject: Use specific PICK_MODE_CONTEXT for supertx. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e4663e6da14e021f90fab8f0fd2869002e3e0519;p=libvpx Use specific PICK_MODE_CONTEXT for supertx. Change-Id: I402d10dd666ebc4a06ce4472810a7e22f2e056ff --- diff --git a/vp10/encoder/context_tree.c b/vp10/encoder/context_tree.c index 1ac802f81..64552abfc 100644 --- a/vp10/encoder/context_tree.c +++ b/vp10/encoder/context_tree.c @@ -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 diff --git a/vp10/encoder/context_tree.h b/vp10/encoder/context_tree.h index 55ae471c5..80e1a4796 100644 --- a/vp10/encoder/context_tree.h +++ b/vp10/encoder/context_tree.h @@ -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); diff --git a/vp10/encoder/encodeframe.c b/vp10/encoder/encodeframe.c index e516a5f9f..66b83132f 100644 --- a/vp10/encoder/encodeframe.c +++ b/vp10/encoder/encodeframe.c @@ -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]; } }