3 #define abs(X) (((X)>0)?(X):-(X))
5 unsigned int sad16_c( const unsigned char * const cur,
6 const unsigned char * const ref,
7 const unsigned int stride,
8 const unsigned int best_sad)
13 unsigned char const *ptr_cur = cur;
14 unsigned char const *ptr_ref = ref;
16 for (j = 0; j < 16; j++) {
17 sad += abs(ptr_cur[0] - ptr_ref[0]);
18 sad += abs(ptr_cur[1] - ptr_ref[1]);
19 sad += abs(ptr_cur[2] - ptr_ref[2]);
20 sad += abs(ptr_cur[3] - ptr_ref[3]);
21 sad += abs(ptr_cur[4] - ptr_ref[4]);
22 sad += abs(ptr_cur[5] - ptr_ref[5]);
23 sad += abs(ptr_cur[6] - ptr_ref[6]);
24 sad += abs(ptr_cur[7] - ptr_ref[7]);
25 sad += abs(ptr_cur[8] - ptr_ref[8]);
26 sad += abs(ptr_cur[9] - ptr_ref[9]);
27 sad += abs(ptr_cur[10] - ptr_ref[10]);
28 sad += abs(ptr_cur[11] - ptr_ref[11]);
29 sad += abs(ptr_cur[12] - ptr_ref[12]);
30 sad += abs(ptr_cur[13] - ptr_ref[13]);
31 sad += abs(ptr_cur[14] - ptr_ref[14]);
32 sad += abs(ptr_cur[15] - ptr_ref[15]);
47 int main(int argc, char** argv){
48 unsigned char cur[65536];
49 unsigned char ref[65536];
55 numofruns = atoi(argv[1]);
58 for (i=0;i < numofruns; i++){
59 // Reset cache. Alles andere ist unrealistisch.
60 for(ii = 0; ii<65536;ii++){
64 sum += sad16_c(cur, ref, 64, 100000);
66 printf("sum = %i\n", sum);