#include #include "ipp.h" int test(Ipp32s start_val, int num_loops) { IppStatus status; int srcStep, dstStep; IppiSize roi; roi.width = 1024; roi.height = 1024; Ipp8u* pSrc = ippiMalloc_8u_C1(roi.width, roi.height, &srcStep); Ipp32s* pDst = ippiMalloc_32s_C1(roi.width + 1, roi.height + 1, &dstStep); ippiSet_8u_C1R(0, pSrc, srcStep, roi); ippiSet_8u_C1R(start_val, pSrc, srcStep, roi); status = ippiIntegral_8u32s_C1R(pSrc, srcStep, pDst, dstStep, roi, 1); //printf("pDst[0]=%d, pDst[1]=%d\n", pDst[0], pDst[1]); __int64 start, finish; double ippcpe; int n; start = __rdtsc(); for (n = 0; n < num_loops; n++) { ippiIntegral_8u32s_C1R(pSrc, srcStep, pDst, dstStep, roi, 1); } finish = __rdtsc(); ippcpe = ((double)finish - (double)start) / (double)((double)((double)roi.width*roi.height)*num_loops); printf("%d x %d start_val=%d, num_loops=%d, cpe= %.4f\n", roi.width, roi.height, start_val, num_loops, ippcpe); return 0; } int main() { test(0, 1); test(1, 1); test(0, 10); test(1, 10); test(0, 1000); test(1, 1000); }