Turning model based reverse update on for coefs
authorDeb Mukherjee <debargha@google.com>
Fri, 26 Apr 2013 18:13:26 +0000 (11:13 -0700)
committerDeb Mukherjee <debargha@google.com>
Mon, 29 Apr 2013 17:09:57 +0000 (10:09 -0700)
Turns model based reverse updates on for coefficients in an
effort to reduce the memory requirement for counters.

With this patch the counters needed will be reduced by about
75% since only 3 counts are needed instead of 12.

The impact in performance is:
derf300: -0.252%
stdhd250: -0.046%

However retraining should alleviate some of the drop in
performance.

Change-Id: I6f2b3e13f6d5520aa3400b0b228fb5e8b4a43caa

vp9/common/vp9_entropy.c
vp9/common/vp9_entropy.h

index 16ef14f..faa45bd 100644 (file)
@@ -1555,6 +1555,7 @@ static void adapt_coef_probs(vp9_coeff_probs *dst_coef_probs,
 }
 
 void vp9_adapt_coef_probs(VP9_COMMON *cm) {
+#ifndef DISABLE_COEF_ADAPT
   int count_sat;
   int update_factor; /* denominator 256 */
 
@@ -1585,6 +1586,7 @@ void vp9_adapt_coef_probs(VP9_COMMON *cm) {
                    cm->base_qindex, cm->fc.coef_counts_32x32,
                    cm->fc.eob_branch_counts[TX_32X32],
                    count_sat, update_factor);
+#endif
 }
 
 #if CONFIG_CODE_ZEROGROUP
index 06641dc..f35384b 100644 (file)
@@ -84,6 +84,9 @@ extern vp9_extra_bit vp9_extra_bits[12];    /* indexed by token value */
 /*# define DC_TOKEN_CONTEXTS        3*/ /* 00, 0!0, !0!0 */
 #define PREV_COEF_CONTEXTS          6
 
+// Disables backward coef probs adaption
+// #define DISABLE_COEF_ADAPT
+
 typedef unsigned int vp9_coeff_count[REF_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS]
                                     [MAX_ENTROPY_TOKENS];
 typedef unsigned int vp9_coeff_stats[REF_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS]
@@ -158,7 +161,7 @@ const int *vp9_get_coef_neighbors_handle(const int *scan, int *pad);
 // if model-based how many nodes are unconstrained
 #define UNCONSTRAINED_UPDATE_NODES  3
 // whether backward updates are model-based
-#define MODEL_BASED_ADAPT           0
+#define MODEL_BASED_ADAPT           1
 #define UNCONSTRAINED_ADAPT_NODES   3
 
 typedef vp9_prob vp9_coeff_probs_model[REF_TYPES][COEF_BANDS]