diff --git a/vp9/common/vp9_alloccommon.c b/vp9/common/vp9_alloccommon.c
index bdebb33279e7ba49415be307c5ac0c0600a4db36..7716fc17194bdcba34061cf4fa1c523df9b2ff5a 100644
--- a/vp9/common/vp9_alloccommon.c
+++ b/vp9/common/vp9_alloccommon.c
@@ -68,8 +68,8 @@ void vp9_free_frame_buffers(VP9_COMMON *oci) {
 }
 
 static void set_mb_mi(VP9_COMMON *cm, int aligned_width, int aligned_height) {
-  cm->mb_cols = aligned_width >> 4;
-  cm->mb_rows = aligned_height >> 4;
+  cm->mb_cols = (aligned_width + 8) >> 4;
+  cm->mb_rows = (aligned_height + 8) >> 4;
   cm->MBs = cm->mb_rows * cm->mb_cols;
 
   cm->mi_cols = aligned_width >> LOG2_MI_SIZE;
@@ -95,8 +95,8 @@ int vp9_alloc_frame_buffers(VP9_COMMON *oci, int width, int height) {
   int i, mi_cols;
 
   // Our internal buffers are always multiples of 16
-  const int aligned_width = multiple16(width);
-  const int aligned_height = multiple16(height);
+  const int aligned_width = multiple8(width);
+  const int aligned_height = multiple8(height);
   const int ss_x = oci->subsampling_x;
   const int ss_y = oci->subsampling_y;
 
@@ -222,8 +222,8 @@ void vp9_initialize_common() {
 }
 
 void vp9_update_frame_size(VP9_COMMON *cm) {
-  const int aligned_width = multiple16(cm->width);
-  const int aligned_height = multiple16(cm->height);
+  const int aligned_width = multiple8(cm->width);
+  const int aligned_height = multiple8(cm->height);
 
   set_mb_mi(cm, aligned_width, aligned_height);
   setup_mi(cm);
diff --git a/vp9/common/vp9_common.h b/vp9/common/vp9_common.h
index 5c97f98633ea66269ca58b753dbebc1e6eee7577..0d7babf97d7a28315fb74988148b7e3f986000cf 100644
--- a/vp9/common/vp9_common.h
+++ b/vp9/common/vp9_common.h
@@ -56,8 +56,8 @@ static INLINE double fclamp(double value, double low, double high) {
   return value < low ? low : (value > high ? high : value);
 }
 
-static INLINE int multiple16(int value) {
-  return (value + 15) & ~15;
+static INLINE int multiple8(int value) {
+  return (value + 7) & ~7;
 }
 
 #define SYNC_CODE_0 0x49
diff --git a/vp9/vp9_iface_common.h b/vp9/vp9_iface_common.h
index 1c3cc62d2e5706917e73dd470bf26f9256222fee..dc41d77d1206440cdb12256e16b959e8d33620c7 100644
--- a/vp9/vp9_iface_common.h
+++ b/vp9/vp9_iface_common.h
@@ -29,7 +29,7 @@ static void yuvconfig2image(vpx_image_t *img, const YV12_BUFFER_CONFIG  *yv12,
     img->fmt = VPX_IMG_FMT_I420;
   }
   img->w = yv12->y_stride;
-  img->h = multiple16(yv12->y_height + 2 * VP9BORDERINPIXELS);
+  img->h = multiple8(yv12->y_height + 2 * VP9BORDERINPIXELS);
   img->d_w = yv12->y_crop_width;
   img->d_h = yv12->y_crop_height;
   img->x_chroma_shift = yv12->uv_width < yv12->y_width;