Commit | Line | Data |
---|---|---|
80f575fc DM |
1 | #define NUMCNTR 2000 |
2 | ||
3 | void test_contrastImg(const TestData* testdata){ | |
4 | int i; | |
5 | Field f; | |
6 | // difference between michelson and absolute differences from mean | |
7 | // is large for 100x100 at 500,300 | |
8 | f.size=128; | |
9 | f.x = 400; | |
10 | f.y = 300; | |
11 | fprintf(stderr,"********** Contrast:\n"); | |
12 | int numruns = NUMCNTR; | |
13 | double contrastC[numruns]; | |
14 | double contrastOpt[numruns]; | |
15 | int timeC, timeOpt; | |
16 | #ifdef USE_ORC | |
17 | fprintf(stderr,"********** Variance - based Contrast (with ORC):\n"); | |
18 | { | |
19 | int start = timeOfDayinMS(); | |
20 | for(i=0; i<numruns; i++){ | |
21 | contrastC[i]=contrastSubImg_variance_C(testdata->frames[0], | |
22 | &f, testdata->fi.width, testdata->fi.height); | |
23 | } | |
24 | int end = timeOfDayinMS(); | |
25 | timeC=end-start; | |
26 | fprintf(stderr,"***C time for %i runs: %i ms ****\n", numruns, timeC); | |
27 | } | |
28 | { | |
29 | int start = timeOfDayinMS(); | |
30 | for(i=0; i<numruns; i++){ | |
31 | contrastOpt[i]=contrastSubImg_variance_orc(testdata->frames[0], | |
32 | &f, testdata->fi.width, testdata->fi.height); | |
33 | } | |
34 | int end = timeOfDayinMS(); | |
35 | timeOpt=end-start; | |
36 | fprintf(stderr,"***Orc time for %i runs: %i ms ****\n", numruns, timeOpt); | |
37 | } | |
38 | fprintf(stderr,"***Speedup %3.2f\n", timeC/timeOpt); | |
39 | for(i=0; i<numruns; i++){ | |
40 | if(i==0){ | |
41 | printf("Orc contrast %3.2f, C contrast %3.2f\n",contrastOpt[i], contrastC[i]); | |
42 | } | |
43 | test_bool(contrastC[i]==contrastOpt[i]); | |
44 | } | |
45 | #endif | |
46 | fprintf(stderr,"********** Michelson Contrast (with SSE2):\n"); | |
47 | { | |
48 | int start = timeOfDayinMS(); | |
49 | for(i=0; i<numruns; i++){ | |
50 | contrastC[i]=contrastSubImg(testdata->frames[0].data[0], | |
51 | &f, testdata->fi.width, testdata->fi.height,1); | |
52 | } | |
53 | int end = timeOfDayinMS(); | |
54 | timeC=end-start; | |
55 | fprintf(stderr,"***C time for %i runs: %i ms ****\n", numruns, timeC); | |
56 | } | |
57 | #ifdef USE_SSE2 | |
58 | { | |
59 | int start = timeOfDayinMS(); | |
60 | for(i=0; i<numruns; i++){ | |
61 | contrastOpt[i]=contrastSubImg1_SSE(testdata->frames[0].data[0], | |
62 | &f, testdata->fi.width, testdata->fi.height); | |
63 | } | |
64 | int end = timeOfDayinMS(); | |
65 | timeOpt=end-start; | |
66 | fprintf(stderr,"***SSE2 time for %i runs: %i ms ****\n", numruns, timeOpt); | |
67 | } | |
68 | fprintf(stderr,"***Speedup %3.2f\n", (float)timeC/(float)timeOpt); | |
69 | for(i=0; i<numruns; i++){ | |
70 | if(i==0){ | |
71 | printf("SSE2 contrast %3.2f, C contrast %3.2f\n",contrastOpt[i], contrastC[i]); | |
72 | } | |
73 | test_bool(contrastC[i]==contrastOpt[i]); | |
74 | } | |
75 | #endif | |
76 | } |