Module: libav
Branch: master
Commit: d834ab0f2a5d5689cdd323e935534fda918319ef

Author:    Christophe Gisquet <[email protected]>
Committer: Ronald S. Bultje <[email protected]>
Date:      Tue Apr 17 18:44:51 2012 +0000

rv40: perform bitwise checks in loop filter

Down from 95 kcycles to 93 (including all called functions).

Signed-off-by: Ronald S. Bultje <[email protected]>

---

 libavcodec/rv40.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/libavcodec/rv40.c b/libavcodec/rv40.c
index 18dd51e..695b029 100644
--- a/libavcodec/rv40.c
+++ b/libavcodec/rv40.c
@@ -431,7 +431,7 @@ static void rv40_loop_filter(RV34DecContext *r, int row)
             y_v_deblock &= ~MASK_Y_LEFT_COL;
         if(!row)
             y_h_deblock &= ~MASK_Y_TOP_ROW;
-        if(row == s->mb_height - 1 || (mb_strong[POS_CUR] || 
mb_strong[POS_BOTTOM]))
+        if(row == s->mb_height - 1 || (mb_strong[POS_CUR] | 
mb_strong[POS_BOTTOM]))
             y_h_deblock &= ~(MASK_Y_TOP_ROW << 16);
         /* Calculating chroma patterns is similar and easier since there is
          * no motion vector pattern for them.
@@ -448,7 +448,7 @@ static void rv40_loop_filter(RV34DecContext *r, int row)
                 c_v_deblock[i] &= ~MASK_C_LEFT_COL;
             if(!row)
                 c_h_deblock[i] &= ~MASK_C_TOP_ROW;
-            if(row == s->mb_height - 1 || mb_strong[POS_CUR] || 
mb_strong[POS_BOTTOM])
+            if(row == s->mb_height - 1 || (mb_strong[POS_CUR] | 
mb_strong[POS_BOTTOM]))
                 c_h_deblock[i] &= ~(MASK_C_TOP_ROW << 4);
         }
 
@@ -469,7 +469,7 @@ static void rv40_loop_filter(RV34DecContext *r, int row)
                                               0, 0, 0);
                 }
                 // filter left block edge in ordinary mode (with low filtering 
strength)
-                if(y_v_deblock & (MASK_CUR << ij) && (i || 
!(mb_strong[POS_CUR] || mb_strong[POS_LEFT]))){
+                if(y_v_deblock & (MASK_CUR << ij) && (i || 
!(mb_strong[POS_CUR] | mb_strong[POS_LEFT]))){
                     if(!i)
                         clip_left = mvmasks[POS_LEFT] & (MASK_RIGHT << j) ? 
clip[POS_LEFT] : 0;
                     else
@@ -480,14 +480,14 @@ static void rv40_loop_filter(RV34DecContext *r, int row)
                                               alpha, beta, betaY, 0, 0, 1);
                 }
                 // filter top edge of the current macroblock when filtering 
strength is high
-                if(!j && y_h_deblock & (MASK_CUR << i) && (mb_strong[POS_CUR] 
|| mb_strong[POS_TOP])){
+                if(!j && y_h_deblock & (MASK_CUR << i) && (mb_strong[POS_CUR] 
| mb_strong[POS_TOP])){
                     rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,
                                        clip_cur,
                                        mvmasks[POS_TOP] & (MASK_TOP << i) ? 
clip[POS_TOP] : 0,
                                        alpha, beta, betaY, 0, 1, 0);
                 }
                 // filter left block edge in edge mode (with high filtering 
strength)
-                if(y_v_deblock & (MASK_CUR << ij) && !i && (mb_strong[POS_CUR] 
|| mb_strong[POS_LEFT])){
+                if(y_v_deblock & (MASK_CUR << ij) && !i && (mb_strong[POS_CUR] 
| mb_strong[POS_LEFT])){
                     clip_left = mvmasks[POS_LEFT] & (MASK_RIGHT << j) ? 
clip[POS_LEFT] : 0;
                     rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither,
                                        clip_cur,
@@ -509,7 +509,7 @@ static void rv40_loop_filter(RV34DecContext *r, int row)
                                            clip_cur,
                                            alpha, beta, betaC, 1, 0, 0);
                     }
-                    if((c_v_deblock[k] & (MASK_CUR << ij)) && (i || 
!(mb_strong[POS_CUR] || mb_strong[POS_LEFT]))){
+                    if((c_v_deblock[k] & (MASK_CUR << ij)) && (i || 
!(mb_strong[POS_CUR] | mb_strong[POS_LEFT]))){
                         if(!i)
                             clip_left = uvcbp[POS_LEFT][k] & (MASK_CUR << 
(2*j+1)) ? clip[POS_LEFT] : 0;
                         else
@@ -519,14 +519,14 @@ static void rv40_loop_filter(RV34DecContext *r, int row)
                                            clip_left,
                                            alpha, beta, betaC, 1, 0, 1);
                     }
-                    if(!j && c_h_deblock[k] & (MASK_CUR << ij) && 
(mb_strong[POS_CUR] || mb_strong[POS_TOP])){
+                    if(!j && c_h_deblock[k] & (MASK_CUR << ij) && 
(mb_strong[POS_CUR] | mb_strong[POS_TOP])){
                         int clip_top = uvcbp[POS_TOP][k] & (MASK_CUR << 
(ij+2)) ? clip[POS_TOP] : 0;
                         rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, 
i*8,
                                            clip_cur,
                                            clip_top,
                                            alpha, beta, betaC, 1, 1, 0);
                     }
-                    if(c_v_deblock[k] & (MASK_CUR << ij) && !i && 
(mb_strong[POS_CUR] || mb_strong[POS_LEFT])){
+                    if(c_v_deblock[k] & (MASK_CUR << ij) && !i && 
(mb_strong[POS_CUR] | mb_strong[POS_LEFT])){
                         clip_left = uvcbp[POS_LEFT][k] & (MASK_CUR << (2*j+1)) 
? clip[POS_LEFT] : 0;
                         rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, 
j*8,
                                            clip_cur,

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to