Align frame size to 8 instead of 16.
authorRonald S. Bultje <rbultje@google.com>
Thu, 6 Jun 2013 22:43:06 +0000 (15:43 -0700)
committerRonald S. Bultje <rbultje@google.com>
Fri, 7 Jun 2013 00:28:11 +0000 (17:28 -0700)
Change-Id: Ic22f416a33de558519d5c30a929f6a954546ade9

vp9/common/vp9_alloccommon.c
vp9/common/vp9_common.h
vp9/vp9_iface_common.h

index bdebb33..7716fc1 100644 (file)
@@ -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);
index 5c97f98..0d7babf 100644 (file)
@@ -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
index 1c3cc62..dc41d77 100644 (file)
@@ -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;