[FFmpeg-cvslog] avfilter/xbr: misc cleanup in FILT[234] macros

Clément Bœsch git at videolan.org
Sat Nov 15 21:07:07 CET 2014


ffmpeg | branch: master | Clément Bœsch <u at pkh.me> | Sat Nov 15 13:15:27 2014 +0100| [a3c3ee6973989c5a62b33f4cc28281d4563768a4] | committer: Clément Bœsch

avfilter/xbr: misc cleanup in FILT[234] macros

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a3c3ee6973989c5a62b33f4cc28281d4563768a4
---

 libavfilter/vf_xbr.c |  226 ++++++++++++++++++++++++--------------------------
 1 file changed, 110 insertions(+), 116 deletions(-)

diff --git a/libavfilter/vf_xbr.c b/libavfilter/vf_xbr.c
index d795acc..6b608a3 100644
--- a/libavfilter/vf_xbr.c
+++ b/libavfilter/vf_xbr.c
@@ -149,38 +149,36 @@ static uint32_t pixel_diff(uint32_t x, uint32_t y, const uint32_t *r2y)
     const uint32_t F4 = sa2[pnext2];                        \
     const uint32_t I4 = sa3[pnext2];
 
-#define FILT2(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, N0, N1, N2, N3) do { \
-     unsigned ex = (PE!=PH && PE!=PF); \
-     if ( ex )\
-     {\
-          unsigned e = (df(PE,PC)+df(PE,PG)+df(PI,H5)+df(PI,F4))+(df(PH,PF)<<2); \
-          unsigned i = (df(PH,PD)+df(PH,I5)+df(PF,I4)+df(PF,PB))+(df(PE,PI)<<2); \
-          if ((e<i)  && ( !eq(PF,PB) && !eq(PH,PD) || eq(PE,PI) && (!eq(PF,I4) && !eq(PH,I5)) || eq(PE,PG) || eq(PE,PC)) )\
-          {\
-              unsigned ke = df(PF,PG); \
-              unsigned ki = df(PH,PC); \
-              unsigned ex2 = (PE!=PC && PB!=PC); \
-              unsigned ex3 = (PE!=PG && PD!=PG); \
-              unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
-              if (ke<<1 <= ki && ex3 && ke >= ki<<1 && ex2) { /* left-up */ \
-                  ALPHA_BLEND_224_W(E[N3], px); \
-                  ALPHA_BLEND_64_W( E[N2], px); \
-                  E[N1] = E[N2]; \
-              } else if (ke<<1 <= ki && ex3) { /* left */ \
-                  ALPHA_BLEND_192_W(E[N3], px); \
-                  ALPHA_BLEND_64_W( E[N2], px); \
-              } else if (ke >= ki<<1 && ex2) { /* up */ \
-                  ALPHA_BLEND_192_W(E[N3], px); \
-                  ALPHA_BLEND_64_W( E[N1], px); \
-              } else { /* diagonal */ \
-                  ALPHA_BLEND_128_W(E[N3], px); \
-              }\
-          }\
-          else if (e<=i)\
-          {\
-               ALPHA_BLEND_128_W( E[N3], ((df(PE,PF) <= df(PE,PH)) ? PF : PH)); \
-          }\
-     }\
+#define FILT2(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1,   \
+              N0, N1, N2, N3) do {                                                                  \
+    if (PE != PH && PE != PF) {                                                                     \
+        const unsigned e = df(PE,PC) + df(PE,PG) + df(PI,H5) + df(PI,F4) + (df(PH,PF)<<2);          \
+        const unsigned i = df(PH,PD) + df(PH,I5) + df(PF,I4) + df(PF,PB) + (df(PE,PI)<<2);          \
+        if (e < i && (!eq(PF,PB) && !eq(PH,PD) || eq(PE,PI)                                         \
+                      && (!eq(PF,I4) && !eq(PH,I5))                                                 \
+                      || eq(PE,PG) || eq(PE,PC))) {                                                 \
+            const unsigned ke  = df(PF,PG);                                                         \
+            const unsigned ki  = df(PH,PC);                                                         \
+            const unsigned ex2 = PE != PC && PB != PC;                                              \
+            const unsigned ex3 = PE != PG && PD != PG;                                              \
+            const unsigned px  = df(PE,PF) <= df(PE,PH) ? PF : PH;                                  \
+            if (ke<<1 <= ki && ex3 && ke >= ki<<1 && ex2) { /* left-up */                           \
+                ALPHA_BLEND_224_W(E[N3], px);                                                       \
+                ALPHA_BLEND_64_W( E[N2], px);                                                       \
+                E[N1] = E[N2];                                                                      \
+            } else if (ke<<1 <= ki && ex3) { /* left */                                             \
+                ALPHA_BLEND_192_W(E[N3], px);                                                       \
+                ALPHA_BLEND_64_W( E[N2], px);                                                       \
+            } else if (ke >= ki<<1 && ex2) { /* up */                                               \
+                ALPHA_BLEND_192_W(E[N3], px);                                                       \
+                ALPHA_BLEND_64_W( E[N1], px);                                                       \
+            } else { /* diagonal */                                                                 \
+                ALPHA_BLEND_128_W(E[N3], px);                                                       \
+            }                                                                                       \
+        } else if (e <= i) {                                                                        \
+            ALPHA_BLEND_128_W( E[N3], ((df(PE,PF) <= df(PE,PH)) ? PF : PH));                        \
+        }                                                                                           \
+    }                                                                                               \
 } while (0)
 
 static void xbr2x(AVFrame * input, AVFrame * output, const uint32_t * r2y)
