summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Koleszar <jkoleszar@google.com>2011-02-15 10:14:18 -0500
committerJohn Koleszar <jkoleszar@google.com>2011-02-15 10:22:21 -0500
commitc40ea3f0c6cb19e4741bf8d81a185c88eec76375 (patch)
tree515f8d66ed280842f00ced20ab6594f36a85f4cb
parent7725a7eb56e74ebbdba14d01cfe85a151f81bf1c (diff)
downloadlibvpx-sandbox/jkoleszar/use-memcpy.tar.gz
Use memcpy for save/restore_predictorsandbox/jkoleszar/use-memcpy
The save_predictor and restore_predictor functions perform a 1D backup of the 2D predictor block. Use memcpy to get a faster copy operation than 4 individual load/stores. Change-Id: Ia609ed71fbff1ade6fa677186efce9ee29167fd6
-rw-r--r--vp8/encoder/rdopt.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c
index 3449e4532..faf3733fa 100644
--- a/vp8/encoder/rdopt.c
+++ b/vp8/encoder/rdopt.c
@@ -589,12 +589,8 @@ static void save_predictor(unsigned char *predictor, unsigned char *dst)
int r, c;
for (r = 0; r < 4; r++)
{
- for (c = 0; c < 4; c++)
- {
- *dst = predictor[c];
- dst++;
- }
-
+ memcpy(dst, predictor, 4);
+ dst += 4;
predictor += 16;
}
}
@@ -603,12 +599,8 @@ static void restore_predictor(unsigned char *predictor, unsigned char *dst)
int r, c;
for (r = 0; r < 4; r++)
{
- for (c = 0; c < 4; c++)
- {
- predictor[c] = *dst;
- dst++;
- }
-
+ memcpy(predictor, dst, 4);
+ dst += 4;
predictor += 16;
}
}