Ignore:
Timestamp:
Jul 13, 2017, 11:01:58 AM (7 years ago)
Author:
meunier
Message:
  • Mise à jour NR2 et Rosenfeld
File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/applications/rosenfeld/nrc2/include/nrmem2x.h

    r772 r826  
    1212#define _NRMEM2X_H_
    1313
    14 #ifdef __cplusplus
    15 #ifdef PRAGMA_VERBOSE
    16 #pragma message ("C++")
    17 #endif
    18 extern "C" {
    19 #endif
    2014
    2115/* ------------------------------------------ */
     
    2721/* ------------------------------------------ */
    2822
    29 IMAGE_EXPORT(void) reset_endline_bmatrix   (byte   **m, long nrl, long nrh, long ncl, long nch);
    30 IMAGE_EXPORT(void) reset_endline_i16matrix (int16  **m, long nrl, long nrh, long ncl, long nch);
    31 IMAGE_EXPORT(void) reset_endline_ui16matrix(uint16 **m, long nrl, long nrh, long ncl, long nch);
    32 IMAGE_EXPORT(void) reset_endline_imatrix   (int    **m, long nrl, long nrh, long ncl, long nch);
    33 IMAGE_EXPORT(void) reset_endline_i32matrix (int32  **m, long nrl, long nrh, long ncl, long nch);
    34 IMAGE_EXPORT(void) reset_endline_ui32matrix(uint32 **m, long nrl, long nrh, long ncl, long nch);
    35 IMAGE_EXPORT(void) reset_endline_i64matrix (int64  **m, long nrl, long nrh, long ncl, long nch);
     23#define reset_endline_type_matrix(t) \
     24void short_name(t,reset_endline_,matrix)(t ** m, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch); \
     25void short_name(t,endline_,matrix)(t ** m, int32_t i, int32_t l); \
     26void short_name(t,endline0_,matrix)(t ** m, int32_t i, int32_t l, int32_t ncl); \
     27void short_name(t,endline1_,matrix)(t ** m, int32_t i, int32_t l, int32_t ncl);
    3628
    37 IMAGE_EXPORT(void) endline_bmatrix   (byte   **m, long i, long l);
    38 IMAGE_EXPORT(void) endline_i16matrix (int16  **m, long i, long l);
    39 IMAGE_EXPORT(void) endline_ui16matrix(uint16 **m, long i, long l);
    40 IMAGE_EXPORT(void) endline_imatrix   (int    **m, long i, long l);
    41 IMAGE_EXPORT(void) endline_i32matrix (int32  **m, long i, long l);
    42 IMAGE_EXPORT(void) endline_ui32matrix(uint32 **m, long i, long l);
    43 IMAGE_EXPORT(void) endline_i64matrix (int64  **m, long i, long l);
     29reset_endline_type_matrix(int8_t);
     30reset_endline_type_matrix(uint8_t);
     31reset_endline_type_matrix(int16_t);
     32reset_endline_type_matrix(uint16_t);
     33reset_endline_type_matrix(int32_t);
     34reset_endline_type_matrix(uint32_t);
     35reset_endline_type_matrix(int64_t);
     36reset_endline_type_matrix(uint64_t);
    4437
    45 IMAGE_EXPORT(void) endline0_bmatrix   (byte   **m, long i, long l, long ncl);
    46 IMAGE_EXPORT(void) endline0_i16matrix (int16  **m, long i, long l, long ncl);
    47 IMAGE_EXPORT(void) endline0_ui16matrix(uint16 **m, long i, long l, long ncl);
    48 IMAGE_EXPORT(void) endline0_imatrix   (int    **m, long i, long l, long ncl);
    49 IMAGE_EXPORT(void) endline0_i32matrix (int32  **m, long i, long l, long ncl);
    50 IMAGE_EXPORT(void) endline0_ui32matrix(uint32 **m, long i, long l, long ncl);
    51 IMAGE_EXPORT(void) endline0_i64matrix (int64  **m, long i, long l, long ncl);
    5238
    53 IMAGE_EXPORT(void) endline1_bmatrix   (byte   **m, long i, long l, long ncl);
    54 IMAGE_EXPORT(void) endline1_i16matrix (int16  **m, long i, long l, long ncl);
    55 IMAGE_EXPORT(void) endline1_ui16matrix(uint16 **m, long i, long l, long ncl);
    56 IMAGE_EXPORT(void) endline1_imatrix   (int    **m, long i, long l, long ncl);
    57 IMAGE_EXPORT(void) endline1_i32matrix (int32  **m, long i, long l, long ncl);
    58 IMAGE_EXPORT(void) endline1_ui32matrix(uint32 **m, long i, long l, long ncl);
    59 IMAGE_EXPORT(void) endline1_i64matrix (int64  **m, long i, long l, long ncl);
     39#undef resize_type_matrix
     40#define resize_type_matrix(t) \
     41void short_name(t,resize_,matrix)(t ** m, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch);
    6042
    61 IMAGE_EXPORT(void) resize_si16Pmatrix(si16Point **m, long nrl, long nrh, long ncl, long nch);
    62 IMAGE_EXPORT(void) resize_ui16Pmatrix(ui16Point **m, long nrl, long nrh, long ncl, long nch);
    63 IMAGE_EXPORT(void) resize_si32Pmatrix(si32Point **m, long nrl, long nrh, long ncl, long nch);
    64 IMAGE_EXPORT(void) resize_ui32Pmatrix(ui32Point **m, long nrl, long nrh, long ncl, long nch);
    65 IMAGE_EXPORT(void) resize_f32Pmatrix(f32Point   **m, long nrl, long nrh, long ncl, long nch);
     43resize_type_matrix(si16Point);
     44resize_type_matrix(ui16Point);
     45resize_type_matrix(si32Point);
     46resize_type_matrix(ui32Point);
     47resize_type_matrix(f32Point);
     48resize_type_matrix(si16Triplet);
     49resize_type_matrix(ui16Triplet);
     50resize_type_matrix(si32Triplet);
     51resize_type_matrix(ui32Triplet);
     52resize_type_matrix(f32Triplet);
    6653
    67 // Triplet Matrix
    68 IMAGE_EXPORT(void) resize_si16Tmatrix(si16Triplet **m, long nrl, long nrh, long ncl, long nch);
    69 IMAGE_EXPORT(void) resize_ui16Tmatrix(ui16Triplet **m, long nrl, long nrh, long ncl, long nch);
    70 IMAGE_EXPORT(void) resize_si32Tmatrix(si32Triplet **m, long nrl, long nrh, long ncl, long nch);
    71 IMAGE_EXPORT(void) resize_ui32Tmatrix(ui32Triplet **m, long nrl, long nrh, long ncl, long nch);
    72 IMAGE_EXPORT(void) resize_f32Tmatrix (f32Triplet  **m, long nrl, long nrh, long ncl, long nch);
     54
     55#define type_matrix_reverse(t) \
     56void short_name(t,,matrix_reverse)(t ** m, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch);
     57
     58type_matrix_reverse(int8_t);
     59type_matrix_reverse(uint8_t);
     60type_matrix_reverse(int16_t);
     61type_matrix_reverse(uint16_t);
     62type_matrix_reverse(int32_t);
     63type_matrix_reverse(uint32_t);
     64type_matrix_reverse(int64_t);
     65type_matrix_reverse(uint64_t);
     66type_matrix_reverse(float);
     67type_matrix_reverse(double);
    7368
    7469
    7570
     71#define desinterlace_type_matrix(t) \
     72void short_name(t,desinterlace_,matrix)(t ** S, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch, t ** D0, t ** D1);
    7673
    77 /*
    78  * --------------
    79  * matrix_reverse
    80  * --------------
    81  */
     74desinterlace_type_matrix(int8_t);
     75desinterlace_type_matrix(uint8_t);
     76desinterlace_type_matrix(int16_t);
     77desinterlace_type_matrix(uint16_t);
     78desinterlace_type_matrix(int32_t);
     79desinterlace_type_matrix(uint32_t);
     80desinterlace_type_matrix(int64_t);
     81desinterlace_type_matrix(uint64_t);
     82desinterlace_type_matrix(float);
     83desinterlace_type_matrix(double);
     84desinterlace_type_matrix(rgb8);
     85desinterlace_type_matrix(rgbx8);
    8286
    83 //IMAGE_EXPORT(void) bmatrix_reverse (byte   **m, long nrl, long nrh, long ncl, long nch);
    84 //IMAGE_EXPORT(void) si16matrix_reverse (sint16   **m, long nrl, long nrh, long ncl, long nch);
    85 //IMAGE_EXPORT(void) usmatrix_reverse(uint16 **m, long nrl, long nrh, long ncl, long nch);
    8687
    87 /* copie */
    88 IMAGE_EXPORT(void) copyc_bmatrix(byte **src,long nrl,long nrh,long ncl, long nch, byte **cond, byte c, byte **dst);
     88#define interlace_type_matrix(t) \
     89void short_name(t,interlace_,matrix)(t ** S0, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch, t ** S1, t ** D);
    8990
    90 IMAGE_EXPORT(void) complete_border_bmatrix (byte **m, long nrl,long nrh,long ncl, long nch, long n);
    91 IMAGE_EXPORT(void) complete_border1_bmatrix(byte **m, long nrl,long nrh,long ncl, long nch);
    92 IMAGE_EXPORT(void) complete_border2_bmatrix(byte **m, long nrl,long nrh,long ncl, long nch);
     91interlace_type_matrix(int8_t);
     92interlace_type_matrix(uint8_t);
     93interlace_type_matrix(int16_t);
     94interlace_type_matrix(uint16_t);
     95interlace_type_matrix(int32_t);
     96interlace_type_matrix(uint32_t);
     97interlace_type_matrix(int64_t);
     98interlace_type_matrix(uint64_t);
     99interlace_type_matrix(float);
     100interlace_type_matrix(double);
     101interlace_type_matrix(rgb8);
     102interlace_type_matrix(rgbx8);
    93103
    94 IMAGE_EXPORT(void) copy1c_bmatrix    (byte    **X, long nc, byte    **Y, long nrl, long nrh, long ncl, long nch);
    95 IMAGE_EXPORT(void) copy1c_si16matrix (sint16  **X, long nc, sint16  **Y, long nrl, long nrh, long ncl, long nch);
    96 IMAGE_EXPORT(void) copy1c_ui16matrix (uint16  **X, long nc, uint16  **Y, long nrl, long nrh, long ncl, long nch);
    97 IMAGE_EXPORT(void) copy1c_si32matrix (sint32  **X, long nc, sint32  **Y, long nrl, long nrh, long ncl, long nch);
    98 IMAGE_EXPORT(void) copy1c_ui32matrix (uint32  **X, long nc, uint32  **Y, long nrl, long nrh, long ncl, long nch);
    99 IMAGE_EXPORT(void) copy1c_f32matrix  (float32 **X, long nc, float32 **Y, long nrl, long nrh, long ncl, long nch);
    100 IMAGE_EXPORT(void) copy1c_f64matrix  (float64 **X, long nc, float64 **Y, long nrl, long nrh, long ncl, long nch);
    101 IMAGE_EXPORT(void) copy1c_rgb8matrix (rgb8    **X, long nc, rgb8    **Y, long nrl, long nrh, long ncl, long nch);
    102 IMAGE_EXPORT(void) copy1c_rgbx8matrix(rgbx8   **X, long nc, rgbx8   **Y, long nrl, long nrh, long ncl, long nch);
     104
     105#define copyc_type_matrix(t) \
     106void short_name(t,copyc_,matrix)(t ** src, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch, t ** cond, t c, t ** dst) \
    103107
    104108/*
     
    106110 * dst(i,j) = src(i,j) si cond(i,j) == c
    107111 */
    108 /*
    109 IMAGE_EXPORT(void) copy1r_bmatrix    (byte   **X, long nr, byte   **Y, long nrl, long nrh, long ncl, long nch);
    110 IMAGE_EXPORT(void) copy1r_smatrix    (sint16   **X, long nr, sint16   **Y, long nrl, long nrh, long ncl, long nch);
    111 IMAGE_EXPORT(void) copy1r_usmatrix   (uint16 **X, long nr, uint16 **Y, long nrl, long nrh, long ncl, long nch);
    112 IMAGE_EXPORT(void) copy1r_imatrix    (int    **X, long nr, int    **Y, long nrl, long nrh, long ncl, long nch);
    113 IMAGE_EXPORT(void) copy1r_uimatrix   (uint   **X, long nr, uint   **Y, long nrl, long nrh, long ncl, long nch);
    114 IMAGE_EXPORT(void) copy1r_matrix     (float  **X, long nr, float  **Y, long nrl, long nrh, long ncl, long nch);
    115 IMAGE_EXPORT(void) copy1r_dmatrix    (double **X, long nr, double **Y, long nrl, long nrh, long ncl, long nch);
    116 IMAGE_EXPORT(void) copy1r_rgb8matrix (rgb8   **X, long nr, rgb8   **Y, long nrl, long nrh, long ncl, long nch);
    117 IMAGE_EXPORT(void) copy1r_rgbx8matrix(rgbx8  **X, long nr, rgbx8  **Y, long nrl, long nrh, long ncl, long nch);
    118112
    119 IMAGE_EXPORT(void) copy_bmatrix    (byte   **m1, long nrl1,long nrh1,long ncl1, long nch1, byte   **m2, long nrl2, long nrh2, long ncl2, long nch2);
    120 IMAGE_EXPORT(void) copy_smatrix    (sint16   **m1, long nrl1,long nrh1,long ncl1, long nch1, sint16   **m2, long nrl2, long nrh2, long ncl2, long nch2);
    121 IMAGE_EXPORT(void) copy_usmatrix   (uint16 **m1, long nrl1,long nrh1,long ncl1, long nch1, uint16 **m2, long nrl2, long nrh2, long ncl2, long nch2);
    122 IMAGE_EXPORT(void) copy_imatrix    (int    **m1, long nrl1,long nrh1,long ncl1, long nch1, int    **m2, long nrl2, long nrh2, long ncl2, long nch2);
    123 IMAGE_EXPORT(void) copy_uimatrix   (uint   **m1, long nrl1,long nrh1,long ncl1, long nch1, uint   **m2, long nrl2, long nrh2, long ncl2, long nch2);
    124 IMAGE_EXPORT(void) copy_matrix     (float  **m1, long nrl1,long nrh1,long ncl1, long nch1, float  **m2, long nrl2, long nrh2, long ncl2, long nch2);
    125 IMAGE_EXPORT(void) copy_dmatrix    (double **m1, long nrl1,long nrh1,long ncl1, long nch1, double **m2, long nrl2, long nrh2, long ncl2, long nch2);
    126 IMAGE_EXPORT(void) copy_rgb8matrix (rgb8   **m1, long nrl1,long nrh1,long ncl1, long nch1, rgb8   **m2, long nrl2, long nrh2, long ncl2, long nch2);
    127 IMAGE_EXPORT(void) copy_rgbx8matrix(rgbx8  **m1, long nrl1,long nrh1,long ncl1, long nch1, rgbx8  **m2, long nrl2, long nrh2, long ncl2, long nch2);
    128 
    129 IMAGE_EXPORT(void) copy_sub_bmatrix(byte **src, long nrl,long nrh,long ncl, long nch, byte **dst);
    130 
    131 IMAGE_EXPORT(void) extract_bmatrix (byte   **src, long nrl,long nrh,long ncl, long nch, byte   **dst);
    132 IMAGE_EXPORT(void) extract_smatrix (sint16   **src, long nrl,long nrh,long ncl, long nch, sint16   **dst);
    133 IMAGE_EXPORT(void) extract_usmatrix(uint16 **src, long nrl,long nrh,long ncl, long nch, uint16 **dst);
    134 IMAGE_EXPORT(void) extract_imatrix (int    **src, long nrl,long nrh,long ncl, long nch, int    **dst);
    135 IMAGE_EXPORT(void) extract_uimatrix(uint   **src, long nrl,long nrh,long ncl, long nch, uint   **dst);
    136 IMAGE_EXPORT(void) extract_matrix  (float  **src, long nrl,long nrh,long ncl, long nch, float  **dst);
    137 IMAGE_EXPORT(void) extract_dmatrix (double **src, long nrl,long nrh,long ncl, long nch, double **dst);
    138 */
    139 IMAGE_EXPORT(void) copy_center_bmatrix(byte **src, long nrl0,long nrh0,long ncl0, long nch0, byte **dst, long nrl1,long nrh1,long ncl1, long nch1);
    140 
    141 IMAGE_EXPORT(void) copy_sub_imatrix(int  **src, long nrl,long nrh,long ncl, long nch, int **dst);
    142 
    143 IMAGE_EXPORT(void) copy_sub_imatrix_index(int **src, long nrl,long nrh, long ncl, long nch, int **dst,int *index);
    144 
    145 /* --------------------- */
    146 /* --- De-Interleave --- */
    147 /* --------------------- */
    148 
    149 IMAGE_EXPORT(void) desinterlace_bmatrix   (byte **S, long nrl, long nrh, long ncl, long nch, byte **D0, byte **D1);
    150 IMAGE_EXPORT(void) desinterlace_rgb8matrix(rgb8 **S, long nrl, long nrh, long ncl, long nch, rgb8 **D0, rgb8 **D1);
    151 
    152 IMAGE_EXPORT(void) interlace_bmatrix   (byte **S0, long nrl, long nrh, long ncl, long nch, byte **S1, byte **D);
    153 IMAGE_EXPORT(void) interlace_rgb8matrix(rgb8 **S0, long nrl, long nrh, long ncl, long nch, rgb8 **S1, rgb8 **D);
     113copyc_type_matrix(int8_t);
     114copyc_type_matrix(uint8_t);
     115copyc_type_matrix(int16_t);
     116copyc_type_matrix(uint16_t);
     117copyc_type_matrix(int32_t);
     118copyc_type_matrix(uint32_t);
     119copyc_type_matrix(int64_t);
     120copyc_type_matrix(uint64_t);
     121copyc_type_matrix(float);
     122copyc_type_matrix(double);
     123copyc_type_matrix(rgb8);
     124copyc_type_matrix(rgbx8);
    154125
    155126
    156 #ifdef __cplusplus
    157 }
    158 #endif
     127#define complete_border_type_matrix(t) \
     128void short_name(t,complete_border_,matrix)(t ** m, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch, int32_t n); \
     129void short_name(t,complete_border1_,matrix)(t ** m, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch); \
     130void short_name(t,complete_border2_,matrix)(t ** m, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch);
    159131
    160 #else
    161 //#pragma message(" Warning : attemp to re-include nrmem2x.h")
     132complete_border_type_matrix(int8_t);
     133complete_border_type_matrix(uint8_t);
     134complete_border_type_matrix(int16_t);
     135complete_border_type_matrix(uint16_t);
     136complete_border_type_matrix(int32_t);
     137complete_border_type_matrix(uint32_t);
     138complete_border_type_matrix(int64_t);
     139complete_border_type_matrix(uint64_t);
     140complete_border_type_matrix(float);
     141complete_border_type_matrix(double);
     142complete_border_type_matrix(rgb8);
     143complete_border_type_matrix(rgbx8);
     144
     145
     146#define copy1c_type_matrix(t) \
     147void short_name(t,copy1c_,matrix)(t ** X, int32_t nc, t ** Y, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch); \
     148void short_name(t,copy1r_,matrix)(t ** X, int32_t nr, t ** Y, int32_t nrl, int32_t nrh, int32_t ncl, int32_t nch);
     149
     150copy1c_type_matrix(int8_t);
     151copy1c_type_matrix(uint8_t);
     152copy1c_type_matrix(int16_t);
     153copy1c_type_matrix(uint16_t);
     154copy1c_type_matrix(int32_t);
     155copy1c_type_matrix(uint32_t);
     156copy1c_type_matrix(int64_t);
     157copy1c_type_matrix(uint64_t);
     158copy1c_type_matrix(float);
     159copy1c_type_matrix(double);
     160copy1c_type_matrix(rgb8);
     161copy1c_type_matrix(rgbx8);
     162
     163
    162164#endif /* _NRMEM2X_H_ */
     165
Note: See TracChangeset for help on using the changeset viewer.