Reduce division operations in update_scan_prob
Change-Id: I923931a9dbf828eb13670511852d55c953b479c1
diff --git a/av1/common/scan.c b/av1/common/scan.c
index c6e3b40..34a8595 100644
--- a/av1/common/scan.c
+++ b/av1/common/scan.c
@@ -8208,11 +8208,12 @@
}
#endif
int i;
+ const int inv_precision = 30;
+ int32_t inv_block_num = block_num == 0 ? 0 : (1 << inv_precision) / block_num;
for (i = 0; i < tx2d_size; i++) {
int64_t curr_prob =
- block_num == 0
- ? 0
- : (non_zero_count[i] << ADAPT_SCAN_PROB_PRECISION) / block_num;
+ block_num == 0 ? 0 : ((non_zero_count[i] * inv_block_num) >>
+ (inv_precision - ADAPT_SCAN_PROB_PRECISION));
int64_t prev_prob = prev_non_zero_prob[i];
int64_t pred_prob =
(curr_prob * rate +