* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
+#include <assert.h>
#include <emmintrin.h> // SSE2
#include "./aom_config.h"
}
}
-unsigned int aom_variance4x4_sse2(const unsigned char *src, int src_stride,
- const unsigned char *ref, int ref_stride,
+unsigned int aom_variance4x4_sse2(const uint8_t *src, int src_stride,
+ const uint8_t *ref, int ref_stride,
unsigned int *sse) {
int sum;
get4x4var_sse2(src, src_stride, ref, ref_stride, sse, &sum);
+ assert(sum <= 255 * 4 * 4);
+ assert(sum >= -255 * 4 * 4);
return *sse - ((sum * sum) >> 4);
}
int sum;
variance_sse2(src, src_stride, ref, ref_stride, 8, 4, sse, &sum,
get4x4var_sse2, 4);
+ assert(sum <= 255 * 8 * 4);
+ assert(sum >= -255 * 8 * 4);
return *sse - ((sum * sum) >> 5);
}
int sum;
variance_sse2(src, src_stride, ref, ref_stride, 4, 8, sse, &sum,
get4x4var_sse2, 4);
+ assert(sum <= 255 * 8 * 4);
+ assert(sum >= -255 * 8 * 4);
return *sse - ((sum * sum) >> 5);
}
unsigned int *sse) {
int sum;
aom_get8x8var_sse2(src, src_stride, ref, ref_stride, sse, &sum);
+ assert(sum <= 255 * 8 * 8);
+ assert(sum >= -255 * 8 * 8);
return *sse - ((sum * sum) >> 6);
}
int sum;
variance_sse2(src, src_stride, ref, ref_stride, 16, 8, sse, &sum,
aom_get8x8var_sse2, 8);
+ assert(sum <= 255 * 16 * 8);
+ assert(sum >= -255 * 16 * 8);
return *sse - ((sum * sum) >> 7);
}
int sum;
variance_sse2(src, src_stride, ref, ref_stride, 8, 16, sse, &sum,
aom_get8x8var_sse2, 8);
+ assert(sum <= 255 * 16 * 8);
+ assert(sum >= -255 * 16 * 8);
return *sse - ((sum * sum) >> 7);
}
unsigned int *sse) {
int sum;
aom_get16x16var_sse2(src, src_stride, ref, ref_stride, sse, &sum);
- return *sse - (((uint32_t)((int64_t)sum * sum)) >> 8);
+ assert(sum <= 255 * 16 * 16);
+ assert(sum >= -255 * 16 * 16);
+ return *sse - ((uint32_t)((int64_t)sum * sum) >> 8);
}
unsigned int aom_variance32x32_sse2(const uint8_t *src, int src_stride,
int sum;
variance_sse2(src, src_stride, ref, ref_stride, 32, 32, sse, &sum,
aom_get16x16var_sse2, 16);
+ assert(sum <= 255 * 32 * 32);
+ assert(sum >= -255 * 32 * 32);
return *sse - (((int64_t)sum * sum) >> 10);
}
int sum;
variance_sse2(src, src_stride, ref, ref_stride, 32, 16, sse, &sum,
aom_get16x16var_sse2, 16);
+ assert(sum <= 255 * 32 * 16);
+ assert(sum >= -255 * 32 * 16);
return *sse - (((int64_t)sum * sum) >> 9);
}
int sum;
variance_sse2(src, src_stride, ref, ref_stride, 16, 32, sse, &sum,
aom_get16x16var_sse2, 16);
+ assert(sum <= 255 * 32 * 16);
+ assert(sum >= -255 * 32 * 16);
return *sse - (((int64_t)sum * sum) >> 9);
}
int sum;
variance_sse2(src, src_stride, ref, ref_stride, 64, 64, sse, &sum,
aom_get16x16var_sse2, 16);
+ assert(sum <= 255 * 64 * 64);
+ assert(sum >= -255 * 64 * 64);
return *sse - (((int64_t)sum * sum) >> 12);
}
int sum;
variance_sse2(src, src_stride, ref, ref_stride, 64, 32, sse, &sum,
aom_get16x16var_sse2, 16);
+ assert(sum <= 255 * 64 * 32);
+ assert(sum >= -255 * 64 * 32);
return *sse - (((int64_t)sum * sum) >> 11);
}
int sum;
variance_sse2(src, src_stride, ref, ref_stride, 32, 64, sse, &sum,
aom_get16x16var_sse2, 16);
+ assert(sum <= 255 * 64 * 32);
+ assert(sum >= -255 * 64 * 32);
return *sse - (((int64_t)sum * sum) >> 11);
}