Simplify extend_plane() and extend_plane_high()
Simplify the calculations of src_ptr2, dst_ptr1, and dst_ptr2 by using
common subexpressions.
Change-Id: Ie6e6352119b3b7f6fbe7775f122431a28091c59d
diff --git a/aom_scale/generic/yv12extend.c b/aom_scale/generic/yv12extend.c
index f01def2..a32aee5 100644
--- a/aom_scale/generic/yv12extend.c
+++ b/aom_scale/generic/yv12extend.c
@@ -31,7 +31,7 @@
uint8_t *src_ptr1 = src;
uint8_t *src_ptr2 = src + width - 1;
uint8_t *dst_ptr1 = src - extend_left;
- uint8_t *dst_ptr2 = src + width;
+ uint8_t *dst_ptr2 = src_ptr2 + 1;
for (i = 0; i < height; ++i) {
memset(dst_ptr1, src_ptr1[0], extend_left);
@@ -46,18 +46,19 @@
* borders
*/
src_ptr1 = src - extend_left;
- src_ptr2 = src + src_stride * (height - 1) - extend_left;
- dst_ptr1 = src + src_stride * -extend_top - extend_left;
- dst_ptr2 = src + src_stride * height - extend_left;
+ dst_ptr1 = src_ptr1 + src_stride * -extend_top;
for (i = 0; i < extend_top; ++i) {
memcpy(dst_ptr1, src_ptr1, linesize);
dst_ptr1 += src_stride;
}
+ src_ptr2 = src_ptr1 + src_stride * (height - 1);
+ dst_ptr2 = src_ptr2;
+
for (i = 0; i < extend_bottom; ++i) {
- memcpy(dst_ptr2, src_ptr2, linesize);
dst_ptr2 += src_stride;
+ memcpy(dst_ptr2, src_ptr2, linesize);
}
}
@@ -74,7 +75,7 @@
uint16_t *src_ptr1 = src;
uint16_t *src_ptr2 = src + width - 1;
uint16_t *dst_ptr1 = src - extend_left;
- uint16_t *dst_ptr2 = src + width;
+ uint16_t *dst_ptr2 = src_ptr2 + 1;
for (i = 0; i < height; ++i) {
aom_memset16(dst_ptr1, src_ptr1[0], extend_left);
@@ -89,18 +90,19 @@
* borders
*/
src_ptr1 = src - extend_left;
- src_ptr2 = src + src_stride * (height - 1) - extend_left;
- dst_ptr1 = src + src_stride * -extend_top - extend_left;
- dst_ptr2 = src + src_stride * height - extend_left;
+ dst_ptr1 = src_ptr1 + src_stride * -extend_top;
for (i = 0; i < extend_top; ++i) {
memcpy(dst_ptr1, src_ptr1, linesize * sizeof(uint16_t));
dst_ptr1 += src_stride;
}
+ src_ptr2 = src_ptr1 + src_stride * (height - 1);
+ dst_ptr2 = src_ptr2;
+
for (i = 0; i < extend_bottom; ++i) {
- memcpy(dst_ptr2, src_ptr2, linesize * sizeof(uint16_t));
dst_ptr2 += src_stride;
+ memcpy(dst_ptr2, src_ptr2, linesize * sizeof(uint16_t));
}
}
#endif // CONFIG_AV1_HIGHBITDEPTH