]> granicus.if.org Git - libvpx/commitdiff
Adds an utility macro ROUNDZ_POWER_OF_TWO
authorDebargha Mukherjee <debargha@google.com>
Wed, 24 Feb 2016 19:25:20 +0000 (11:25 -0800)
committerDebargha Mukherjee <debargha@google.com>
Wed, 24 Feb 2016 20:35:29 +0000 (12:35 -0800)
This macro works for the shift parameter being 0.
The ROUND_POWER_OF_TWO macro does not.

Change-Id: I8434d2933892e09bbc0d2dafc934d0c3637df347

vp10/encoder/rdopt.c
vpx_ports/mem.h

index 131bfb8422a2ddbc933274c17c9174746e547620..8be078fd4d7cce4b01ee7a621735972ff264e810 100644 (file)
@@ -768,8 +768,8 @@ static void block_rd_txfm(int plane, int block, int blk_row, int blk_col,
 
       sse = vpx_sum_squares_2d_i16(diff, diff_stride, bs);
 #if CONFIG_VP9_HIGHBITDEPTH
-      if ((xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) && (xd->bd > 8))
-        sse = ROUND_POWER_OF_TWO(sse, (xd->bd - 8) * 2);
+      if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH)
+        sse = ROUNDZ_POWER_OF_TWO(sse, (xd->bd - 8) * 2);
 #endif  // CONFIG_VP9_HIGHBITDEPTH
       sse = (int64_t)sse * 16;
 
@@ -2458,8 +2458,8 @@ void vp10_tx_block_rd_b(const VP10_COMP *cpi, MACROBLOCK *x, TX_SIZE tx_size,
   }
 
 #if CONFIG_VP9_HIGHBITDEPTH
-  if ((xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) && (xd->bd > 8))
-    tmp = ROUND_POWER_OF_TWO(tmp, (xd->bd - 8) * 2);
+  if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH)
+    tmp = ROUNDZ_POWER_OF_TWO(tmp, (xd->bd - 8) * 2);
 #endif  // CONFIG_VP9_HIGHBITDEPTH
   *bsse += (int64_t)tmp * 16;
 
index ae4aec808ddd5df27978c229e819d2d6f1c87afc..4dce9c21a1395c57ab0de7fd365343ef5e6405f7 100644 (file)
 #define __builtin_prefetch(x)
 #endif
 
-/* Shift down with rounding */
+/* Shift down with rounding for use when n > 0 */
 #define ROUND_POWER_OF_TWO(value, n) \
     (((value) + (1 << ((n) - 1))) >> (n))
 
+/* Shift down with rounding for use when n >= 0 */
+#define ROUNDZ_POWER_OF_TWO(value, n) \
+    ((n) ? (((value) + (1 << ((n) - 1))) >> (n)) : (value))
+
 #define ALIGN_POWER_OF_TWO(value, n) \
     (((value) + ((1 << (n)) - 1)) & ~((1 << (n)) - 1))