diff options
author | Yunqing Wang <yunqingwang@google.com> | 2014-10-22 14:37:38 -0700 |
---|---|---|
committer | Yunqing Wang <yunqingwang@google.com> | 2014-10-22 15:03:12 -0700 |
commit | 7c7e4d4eb8ddc1f7884dcab380a5850fef8b2add (patch) | |
tree | d70087f4fef896739d4ec6093a8a5bee1c55ecb9 /vp9/common/vp9_entropy.c | |
parent | 7c4992c4667f4f3392b911e3a8b17a776a216c5f (diff) | |
download | libvpx-7c7e4d4eb8ddc1f7884dcab380a5850fef8b2add.tar libvpx-7c7e4d4eb8ddc1f7884dcab380a5850fef8b2add.tar.gz libvpx-7c7e4d4eb8ddc1f7884dcab380a5850fef8b2add.tar.bz2 libvpx-7c7e4d4eb8ddc1f7884dcab380a5850fef8b2add.zip |
vp9_ethread: allocate frame contexts outside VP9_COMMON struct
This patch allocated frame contexts outside VP9_COMMON. This allows
multiple threads to share the same copy of frame contexts, and
reduces the overhead. It also guarantees the correct update of
these contexts during bitstream packing. This patch doesn't change
encoding result.
Change-Id: Ic181a2460b891d1d587278a6d02d8057b9dbd353
Diffstat (limited to 'vp9/common/vp9_entropy.c')
-rw-r--r-- | vp9/common/vp9_entropy.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/vp9/common/vp9_entropy.c b/vp9/common/vp9_entropy.c index c3fdeb48a..77a8709f0 100644 --- a/vp9/common/vp9_entropy.c +++ b/vp9/common/vp9_entropy.c @@ -748,10 +748,10 @@ void vp9_model_to_full_probs(const vp9_prob *model, vp9_prob *full) { } void vp9_default_coef_probs(VP9_COMMON *cm) { - vp9_copy(cm->fc.coef_probs[TX_4X4], default_coef_probs_4x4); - vp9_copy(cm->fc.coef_probs[TX_8X8], default_coef_probs_8x8); - vp9_copy(cm->fc.coef_probs[TX_16X16], default_coef_probs_16x16); - vp9_copy(cm->fc.coef_probs[TX_32X32], default_coef_probs_32x32); + vp9_copy(cm->fc->coef_probs[TX_4X4], default_coef_probs_4x4); + vp9_copy(cm->fc->coef_probs[TX_8X8], default_coef_probs_8x8); + vp9_copy(cm->fc->coef_probs[TX_16X16], default_coef_probs_16x16); + vp9_copy(cm->fc->coef_probs[TX_32X32], default_coef_probs_32x32); } #define COEF_COUNT_SAT 24 @@ -765,7 +765,7 @@ static void adapt_coef_probs(VP9_COMMON *cm, TX_SIZE tx_size, unsigned int count_sat, unsigned int update_factor) { const FRAME_CONTEXT *pre_fc = &cm->frame_contexts[cm->frame_context_idx]; - vp9_coeff_probs_model *const probs = cm->fc.coef_probs[tx_size]; + vp9_coeff_probs_model *const probs = cm->fc->coef_probs[tx_size]; const vp9_coeff_probs_model *const pre_probs = pre_fc->coef_probs[tx_size]; vp9_coeff_count_model *counts = cm->counts.coef[tx_size]; unsigned int (*eob_counts)[REF_TYPES][COEF_BANDS][COEFF_CONTEXTS] = |