25 #include <emmintrin.h>
26 #include <pmmintrin.h>
35 void integral_image(
const uint8_t* in, int32_t* out,
int w,
int h );
36 void unpack_8bit_to_16bit(
const __m128i a, __m128i& b0, __m128i& b1 );
37 void pack_16bit_to_8bit_saturate(
const __m128i a0,
const __m128i a1, __m128i& b );
41 void convolve_14641_row_5x5_16bit(
const int16_t* in, uint8_t* out,
int w,
int h );
46 void convolve_12021_row_5x5_16bit(
const int16_t* in, uint8_t* out,
int w,
int h );
51 void convolve_121_row_3x3_16bit(
const int16_t* in, uint8_t* out,
int w,
int h );
56 void convolve_101_row_3x3_16bit(
const int16_t* in, uint8_t* out,
int w,
int h );
58 void convolve_cols_5x5(
const unsigned char* in, int16_t* out_v, int16_t* out_h,
int w,
int h );
60 void convolve_col_p1p1p0m1m1_5x5(
const unsigned char* in, int16_t* out,
int w,
int h );
62 void convolve_row_p1p1p0m1m1_5x5(
const int16_t* in, int16_t* out,
int w,
int h );
64 void convolve_cols_3x3(
const unsigned char* in, int16_t* out_v, int16_t* out_h,
int w,
int h );
67 void sobel3x3(
const uint8_t* in, uint8_t* out_v, uint8_t* out_h,
int w,
int h );
69 void sobel5x5(
const uint8_t* in, uint8_t* out_v, uint8_t* out_h,
int w,
int h );
76 void checkerboard5x5(
const uint8_t* in, int16_t* out,
int w,
int h );
83 void blob5x5(
const uint8_t* in, int16_t* out,
int w,
int h );