From d9e3fe8c22cb848d2c4a72dd11b8886153fcee3a Mon Sep 17 00:00:00 2001 From: Michael Niedermayer <michaelni@gmx.at> Date: Mon, 23 Mar 2015 00:26:42 +0100 Subject: [PATCH] postproc/postprocess_template: split first part of block loop Signed-off-by: Michael Niedermayer <michaelni@gmx.at> --- libpostproc/postprocess_template.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/libpostproc/postprocess_template.c b/libpostproc/postprocess_template.c index 5e51b525d1b..366b77490a1 100644 --- a/libpostproc/postprocess_template.c +++ b/libpostproc/postprocess_template.c @@ -3471,11 +3471,9 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[ for(x=0; x<width; ){ int startx = x; int endx = FFMIN(width, x+32); + uint8_t *dstBlockStart = dstBlock; + const uint8_t *srcBlockStart = srcBlock; for(; x < endx; x+=BLOCK_SIZE){ - const int stride= dstStride; - av_unused uint8_t *tmpXchg; - - #if TEMPLATE_PP_MMXEXT && HAVE_6REGS /* prefetchnta(srcBlock + (((x>>2)&6) + 5)*srcStride + 32); @@ -3522,6 +3520,16 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[ /* else if(mode & CUBIC_BLEND_DEINT_FILTER) RENAME(deInterlaceBlendCubic)(dstBlock, dstStride); */ + dstBlock+=8; + srcBlock+=8; + } + + dstBlock = dstBlockStart; + srcBlock = srcBlockStart; + + for(x = startx; x < endx; x+=BLOCK_SIZE){ + const int stride= dstStride; + av_unused uint8_t *tmpXchg; if(isColor){ QP= QPptr[x>>qpHShift]; -- GitLab