From c40ea3f0c6cb19e4741bf8d81a185c88eec76375 Mon Sep 17 00:00:00 2001 From: John Koleszar Date: Tue, 15 Feb 2011 10:14:18 -0500 Subject: [PATCH] Use memcpy for save/restore_predictor 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 --- vp8/encoder/rdopt.c | 16 ++++------------ 1 file 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; } } -- 2.40.0