Go to the source code of this file.
Defines | |
#define | READY(x) (x & Ready) |
#define | NOT_READY(x) (!(x & Ready)) |
#define | UNCHANGED(x) (x & Unchanged) |
#define | CHANGED(x) (!(x & Unchanged)) |
#define | USER_OWNED(x) (!(x & Filter_Owned)) |
#define | FILTER_OWNED(x) (x & Filter_Owned) |
#define | NOT(x) (!x) |
#define | FILL(X1, Y1, X2, Y2, DST, FV) |
#define | MASK_CONV(X1, Y1, X2, Y2, DELTA_X, DELTA_Y, SRC, DST, KERN) |
#define | MASK_CONV_BOARDER(X1, Y1, X2, Y2, DELTA_X, DELTA_Y, SRC, DST, KERN) |
#define | NORMAL_INTERMEDIATE |
#define | HORIZ_CONV(X1, Y1, X2, Y2, DELTA_X, DELTA_Y, SRC, DST, KERN) |
#define | HORIZ_CONV_BOARDER(X1, Y1, X2, Y2, DELTA_X, DELTA_Y, SRC, DST, KERN) |
#define | VERTI_CONV(X1, Y1, X2, Y2, DELTA_X, DELTA_Y, SRC, DST, KERN) |
#define | VERTI_CONV_BOARDER(X1, Y1, X2, Y2, DELTA_X, DELTA_Y, SRC, DST, KERN) |
#define | IMB_LEFT(D, C) ((D).curr_sec_start(X_Axis()) == (C).image_start(X_Axis())) |
#define | IMB_RIGHT(D, C) ((D).curr_sec_end(X_Axis()) == (C).image_end(X_Axis())) |
#define | IMB_TOP(D, C) ((D).curr_sec_end(Y_Axis()) == (C).image_end(Y_Axis())) |
#define | IMB_BOTTOM(D, C) ((D).curr_sec_start(Y_Axis()) == (C).image_start(Y_Axis())) |
#define | CONVOL_PREAMBLE(CONTAINER, DESCRIPTOR) |
#define | CALC_BORDER(B, D, C) |
#define | IMB_L (1) |
#define | IMB_T (2) |
#define | IMB_R (4) |
#define | IMB_B (8) |
#define | CHECK_START_AND_END_FILL(CONTAINER) |
#define | CHECK_START_AND_END_OPERATION(CONTAINER) |
#define | DO_PREOP(OPERATION, DESCRIPTOR, CONTAINER, SRC, DST, KERN) |
#define | DO_POSTOP(OPERATION, DESCRIPTOR, CONTAINER, SRC, DST, KERN) |
Typedefs | |
typedef unsigned int | VIPL_FILTER_STATE |
#define CALC_BORDER | ( | B, | |
D, | |||
C | |||
) |
(B) = 0; \ if (IMB_LEFT((D), (C))) (B) |= 1;\ if (IMB_TOP((D), (C))) (B) |= 2;\ if (IMB_RIGHT((D), (C))) (B) |= 4;\ if (IMB_BOTTOM((D), (C))) (B) |= 8;
Definition at line 221 of file vipl_filter_helper.h.
#define CHANGED | ( | x | ) | (!(x & Unchanged)) |
Definition at line 13 of file vipl_filter_helper.h.
#define CHECK_START_AND_END_FILL | ( | CONTAINER | ) |
if ((CONTAINER).image_start(Y_Axis()) > ycs[tmpi]){ ycs[tmpi] = (CONTAINER).image_start(Y_Axis()); }\
if ((CONTAINER).image_start(X_Axis()) > xcs[tmpi]){ xcs[tmpi] = (CONTAINER).image_start(X_Axis()); }\
if ((CONTAINER).image_start(Y_Axis()) > yce[tmpi]){ yce[tmpi] = (CONTAINER).image_start(Y_Axis()); }\
if ((CONTAINER).image_start(X_Axis()) > xce[tmpi]){ xce[tmpi] = (CONTAINER).image_start(X_Axis()); }\
if ((CONTAINER).image_end(Y_Axis()) < ycs[tmpi]){ ycs[tmpi] = (CONTAINER).image_end(Y_Axis()); }\
if ((CONTAINER).image_end(X_Axis()) < xcs[tmpi]){ xcs[tmpi] = (CONTAINER).image_end(X_Axis()); }\
if ((CONTAINER).image_end(Y_Axis()) < yce[tmpi]){ yce[tmpi] = (CONTAINER).image_end(Y_Axis()); }\
if ((CONTAINER).image_end(X_Axis()) < xce[tmpi]){ xce[tmpi] = (CONTAINER).image_end(X_Axis()); }
Definition at line 236 of file vipl_filter_helper.h.
#define CHECK_START_AND_END_OPERATION | ( | CONTAINER | ) |
if ((CONTAINER).image_start(Y_Axis()) + ibs > ycs[tmpi]){ ycs[tmpi] = (CONTAINER).image_start(Y_Axis()) +ibs; }\
if ((CONTAINER).image_start(X_Axis()) +ibs> xcs[tmpi]){ xcs[tmpi] = (CONTAINER).image_start(X_Axis())+ibs; }\
if ((CONTAINER).image_start(Y_Axis()) +ibs > yce[tmpi]){ yce[tmpi] = (CONTAINER).image_start(Y_Axis()) +ibs; }\
if ((CONTAINER).image_start(X_Axis()) +ibs > xce[tmpi]){ xce[tmpi] = (CONTAINER).image_start(X_Axis()) +ibs; }\
if ((CONTAINER).image_end(Y_Axis()) -ibs < ycs[tmpi]){ ycs[tmpi] = (CONTAINER).image_end(Y_Axis()) -ibs; }\
if ((CONTAINER).image_end(X_Axis())-ibs < xcs[tmpi]){ xcs[tmpi] = (CONTAINER).image_end(X_Axis()) -ibs; }\
if ((CONTAINER).image_end(Y_Axis())-ibs < yce[tmpi]){ yce[tmpi] = (CONTAINER).image_end(Y_Axis()) -ibs; }\
if ((CONTAINER).image_end(X_Axis())-ibs < xce[tmpi]){ xce[tmpi] = (CONTAINER).image_end(X_Axis()) -ibs; }
Definition at line 245 of file vipl_filter_helper.h.
#define CONVOL_PREAMBLE | ( | CONTAINER, | |
DESCRIPTOR | |||
) |
const vipl_section_container<DataTypeOut> &C=(CONTAINER);\ const vipl_section_descriptor<DataTypeOut> &D=(DESCRIPTOR);\ int border = 0;\ const int ibs = image_border_size();\ const int d0 = ibs;\ const int bdr = ibs;\ const DataTypeOut fv = def_fill_value();\ int xcs[4], ycs[4], xce[4], yce[4];\ int do_fill[4]; \ const int XS = D.curr_sec_start(X_Axis()), YS = D.curr_sec_start(Y_Axis());\ const int XE = D.curr_sec_end(X_Axis()), YE = D.curr_sec_end(Y_Axis());\ do_fill[0] = do_fill[1] = do_fill[2] = do_fill[3] = false
Definition at line 207 of file vipl_filter_helper.h.
#define DO_POSTOP | ( | OPERATION, | |
DESCRIPTOR, | |||
CONTAINER, | |||
SRC, | |||
DST, | |||
KERN | |||
) |
Definition at line 309 of file vipl_filter_helper.h.
#define DO_PREOP | ( | OPERATION, | |
DESCRIPTOR, | |||
CONTAINER, | |||
SRC, | |||
DST, | |||
KERN | |||
) |
Definition at line 260 of file vipl_filter_helper.h.
#define FILL | ( | X1, | |
Y1, | |||
X2, | |||
Y2, | |||
DST, | |||
FV | |||
) |
do {\ for (int y = (Y1); y < (Y2); ++y) {\ for (int x = (X1); x < (X2); ++x) {\ SET_PIXEL((DST),x, y, (FV));\ }\ }\ } while (false)
Definition at line 30 of file vipl_filter_helper.h.
#define FILTER_OWNED | ( | x | ) | (x & Filter_Owned) |
Definition at line 15 of file vipl_filter_helper.h.
#define HORIZ_CONV | ( | X1, | |
Y1, | |||
X2, | |||
Y2, | |||
DELTA_X, | |||
DELTA_Y, | |||
SRC, | |||
DST, | |||
KERN | |||
) |
do {\ vcl_clock_t ct = clock();\ KernType val;\ for (int y = ((Y1) ); y < ((Y2) ); ++y) {\ for (int x = ((X1) ); x < ((X2) ); ++x) {\ val = 0.0;\ for (int i = (KERN).kernel_start(0),j=i+x; i < (KERN).kernel_end(0); ++i) \ val += ((KERN)(i) * FGET_PIXEL((SRC),j++, y));\ FSET_PIXEL((DST),x, y, (CONVERT_TO_OUT(val)));\ }\ }\ vcl_clock_t ct2= clock();\ } while (false)
Definition at line 78 of file vipl_filter_helper.h.
#define HORIZ_CONV_BOARDER | ( | X1, | |
Y1, | |||
X2, | |||
Y2, | |||
DELTA_X, | |||
DELTA_Y, | |||
SRC, | |||
DST, | |||
KERN | |||
) |
do {\ vcl_clock_t ct = clock();\ KernType val;\ for (int y = ((Y1) ); y < ((Y2) ); ++y) {\ for (int x = ((X1) ); x < ((X2) ); ++x) {\ val = 0.0;\ for (int i = (KERN).kernel_start(0),j=i+x; i < (KERN).kernel_end(0); ++i) \ val += ((KERN)(i) * GET_PIXEL((SRC),j++, y));\ SET_PIXEL((DST),x, y, (CONVERT_TO_OUT(val)));\ }\ }\ vcl_clock_t ct2= clock();\ } while (false)
Definition at line 92 of file vipl_filter_helper.h.
#define IMB_B (8) |
Definition at line 232 of file vipl_filter_helper.h.
#define IMB_BOTTOM | ( | D, | |
C | |||
) | ((D).curr_sec_start(Y_Axis()) == (C).image_start(Y_Axis())) |
Definition at line 202 of file vipl_filter_helper.h.
#define IMB_L (1) |
Definition at line 229 of file vipl_filter_helper.h.
#define IMB_LEFT | ( | D, | |
C | |||
) | ((D).curr_sec_start(X_Axis()) == (C).image_start(X_Axis())) |
Definition at line 199 of file vipl_filter_helper.h.
#define IMB_R (4) |
Definition at line 231 of file vipl_filter_helper.h.
#define IMB_RIGHT | ( | D, | |
C | |||
) | ((D).curr_sec_end(X_Axis()) == (C).image_end(X_Axis())) |
Definition at line 200 of file vipl_filter_helper.h.
#define IMB_T (2) |
Definition at line 230 of file vipl_filter_helper.h.
#define IMB_TOP | ( | D, | |
C | |||
) | ((D).curr_sec_end(Y_Axis()) == (C).image_end(Y_Axis())) |
Definition at line 201 of file vipl_filter_helper.h.
#define MASK_CONV | ( | X1, | |
Y1, | |||
X2, | |||
Y2, | |||
DELTA_X, | |||
DELTA_Y, | |||
SRC, | |||
DST, | |||
KERN | |||
) |
do {\ KernType val;\ vcl_clock_t ct = clock(),ct1;\ for (int y = (Y1); y < (Y2); ++y)\ for (int x = (X1) ; x < (X2); ++x) {\ val = 0.0;\ int je = (KERN).y_end(); int ie = (KERN).x_end();\ for (int j = (KERN).y_start(), jj=y+j; j < je; ++j) {\ for (int i = (KERN).x_start(), ii=x+i; i < ie; ++i)\ val += ((KERN) (i, j) * FGET_PIXEL((SRC), ii++, jj));\ ++jj;\ FSET_PIXEL((DST), x, y, (CONVERT_TO_OUT(val)));\ }\ }\ ct1 = clock();\ } while (false)
Definition at line 38 of file vipl_filter_helper.h.
#define MASK_CONV_BOARDER | ( | X1, | |
Y1, | |||
X2, | |||
Y2, | |||
DELTA_X, | |||
DELTA_Y, | |||
SRC, | |||
DST, | |||
KERN | |||
) |
do {\ KernType val;\ vcl_clock_t ct = clock(),ct1;\ for (int y = (Y1); y < (Y2); ++y)\ for (int x = (X1) ; x < (X2); ++x) {\ val = 0.0;\ int je = (KERN).y_end(); int ie = (KERN).x_end();\ for (int j = (KERN).y_start(), jj=y+j; j < je; ++j) {\ for (int i = (KERN).x_start(), ii=x+i; i < ie; ++i)\ val += ((KERN) (i, j) * GET_PIXEL((SRC), ii++, jj));\ ++jj;\ SET_PIXEL((DST), x, y, (CONVERT_TO_OUT(val)));\ }\ }\ ct1 = clock();\ } while (false)
Definition at line 55 of file vipl_filter_helper.h.
#define NORMAL_INTERMEDIATE |
Definition at line 73 of file vipl_filter_helper.h.
#define NOT | ( | x | ) | (!x) |
Definition at line 16 of file vipl_filter_helper.h.
#define NOT_READY | ( | x | ) | (!(x & Ready)) |
Definition at line 11 of file vipl_filter_helper.h.
#define READY | ( | x | ) | (x & Ready) |
Definition at line 10 of file vipl_filter_helper.h.
#define UNCHANGED | ( | x | ) | (x & Unchanged) |
Definition at line 12 of file vipl_filter_helper.h.
#define USER_OWNED | ( | x | ) | (!(x & Filter_Owned)) |
Definition at line 14 of file vipl_filter_helper.h.
#define VERTI_CONV | ( | X1, | |
Y1, | |||
X2, | |||
Y2, | |||
DELTA_X, | |||
DELTA_Y, | |||
SRC, | |||
DST, | |||
KERN | |||
) |
do {\ KernType val;\ vcl_clock_t ct = clock();\ for (int x = ((X1) ); x < ((X2) ); ++x) {\ for (int y = ((Y1) ); y < ((Y2) ); ++y) {\ val = 0;\ for (int i = (KERN).kernel_start(0), j =y+i; i < (KERN).kernel_end(0); ++i)\ val += ((KERN)(i) * FGET_PIXEL((SRC),x, j++));\ FSET_PIXEL((DST),x, y, (CONVERT_TO_OUT(val)));\ }\ }\ vcl_clock_t ct2= clock();\ } while (false)
Definition at line 106 of file vipl_filter_helper.h.
#define VERTI_CONV_BOARDER | ( | X1, | |
Y1, | |||
X2, | |||
Y2, | |||
DELTA_X, | |||
DELTA_Y, | |||
SRC, | |||
DST, | |||
KERN | |||
) |
do {\ KernType val;\ vcl_clock_t ct = clock();\ for (int x = ((X1) ); x < ((X2) ); ++x) {\ for (int y = ((Y1) ); y < ((Y2) ); ++y) {\ val = 0;\ for (int i = (KERN).kernel_start(0), j =y+i; i < (KERN).kernel_end(0); ++i)\ val += ((KERN)(i) * GET_PIXEL((SRC),x, j++));\ SET_PIXEL((DST),x, y, (CONVERT_TO_OUT(val)));\ }\ }\ vcl_clock_t ct2= clock();\ } while (false)
Definition at line 120 of file vipl_filter_helper.h.
typedef unsigned int VIPL_FILTER_STATE |
Definition at line 4 of file vipl_filter_helper.h.