00001 #ifndef CVD_ASSEMBLY_H 00002 #define CVD_ASSEMBLY_H 00003 00004 #include <sys/types.h> 00005 00006 namespace CVD{ 00007 namespace Internal { 00008 namespace Assembly { 00009 extern "C" { 00010 void rgb_to_gray(const unsigned char* in, unsigned char* out, int size, int wr, int wg, int wb); 00011 void yuv420p_to_rgb(const unsigned char* yuv, unsigned char* rgb, int width, int height); 00012 void yuv422_to_rgb(const unsigned char* yuv, unsigned char* rgb, int size); 00013 void yuv422_to_grey(const unsigned char* yuv, unsigned char* gray, int size); 00014 00015 void halfsample(const unsigned char* in, unsigned char* out, int width, int height); 00016 00017 void byte_to_short_difference(const unsigned char* a, const unsigned char* b, short* c, unsigned int size); 00018 void short_difference(const short* a, const short* b, short* c, unsigned int size); 00019 void int_difference(const int32_t* a, const int32_t* b, int32_t* c, unsigned int size); 00020 void float_difference(const float* a, const float* b, float* c, unsigned int size); 00021 00022 void float_assign_mul(const float* a, float f, float* c, unsigned long size); 00023 void float_add_mul_add(const float* a, const float* b, float f, float* c, unsigned long size); 00024 void float_add_mul_add_unaligned(const float* a, const float* b, float f, float* c, unsigned long size); 00025 00026 float float_innerproduct(const float* a, const float* b, int w, int h, int stride_a, int stride_b); 00027 } 00028 } 00029 } 00030 } 00031 00032 #endif