From 70ffd5d0558d69f89d92168fcab337ed252df028 Mon Sep 17 00:00:00 2001
From: Jim Bankoski <jimbankoski@google.com>
Date: Thu, 21 Nov 2013 16:55:22 -0800
Subject: [PATCH] detokenization speedups

removed unnecessary ifs and branches ..

Change-Id: Id1698a35292659388f48926791024d1400f2cea9
---
 vp9/decoder/vp9_detokenize.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/vp9/decoder/vp9_detokenize.c b/vp9/decoder/vp9_detokenize.c
index 3038ef6e6d..f6219c5277 100644
--- a/vp9/decoder/vp9_detokenize.c
+++ b/vp9/decoder/vp9_detokenize.c
@@ -81,6 +81,7 @@ static const int token_to_counttoken[MAX_ENTROPY_TOKENS] = {
     INCREMENT_COUNT(token);                              \
     token_cache[scan[c]] = vp9_pt_energy_class[token];   \
     ++c;                                                 \
+    pt = get_coef_context(nb, token_cache, c);           \
     dqv = dq[1];                                          \
     continue;                                            \
   }
@@ -118,30 +119,24 @@ static int decode_coefs(VP9_COMMON *cm, const MACROBLOCKD *xd,
 
   while (c < seg_eob) {
     int val;
-    if (c)
-      pt = get_coef_context(nb, token_cache, c);
     band = *band_translate++;
     prob = coef_probs[band][pt];
     if (!cm->frame_parallel_decoding_mode)
       ++eob_branch_count[band][pt];
     if (!vp9_read(r, prob[EOB_CONTEXT_NODE]))
       break;
-    goto DECODE_ZERO;
-
-  SKIP_START:
-    if (c >= seg_eob)
-      break;
-    if (c)
-      pt = get_coef_context(nb, token_cache, c);
-    band = *band_translate++;
-    prob = coef_probs[band][pt];
 
   DECODE_ZERO:
     if (!vp9_read(r, prob[ZERO_CONTEXT_NODE])) {
       INCREMENT_COUNT(ZERO_TOKEN);
       dqv = dq[1];
       ++c;
-      goto SKIP_START;
+      if (c >= seg_eob)
+        break;
+      pt = get_coef_context(nb, token_cache, c);
+      band = *band_translate++;
+      prob = coef_probs[band][pt];
+      goto DECODE_ZERO;
     }
 
     // ONE_CONTEXT_NODE_0_
-- 
GitLab