static void highbd_8_variance(const uint8_t *a8, int a_stride, const uint8_t *b8, int b_stride, int w, int h, uint32_t *sse, int *sum) { uint64_t sse_long = 0; highbd_variance64(a8, a_stride, b8, b_stride, w, h, &sse_long, sum); *sse = (uint32_t)sse_long; }
static void highbd_12_variance(const uint8_t *a8, int a_stride, const uint8_t *b8, int b_stride, int w, int h, uint32_t *sse, int *sum) { uint64_t sse_long = 0; highbd_variance64(a8, a_stride, b8, b_stride, w, h, &sse_long, sum); *sse = (uint32_t)ROUND_ZERO_POWER_OF_TWO(sse_long, 8); *sum = ROUND_ZERO_POWER_OF_TWO(*sum, 4); }
static void highbd_10_variance(const uint8_t *a8, int a_stride, const uint8_t *b8, int b_stride, int w, int h, uint32_t *sse, int *sum) { uint64_t sse_long = 0; int64_t sum_long = 0; highbd_variance64(a8, a_stride, b8, b_stride, w, h, &sse_long, &sum_long); *sse = (uint32_t)ROUND_POWER_OF_TWO(sse_long, 4); *sum = (int)ROUND_POWER_OF_TWO(sum_long, 2); }
void highbd_12_variance(const uint8_t *a8, int a_stride, const uint8_t *b8, int b_stride, int w, int h, unsigned int *sse, int *sum) { uint64_t sse_long = 0; uint64_t sum_long = 0; highbd_variance64(a8, a_stride, b8, b_stride, w, h, &sse_long, &sum_long); *sum = (int)ROUND_POWER_OF_TWO(sum_long, 4); *sse = (unsigned int)ROUND_POWER_OF_TWO(sse_long, 8); }
void highbd_variance(const uint8_t *a8, int a_stride, const uint8_t *b8, int b_stride, int w, int h, unsigned int *sse, int *sum) { uint64_t sse_long = 0; uint64_t sum_long = 0; highbd_variance64(a8, a_stride, b8, b_stride, w, h, &sse_long, &sum_long); *sse = (unsigned int)sse_long; *sum = (int)sum_long; }