@@ -212,46 +210,44 @@ static void xbr2x(AVFrame * input, AVFrame * output, const uint32_t * r2y)
     }
 }
 
-#define FILT3(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, N0, N1, N2, N3, N4, N5, N6, N7, N8) do { \
-     unsigned ex = (PE!=PH && PE!=PF); \
-     if ( ex )\
-     {\
-          unsigned e = (df(PE,PC)+df(PE,PG)+df(PI,H5)+df(PI,F4))+(df(PH,PF)<<2); \
-          unsigned i = (df(PH,PD)+df(PH,I5)+df(PF,I4)+df(PF,PB))+(df(PE,PI)<<2); \
-          if ((e<i)  && ( !eq(PF,PB) && !eq(PF,PC) || !eq(PH,PD) && !eq(PH,PG) || eq(PE,PI) && (!eq(PF,F4) && !eq(PF,I4) || !eq(PH,H5) && !eq(PH,I5)) || eq(PE,PG) || eq(PE,PC)) )\
-          {\
-              unsigned ke = df(PF,PG); \
-              unsigned ki = df(PH,PC); \
-              unsigned ex2 = (PE!=PC && PB!=PC); \
-              unsigned ex3 = (PE!=PG && PD!=PG); \
-              unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
-              if (ke<<1 <= ki && ex3 && ke >= ki<<1 && ex2) { /* left-up */ \
-                  ALPHA_BLEND_192_W(E[N7], px); \
-                  ALPHA_BLEND_64_W( E[N6], px); \
-                  E[N5] = E[N7]; \
-                  E[N2] = E[N6]; \
-                  E[N8] = px;\
-              } else if (ke<<1 <= ki && ex3) { /* left */ \
-                  ALPHA_BLEND_192_W(E[N7], px); \
-                  ALPHA_BLEND_64_W( E[N5], px); \
-                  ALPHA_BLEND_64_W( E[N6], px); \
-                  E[N8] = px;\
-              } else if (ke >= ki<<1 && ex2) { /* up */ \
-                  ALPHA_BLEND_192_W(E[N5], px); \
-                  ALPHA_BLEND_64_W( E[N7], px); \
-                  ALPHA_BLEND_64_W( E[N2], px); \
-                  E[N8] = px;\
-              } else { /* diagonal */ \
-                  ALPHA_BLEND_224_W(E[N8], px); \
-                  ALPHA_BLEND_32_W(E[N5], px); \
-                  ALPHA_BLEND_32_W(E[N7], px); \
-              }\
-          }\
-          else if (e<=i)\
-          {\
-               ALPHA_BLEND_128_W( E[N8], ((df(PE,PF) <= df(PE,PH)) ? PF : PH)); \
-          }\
-     }\
+#define FILT3(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1,   \
+              N0, N1, N2, N3, N4, N5, N6, N7, N8) do {                                              \
+    if (PE != PH && PE != PF) {                                                                     \
+        const unsigned e = df(PE,PC) + df(PE,PG) + df(PI,H5) + df(PI,F4) + (df(PH,PF)<<2);          \
+        const unsigned i = df(PH,PD) + df(PH,I5) + df(PF,I4) + df(PF,PB) + (df(PE,PI)<<2);          \
+        if (e < i && (!eq(PF,PB) && !eq(PF,PC) || !eq(PH,PD) && !eq(PH,PG) || eq(PE,PI)             \
+                      && (!eq(PF,F4) && !eq(PF,I4) || !eq(PH,H5) && !eq(PH,I5))                     \
+                      || eq(PE,PG) || eq(PE,PC))) {                                                 \
+            const unsigned ke  = df(PF,PG);                                                         \
+            const unsigned ki  = df(PH,PC);                                                         \
+            const unsigned ex2 = PE != PC && PB != PC;                                              \
+            const unsigned ex3 = PE != PG && PD != PG;                                              \
+            const unsigned px  = df(PE,PF) <= df(PE,PH) ? PF : PH;                                  \
+            if (ke<<1 <= ki && ex3 && ke >= ki<<1 && ex2) { /* left-up */                           \
+                ALPHA_BLEND_192_W(E[N7], px);                                                       \
+                ALPHA_BLEND_64_W( E[N6], px);                                                       \
+                E[N5] = E[N7];                                                                      \
+                E[N2] = E[N6];                                                                      \
+                E[N8] = px;                                                                         \
+            } else if (ke<<1 <= ki && ex3) { /* left */                                             \
+                ALPHA_BLEND_192_W(E[N7], px);                                                       \
+                ALPHA_BLEND_64_W( E[N5], px);                                                       \
+                ALPHA_BLEND_64_W( E[N6], px);                                                       \
+                E[N8] = px;                                                                         \
+            } else if (ke >= ki<<1 && ex2) { /* up */                                               \
+                ALPHA_BLEND_192_W(E[N5], px);                                                       \
+                ALPHA_BLEND_64_W( E[N7], px);                                                       \
+                ALPHA_BLEND_64_W( E[N2], px);                                                       \
+                E[N8] = px;                                                                         \
+            } else { /* diagonal */                                                                 \
+                ALPHA_BLEND_224_W(E[N8], px);                                                       \
+                ALPHA_BLEND_32_W( E[N5], px);                                                       \
+                ALPHA_BLEND_32_W( E[N7], px);                                                       \
+            }                                                                                       \
+        } else if (e <= i) {                                                                        \
+            ALPHA_BLEND_128_W(E[N8], ((df(PE,PF) <= df(PE,PH)) ? PF : PH));                         \
+        }                                                                                           \
+    }                                                                                               \
 } while (0)
 
 static void xbr3x(AVFrame *input, AVFrame *output, const uint32_t *r2y)
