From c2574414d432c7d040f3b2b05f23a109a801ea69 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Thu, 6 Jun 2013 15:43:06 -0700 Subject: [PATCH] Align frame size to 8 instead of 16. Change-Id: Ic22f416a33de558519d5c30a929f6a954546ade9 --- vp9/common/vp9_alloccommon.c | 12 ++++++------ vp9/common/vp9_common.h | 4 ++-- vp9/vp9_iface_common.h | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/vp9/common/vp9_alloccommon.c b/vp9/common/vp9_alloccommon.c index bdebb3327..7716fc171 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 5c97f9863..0d7babf97 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 1c3cc62d2..dc41d77d1 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;