[FFmpeg-devel] [FFmpeg-Devel] [PATCH 4/5] postproc: Merged second and third inner loops in postprocess_template.c

Tucker DiNapoli t.dinapoli42 at gmail.com
Wed Apr 1 20:36:04 CEST 2015


The structure of the postprocess function is to loop over x from 0 to
width, and in that loop to process 4 block at a time. This inner loop
was previously split into 3 seperate loops, i.e:
    outer_loop over x
      save current x location
      loop over 4 blocks
      restore x location
      loop over 4 blocks
      restore x location
      loop over 4 blocks
    end
this commit merges the second two inner loops (elimitating the restore x
location), the next commit merges the first inner loop as well,
resulting in:
   outer_loop:
     loop over 4 blocks
   end
---
 libpostproc/postprocess_template.c | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

diff --git a/libpostproc/postprocess_template.c b/libpostproc/postprocess_template.c
index 866ba8f..fcc8b94 100644
--- a/libpostproc/postprocess_template.c
+++ b/libpostproc/postprocess_template.c
@@ -3513,6 +3513,7 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[
 
           for(x = startx, qp_index = 0; x < endx; x+=BLOCK_SIZE, qp_index++){
               const int stride= dstStride;
+              av_unused uint8_t *tmpXchg;
               //temporary while changing QP stuff to make things continue to work
               //eventually QP,nonBQP,etc will be arrays and this will be unnecessary
               c.QP = c.QP_block[qp_index];
@@ -3535,22 +3536,8 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[
                   } else if(mode & V_A_DEBLOCK){
                       RENAME(do_a_deblock)(dstBlock, stride, 1, &c, mode);
                   }
-
-                  dstBlock+=8;
-                  srcBlock+=8;
               }
-          }
-
-          dstBlock = dstBlockStart;
-          srcBlock = srcBlockStart;
 
-          for(x = startx, qp_index=0; x < endx; x+=BLOCK_SIZE, qp_index++){
-              const int stride= dstStride;
-              av_unused uint8_t *tmpXchg;
-              c.QP = c.QP_block[qp_index];
-              c.nonBQP = c.nonBQP_block[qp_index];
-              c.pQPb = c.pQPb_block[qp_index];
-              c.pQPb2 = c.pQPb2_block[qp_index];
 #if TEMPLATE_PP_MMX
               RENAME(transpose1)(tempBlock1, tempBlock2, dstBlock, dstStride);
 #endif
-- 
2.3.3



More information about the ffmpeg-devel mailing list