@@ -286,50 +282,48 @@ static void xbr3x(AVFrame *input, AVFrame *output, const uint32_t *r2y)
     }
 }
 
-#define FILT4(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, N15, N14, N11, N3, N7, N10, N13, N12, N9, N6, N2, N1, N5, N8, N4, N0) do { \
-     unsigned ex   = (PE!=PH && PE!=PF); \
-     if ( ex )\
-     {\
-          unsigned e = (df(PE,PC)+df(PE,PG)+df(PI,H5)+df(PI,F4))+(df(PH,PF)<<2); \
-          unsigned i = (df(PH,PD)+df(PH,I5)+df(PF,I4)+df(PF,PB))+(df(PE,PI)<<2); \
-          if ((e<i)  && ( !eq(PF,PB) && !eq(PH,PD) || eq(PE,PI) && (!eq(PF,I4) && !eq(PH,I5)) || eq(PE,PG) || eq(PE,PC)) )\
-          {\
-              unsigned ke = df(PF,PG); \
-              unsigned ki = df(PH,PC); \
-              unsigned ex2 = (PE!=PC && PB!=PC); \
-              unsigned ex3 = (PE!=PG && PD!=PG); \
-              unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
-              if (ke<<1 <= ki && ex3 && ke >= ki<<1 && ex2) { /* left-up */ \
-                  ALPHA_BLEND_192_W(E[N13], px); \
-                  ALPHA_BLEND_64_W( E[N12], px); \
-                  E[N15] = E[N14] = E[N11] = px; \
-                  E[N10] = E[N3] = E[N12]; \
-                  E[N7]  = E[N13]; \
-              } else if (ke<<1 <= ki && ex3) { /* left */ \
-                  ALPHA_BLEND_192_W(E[N11], px); \
-                  ALPHA_BLEND_192_W(E[N13], px); \
-                  ALPHA_BLEND_64_W( E[N10], px); \
-                  ALPHA_BLEND_64_W( E[N12], px); \
-                  E[N14] = px; \
-                  E[N15] = px; \
-              } else if (ke >= ki<<1 && ex2) { /* up */ \
-                  ALPHA_BLEND_192_W(E[N14], px); \
-                  ALPHA_BLEND_192_W(E[N7 ], px); \
-                  ALPHA_BLEND_64_W( E[N10], px); \
-                  ALPHA_BLEND_64_W( E[N3 ], px); \
-                  E[N11] = px; \
-                  E[N15] = px; \
-              } else { /* diagonal */ \
-                  ALPHA_BLEND_128_W(E[N11], px); \
-                  ALPHA_BLEND_128_W(E[N14], px); \
-                  E[N15] = px; \
-              }\
-          }\
-          else if (e<=i)\
-          {\
-               ALPHA_BLEND_128_W( E[N15], ((df(PE,PF) <= df(PE,PH)) ? PF : PH)); \
-          }\
-     }\
+#define FILT4(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1,   \
+              N15, N14, N11, N3, N7, N10, N13, N12, N9, N6, N2, N1, N5, N8, N4, N0) do {            \
+    if (PE != PH && PE != PF) {                                                                     \
+        const unsigned e = df(PE,PC) + df(PE,PG) + df(PI,H5) + df(PI,F4) + (df(PH,PF)<<2);          \
+        const unsigned i = df(PH,PD) + df(PH,I5) + df(PF,I4) + df(PF,PB) + (df(PE,PI)<<2);          \
+        if (e < i && (!eq(PF,PB) && !eq(PH,PD) || eq(PE,PI)                                         \
+                      && (!eq(PF,I4) && !eq(PH,I5))                                                 \
+                      || eq(PE,PG) || eq(PE,PC))) {                                                 \
+            const unsigned ke  = df(PF,PG);                                                         \
+            const unsigned ki  = df(PH,PC);                                                         \
+            const unsigned ex2 = PE != PC && PB != PC;                                              \
+            const unsigned ex3 = PE != PG && PD != PG;                                              \
+            const unsigned px  = df(PE,PF) <= df(PE,PH) ? PF : PH;                                  \
+            if (ke<<1 <= ki && ex3 && ke >= ki<<1 && ex2) { /* left-up */                           \
+                ALPHA_BLEND_192_W(E[N13], px);                                                      \
+                ALPHA_BLEND_64_W( E[N12], px);                                                      \
+                E[N15] = E[N14] = E[N11] = px;                                                      \
+                E[N10] = E[N3]  = E[N12];                                                           \
+                E[N7]  = E[N13];                                                                    \
+            } else if (ke<<1 <= ki && ex3) { /* left */                                             \
+                ALPHA_BLEND_192_W(E[N11], px);                                                      \
+                ALPHA_BLEND_192_W(E[N13], px);                                                      \
+                ALPHA_BLEND_64_W( E[N10], px);                                                      \
+                ALPHA_BLEND_64_W( E[N12], px);                                                      \
+                E[N14] = px;                                                                        \
+                E[N15] = px;                                                                        \
+            } else if (ke >= ki<<1 && ex2) { /* up */                                               \
+                ALPHA_BLEND_192_W(E[N14], px);                                                      \
+                ALPHA_BLEND_192_W(E[N7 ], px);                                                      \
+                ALPHA_BLEND_64_W( E[N10], px);                                                      \
+                ALPHA_BLEND_64_W( E[N3 ], px);                                                      \
+                E[N11] = px;                                                                        \
+                E[N15] = px;                                                                        \
+            } else { /* diagonal */                                                                 \
+                ALPHA_BLEND_128_W(E[N11], px);                                                      \
+                ALPHA_BLEND_128_W(E[N14], px);                                                      \
+                E[N15] = px;                                                                        \
+            }                                                                                       \
+        } else if (e <= i) {                                                                        \
+            ALPHA_BLEND_128_W( E[N15], ((df(PE,PF) <= df(PE,PH)) ? PF : PH));                       \
+        }                                                                                           \
+    }                                                                                               \
 } while (0)
 
 static void xbr4x(AVFrame *input, AVFrame *output, const uint32_t *r2y)



More information about the ffmpeg-cvslog mailing list