From 6fc8c4cc0ef643b8d6b87b0cf20ca8792c9b2dbe Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Fri, 5 Jul 2013 10:23:18 +0200 Subject: lavfi/delogo: don't recompute the same difference again and again The top left hand corner pixel coordinates are already stored in logo_x1 and logo_y1 so don't recompute each of them 6 times for every iteration. This is a simple code optimization, result is obviously the same. The performance gain is small (about 2% in my tests) but still good to have, and the new code is clearer. Signed-off-by: Jean Delvare Reviewed-by; Stefano Sabatini Signed-off-by: Michael Niedermayer --- libavfilter/vf_delogo.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'libavfilter/vf_delogo.c') diff --git a/libavfilter/vf_delogo.c b/libavfilter/vf_delogo.c index e882dd523a..3a9bdd4f68 100644 --- a/libavfilter/vf_delogo.c +++ b/libavfilter/vf_delogo.c @@ -100,21 +100,21 @@ static void apply_delogo(uint8_t *dst, int dst_linesize, weightb = (uint64_t)(x-logo_x1) * (logo_x2-1-x) * (y-logo_y1) * sar.num; interp = - (topleft[src_linesize*(y-logo_y -yclipt)] + - topleft[src_linesize*(y-logo_y-1-yclipt)] + - topleft[src_linesize*(y-logo_y+1-yclipt)]) * weightl + (topleft[src_linesize*(y-logo_y1)] + + topleft[src_linesize*(y-logo_y1-1)] + + topleft[src_linesize*(y-logo_y1+1)]) * weightl + - (topright[src_linesize*(y-logo_y-yclipt)] + - topright[src_linesize*(y-logo_y-1-yclipt)] + - topright[src_linesize*(y-logo_y+1-yclipt)]) * weightr + (topright[src_linesize*(y-logo_y1)] + + topright[src_linesize*(y-logo_y1-1)] + + topright[src_linesize*(y-logo_y1+1)]) * weightr + - (topleft[x-logo_x-xclipl] + - topleft[x-logo_x-1-xclipl] + - topleft[x-logo_x+1-xclipl]) * weightt + (topleft[x-logo_x1] + + topleft[x-logo_x1-1] + + topleft[x-logo_x1+1]) * weightt + - (botleft[x-logo_x-xclipl] + - botleft[x-logo_x-1-xclipl] + - botleft[x-logo_x+1-xclipl]) * weightb; + (botleft[x-logo_x1] + + botleft[x-logo_x1-1] + + botleft[x-logo_x1+1]) * weightb; interp /= (weightl + weightr + weightt + weightb) * 3U; if (y >= logo_y+band && y < logo_y+logo_h-band && -- cgit v1.2.3