shithub: libvpx

Download patch

ref: 01eec7585875b8a10f3634092baa381dd779231a
parent: 08055b639a5f748aee7ee75b28e79a49cb40b75a
parent: e9cf9b7dfe1831c6fe8fdd8c6e8a85260fd156b4
author: Yaowu Xu <yaowu@google.com>
date: Wed Jan 7 11:24:57 EST 2015

Merge "Refactor calculation of tile_cols"

--- a/vp9/common/vp9_tile_common.c
+++ b/vp9/common/vp9_tile_common.c
@@ -36,24 +36,24 @@
   vp9_tile_set_col(tile, cm, col);
 }
 
-void vp9_get_tile_n_bits(int mi_cols,
-                         int *min_log2_tile_cols, int *max_log2_tile_cols) {
-  const int sb_cols = mi_cols_aligned_to_sb(mi_cols) >> MI_BLOCK_SIZE_LOG2;
-  int min_log2 = 0, max_log2 = 0;
+static int get_min_log2_tile_cols(const int sb64_cols) {
+  int min_log2 = 0;
+  while ((MAX_TILE_WIDTH_B64 << min_log2) < sb64_cols)
+    ++min_log2;
+  return min_log2;
+}
 
-  // max
-  while ((sb_cols >> max_log2) >= MIN_TILE_WIDTH_B64)
+static int get_max_log2_tile_cols(const int sb64_cols) {
+  int max_log2 = 1;
+  while ((sb64_cols >> max_log2) >= MIN_TILE_WIDTH_B64)
     ++max_log2;
-  --max_log2;
-  if (max_log2 < 0)
-    max_log2 = 0;
+  return max_log2 - 1;
+}
 
-  // min
-  while ((MAX_TILE_WIDTH_B64 << min_log2) < sb_cols)
-    ++min_log2;
-
-  assert(min_log2 <= max_log2);
-
-  *min_log2_tile_cols = min_log2;
-  *max_log2_tile_cols = max_log2;
+void vp9_get_tile_n_bits(int mi_cols,
+                         int *min_log2_tile_cols, int *max_log2_tile_cols) {
+  const int sb64_cols = mi_cols_aligned_to_sb(mi_cols) >> MI_BLOCK_SIZE_LOG2;
+  *min_log2_tile_cols = get_min_log2_tile_cols(sb64_cols);
+  *max_log2_tile_cols = get_max_log2_tile_cols(sb64_cols);
+  assert(*min_log2_tile_cols <= *max_log2_tile_cols);
 }