From e4663e6da14e021f90fab8f0fd2869002e3e0519 Mon Sep 17 00:00:00 2001 From: Geza Lore Date: Tue, 12 Jan 2016 13:06:42 +0000 Subject: [PATCH] Use specific PICK_MODE_CONTEXT for supertx. Change-Id: I402d10dd666ebc4a06ce4472810a7e22f2e056ff --- vp10/encoder/context_tree.c | 6 ++++++ vp10/encoder/context_tree.h | 3 +++ vp10/encoder/encodeframe.c | 8 ++++---- 3 files changed, 13 insertions(+), 4 deletions(-) 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]; } } -- 2.40.0