Imported Debian version 1.0~trusty
[deb_vid.stab.git] / tests / test_contrast.c
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 }