avfilter/xbr: avoid unecessary macro redirections
This commit is contained in:
parent
086487b633
commit
9f9c741771
@ -91,22 +91,6 @@ static uint32_t pixel_diff(uint32_t x, uint32_t y, const uint32_t *r2y)
|
|||||||
(dst & RED_BLUE_MASK)) * 7) >>3))) | (GREEN_MASK & ((dst & GREEN_MASK) + \
|
(dst & RED_BLUE_MASK)) * 7) >>3))) | (GREEN_MASK & ((dst & GREEN_MASK) + \
|
||||||
((((src & GREEN_MASK) - (dst & GREEN_MASK)) * 7) >>3))))
|
((((src & GREEN_MASK) - (dst & GREEN_MASK)) * 7) >>3))))
|
||||||
|
|
||||||
#define LEFT_UP_2_2X(N3, N2, N1, PIXEL)\
|
|
||||||
ALPHA_BLEND_224_W(E[N3], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N2], PIXEL); \
|
|
||||||
E[N1] = E[N2]; \
|
|
||||||
|
|
||||||
#define LEFT_2_2X(N3, N2, PIXEL)\
|
|
||||||
ALPHA_BLEND_192_W(E[N3], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N2], PIXEL); \
|
|
||||||
|
|
||||||
#define UP_2_2X(N3, N1, PIXEL)\
|
|
||||||
ALPHA_BLEND_192_W(E[N3], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N1], PIXEL); \
|
|
||||||
|
|
||||||
#define DIA_2X(N3, PIXEL)\
|
|
||||||
ALPHA_BLEND_128_W(E[N3], PIXEL); \
|
|
||||||
|
|
||||||
#define df(A, B) pixel_diff(A, B, r2y)
|
#define df(A, B) pixel_diff(A, B, r2y)
|
||||||
|
|
||||||
#define eq(A, B)\
|
#define eq(A, B)\
|
||||||
@ -125,21 +109,18 @@ static uint32_t pixel_diff(uint32_t x, uint32_t y, const uint32_t *r2y)
|
|||||||
unsigned ex2 = (PE!=PC && PB!=PC); \
|
unsigned ex2 = (PE!=PC && PB!=PC); \
|
||||||
unsigned ex3 = (PE!=PG && PD!=PG); \
|
unsigned ex3 = (PE!=PG && PD!=PG); \
|
||||||
unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
|
unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
|
||||||
if ( ((ke<<1)<=ki) && ex3 && (ke>=(ki<<1)) && ex2 ) \
|
if (ke<<1 <= ki && ex3 && ke >= ki<<1 && ex2) { /* left-up */ \
|
||||||
{\
|
ALPHA_BLEND_224_W(E[N3], px); \
|
||||||
LEFT_UP_2_2X(N3, N2, N1, px)\
|
ALPHA_BLEND_64_W( E[N2], px); \
|
||||||
}\
|
E[N1] = E[N2]; \
|
||||||
else if ( ((ke<<1)<=ki) && ex3 ) \
|
} else if (ke<<1 <= ki && ex3) { /* left */ \
|
||||||
{\
|
ALPHA_BLEND_192_W(E[N3], px); \
|
||||||
LEFT_2_2X(N3, N2, px);\
|
ALPHA_BLEND_64_W( E[N2], px); \
|
||||||
}\
|
} else if (ke >= ki<<1 && ex2) { /* up */ \
|
||||||
else if ( (ke>=(ki<<1)) && ex2 ) \
|
ALPHA_BLEND_192_W(E[N3], px); \
|
||||||
{\
|
ALPHA_BLEND_64_W( E[N1], px); \
|
||||||
UP_2_2X(N3, N1, px);\
|
} else { /* diagonal */ \
|
||||||
}\
|
ALPHA_BLEND_128_W(E[N3], px); \
|
||||||
else \
|
|
||||||
{\
|
|
||||||
DIA_2X(N3, px);\
|
|
||||||
}\
|
}\
|
||||||
}\
|
}\
|
||||||
else if (e<=i)\
|
else if (e<=i)\
|
||||||
@ -273,30 +254,6 @@ static void xbr2x(AVFrame * input, AVFrame * output, const uint32_t * r2y)
|
|||||||
}
|
}
|
||||||
#undef FILTRO
|
#undef FILTRO
|
||||||
|
|
||||||
#define LEFT_UP_2_3X(N7, N5, N6, N2, N8, PIXEL)\
|
|
||||||
ALPHA_BLEND_192_W(E[N7], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N6], PIXEL); \
|
|
||||||
E[N5] = E[N7]; \
|
|
||||||
E[N2] = E[N6]; \
|
|
||||||
E[N8] = PIXEL;\
|
|
||||||
|
|
||||||
#define LEFT_2_3X(N7, N5, N6, N8, PIXEL)\
|
|
||||||
ALPHA_BLEND_192_W(E[N7], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N5], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N6], PIXEL); \
|
|
||||||
E[N8] = PIXEL;\
|
|
||||||
|
|
||||||
#define UP_2_3X(N5, N7, N2, N8, PIXEL)\
|
|
||||||
ALPHA_BLEND_192_W(E[N5], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N7], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N2], PIXEL); \
|
|
||||||
E[N8] = PIXEL;\
|
|
||||||
|
|
||||||
#define DIA_3X(N8, N5, N7, PIXEL)\
|
|
||||||
ALPHA_BLEND_224_W(E[N8], PIXEL); \
|
|
||||||
ALPHA_BLEND_32_W(E[N5], PIXEL); \
|
|
||||||
ALPHA_BLEND_32_W(E[N7], PIXEL); \
|
|
||||||
|
|
||||||
#define FILTRO(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 { \
|
#define FILTRO(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); \
|
unsigned ex = (PE!=PH && PE!=PF); \
|
||||||
if ( ex )\
|
if ( ex )\
|
||||||
@ -310,21 +267,26 @@ static void xbr2x(AVFrame * input, AVFrame * output, const uint32_t * r2y)
|
|||||||
unsigned ex2 = (PE!=PC && PB!=PC); \
|
unsigned ex2 = (PE!=PC && PB!=PC); \
|
||||||
unsigned ex3 = (PE!=PG && PD!=PG); \
|
unsigned ex3 = (PE!=PG && PD!=PG); \
|
||||||
unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
|
unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
|
||||||
if ( ((ke<<1)<=ki) && ex3 && (ke>=(ki<<1)) && ex2 ) \
|
if (ke<<1 <= ki && ex3 && ke >= ki<<1 && ex2) { /* left-up */ \
|
||||||
{\
|
ALPHA_BLEND_192_W(E[N7], px); \
|
||||||
LEFT_UP_2_3X(N7, N5, N6, N2, N8, px)\
|
ALPHA_BLEND_64_W( E[N6], px); \
|
||||||
}\
|
E[N5] = E[N7]; \
|
||||||
else if ( ((ke<<1)<=ki) && ex3 ) \
|
E[N2] = E[N6]; \
|
||||||
{\
|
E[N8] = px;\
|
||||||
LEFT_2_3X(N7, N5, N6, N8, px);\
|
} else if (ke<<1 <= ki && ex3) { /* left */ \
|
||||||
}\
|
ALPHA_BLEND_192_W(E[N7], px); \
|
||||||
else if ( (ke>=(ki<<1)) && ex2 ) \
|
ALPHA_BLEND_64_W( E[N5], px); \
|
||||||
{\
|
ALPHA_BLEND_64_W( E[N6], px); \
|
||||||
UP_2_3X(N5, N7, N2, N8, px);\
|
E[N8] = px;\
|
||||||
}\
|
} else if (ke >= ki<<1 && ex2) { /* up */ \
|
||||||
else \
|
ALPHA_BLEND_192_W(E[N5], px); \
|
||||||
{\
|
ALPHA_BLEND_64_W( E[N7], px); \
|
||||||
DIA_3X(N8, N5, 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)\
|
else if (e<=i)\
|
||||||
@ -461,34 +423,6 @@ static void xbr3x(AVFrame *input, AVFrame *output, const uint32_t *r2y)
|
|||||||
}
|
}
|
||||||
#undef FILTRO
|
#undef FILTRO
|
||||||
|
|
||||||
#define LEFT_UP_2(N15, N14, N11, N13, N12, N10, N7, N3, PIXEL)\
|
|
||||||
ALPHA_BLEND_192_W(E[N13], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N12], PIXEL); \
|
|
||||||
E[N15] = E[N14] = E[N11] = PIXEL; \
|
|
||||||
E[N10] = E[N3] = E[N12]; \
|
|
||||||
E[N7] = E[N13]; \
|
|
||||||
|
|
||||||
#define LEFT_2(N15, N14, N11, N13, N12, N10, PIXEL)\
|
|
||||||
ALPHA_BLEND_192_W(E[N11], PIXEL); \
|
|
||||||
ALPHA_BLEND_192_W(E[N13], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N10], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N12], PIXEL); \
|
|
||||||
E[N14] = PIXEL; \
|
|
||||||
E[N15] = PIXEL; \
|
|
||||||
|
|
||||||
#define UP_2(N15, N14, N11, N3, N7, N10, PIXEL)\
|
|
||||||
ALPHA_BLEND_192_W(E[N14], PIXEL); \
|
|
||||||
ALPHA_BLEND_192_W(E[N7 ], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N10], PIXEL); \
|
|
||||||
ALPHA_BLEND_64_W( E[N3 ], PIXEL); \
|
|
||||||
E[N11] = PIXEL; \
|
|
||||||
E[N15] = PIXEL; \
|
|
||||||
|
|
||||||
#define DIA(N15, N14, N11, PIXEL)\
|
|
||||||
ALPHA_BLEND_128_W(E[N11], PIXEL); \
|
|
||||||
ALPHA_BLEND_128_W(E[N14], PIXEL); \
|
|
||||||
E[N15] = PIXEL; \
|
|
||||||
|
|
||||||
#define FILTRO(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 { \
|
#define FILTRO(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); \
|
unsigned ex = (PE!=PH && PE!=PF); \
|
||||||
if ( ex )\
|
if ( ex )\
|
||||||
@ -502,21 +436,30 @@ static void xbr3x(AVFrame *input, AVFrame *output, const uint32_t *r2y)
|
|||||||
unsigned ex2 = (PE!=PC && PB!=PC); \
|
unsigned ex2 = (PE!=PC && PB!=PC); \
|
||||||
unsigned ex3 = (PE!=PG && PD!=PG); \
|
unsigned ex3 = (PE!=PG && PD!=PG); \
|
||||||
unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
|
unsigned px = (df(PE,PF) <= df(PE,PH)) ? PF : PH; \
|
||||||
if ( ((ke<<1)<=ki) && ex3 && (ke>=(ki<<1)) && ex2 ) \
|
if (ke<<1 <= ki && ex3 && ke >= ki<<1 && ex2) { /* left-up */ \
|
||||||
{\
|
ALPHA_BLEND_192_W(E[N13], px); \
|
||||||
LEFT_UP_2(N15, N14, N11, N13, N12, N10, N7, N3, px)\
|
ALPHA_BLEND_64_W( E[N12], px); \
|
||||||
}\
|
E[N15] = E[N14] = E[N11] = px; \
|
||||||
else if ( ((ke<<1)<=ki) && ex3 ) \
|
E[N10] = E[N3] = E[N12]; \
|
||||||
{\
|
E[N7] = E[N13]; \
|
||||||
LEFT_2(N15, N14, N11, N13, N12, N10, px)\
|
} else if (ke<<1 <= ki && ex3) { /* left */ \
|
||||||
}\
|
ALPHA_BLEND_192_W(E[N11], px); \
|
||||||
else if ( (ke>=(ki<<1)) && ex2 ) \
|
ALPHA_BLEND_192_W(E[N13], px); \
|
||||||
{\
|
ALPHA_BLEND_64_W( E[N10], px); \
|
||||||
UP_2(N15, N14, N11, N3, N7, N10, px)\
|
ALPHA_BLEND_64_W( E[N12], px); \
|
||||||
}\
|
E[N14] = px; \
|
||||||
else \
|
E[N15] = px; \
|
||||||
{\
|
} else if (ke >= ki<<1 && ex2) { /* up */ \
|
||||||
DIA(N15, N14, N11, px)\
|
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)\
|
else if (e<=i)\
|
||||||
|
Loading…
x
Reference in New Issue
Block a user