INLINE and reimplement get_unsigned_bits().
authorAlex Converse <aconverse@google.com>
Mon, 3 Feb 2014 20:12:01 +0000 (12:12 -0800)
committerAlex Converse <aconverse@google.com>
Mon, 3 Feb 2014 20:16:22 +0000 (12:16 -0800)
The new implementation disagrees when the argument is equal to 2**n but
that is never called in practice and based on how it is used the new
implementation is correct in that case.

Change-Id: Ifbac4ad87d459fe6bd2fd0f400c0340f96617342

vp9/common/vp9_common.h

index 69964da..2dccb70 100644 (file)
@@ -18,6 +18,7 @@
 #include "./vpx_config.h"
 #include "vpx_mem/vpx_mem.h"
 #include "vpx/vpx_integer.h"
+#include "vp9/common/vp9_systemdependent.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -59,16 +60,8 @@ static INLINE double fclamp(double value, double low, double high) {
   return value < low ? low : (value > high ? high : value);
 }
 
-static int get_unsigned_bits(unsigned int num_values) {
-  int cat = 0;
-  if (num_values <= 1)
-    return 0;
-  num_values--;
-  while (num_values > 0) {
-    cat++;
-    num_values >>= 1;
-  }
-  return cat;
+static INLINE int get_unsigned_bits(unsigned int num_values) {
+  return num_values > 0 ? get_msb(num_values) + 1 : 0;
 }
 
 #if CONFIG_DEBUG