An error occurred while loading the file. Please try again.
-
Ronald S. Bultje authored
Makes first 50 frames of bus @ 1500kbps encode from 3min22.7 to 3min18.2, i.e. 2.3% faster. In addition, use the sub_pixel_avg functions to calc the variance of the averaging predictor. This is slightly suboptimal because the function is subpixel-position-aware, but it will (at least for the SSE2 version) not actually use a bilinear filter for a full-pixel position, thus leading to approximately the same performance compared to if we implemented an actual average-aware full-pixel variance function. That gains another 0.3 seconds (i.e. encode time goes to 3min17.4), thus leading to a total gain of 2.7%. Change-Id: I3f059d2b04243921868cfed2568d4fa65d7b5acd
c24d9223
/*
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include <stdlib.h>
#include "vp9/common/vp9_sadmxn.h"
#include "vp9/encoder/vp9_variance.h"
#include "./vpx_config.h"
#include "vpx/vpx_integer.h"
#include "./vp9_rtcd.h"
#define sad_mxn_func(m, n) \
unsigned int vp9_sad##m##x##n##_c(const uint8_t *src_ptr, \
int src_stride, \
const uint8_t *ref_ptr, \
int ref_stride, \
unsigned int max_sad) { \
return sad_mx_n_c(src_ptr, src_stride, ref_ptr, ref_stride, m, n); \
} \
unsigned int vp9_sad##m##x##n##_avg_c(const uint8_t *src_ptr, \
int src_stride, \
const uint8_t *ref_ptr, \
int ref_stride, \
const uint8_t *second_pred, \
unsigned int max_sad) { \
uint8_t comp_pred[m * n]; \
comp_avg_pred(comp_pred, second_pred, m, n, ref_ptr, ref_stride); \
return sad_mx_n_c(src_ptr, src_stride, comp_pred, m, m, n); \
}
sad_mxn_func(64, 64)
sad_mxn_func(64, 32)
sad_mxn_func(32, 64)
sad_mxn_func(32, 32)
sad_mxn_func(32, 16)
sad_mxn_func(16, 32)
sad_mxn_func(16, 16)
sad_mxn_func(16, 8)
sad_mxn_func(8, 16)
sad_mxn_func(8, 8)
sad_mxn_func(8, 4)
sad_mxn_func(4, 8)
sad_mxn_func(4, 4)
void vp9_sad64x32x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad64x32(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad64x32(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad64x32(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad64x32(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad32x64x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
unsigned int *sad_array) {
sad_array[0] = vp9_sad32x64(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad32x64(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad32x64(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad32x64(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad32x16x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad32x16(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad32x16(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad32x16(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad32x16(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad16x32x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad16x32(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad16x32(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad16x32(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad16x32(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad64x64x3_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad64x64(src_ptr, src_stride, ref_ptr, ref_stride,
0x7fffffff);
sad_array[1] = vp9_sad64x64(src_ptr, src_stride, ref_ptr + 1, ref_stride,
0x7fffffff);
sad_array[2] = vp9_sad64x64(src_ptr, src_stride, ref_ptr + 2, ref_stride,
0x7fffffff);
}
void vp9_sad32x32x3_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr, ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr + 1, ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr + 2, ref_stride, 0x7fffffff);
}
void vp9_sad64x64x8_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr, ref_stride,
0x7fffffff);
sad_array[1] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr + 1, ref_stride,
0x7fffffff);
sad_array[2] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr + 2, ref_stride,
0x7fffffff);
sad_array[3] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr + 3, ref_stride,
0x7fffffff);
sad_array[4] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr + 4, ref_stride,
0x7fffffff);
sad_array[5] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr + 5, ref_stride,
0x7fffffff);
sad_array[6] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr + 6, ref_stride,
0x7fffffff);
sad_array[7] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr + 7, ref_stride,
0x7fffffff);
}
void vp9_sad32x32x8_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr, ref_stride,
0x7fffffff);
sad_array[1] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr + 1, ref_stride,
0x7fffffff);
sad_array[2] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr + 2, ref_stride,
0x7fffffff);
sad_array[3] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr + 3, ref_stride,
0x7fffffff);
sad_array[4] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr + 4, ref_stride,
0x7fffffff);
sad_array[5] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr + 5, ref_stride,
0x7fffffff);
sad_array[6] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr + 6, ref_stride,
0x7fffffff);
sad_array[7] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr + 7, ref_stride,
0x7fffffff);
}
void vp9_sad16x16x3_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr, ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr + 1, ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr + 2, ref_stride, 0x7fffffff);
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
}
void vp9_sad16x16x8_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
uint32_t *sad_array) {
sad_array[0] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr, ref_stride,
0x7fffffff);
sad_array[1] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr + 1, ref_stride,
0x7fffffff);
sad_array[2] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr + 2, ref_stride,
0x7fffffff);
sad_array[3] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr + 3, ref_stride,
0x7fffffff);
sad_array[4] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr + 4, ref_stride,
0x7fffffff);
sad_array[5] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr + 5, ref_stride,
0x7fffffff);
sad_array[6] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr + 6, ref_stride,
0x7fffffff);
sad_array[7] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr + 7, ref_stride,
0x7fffffff);
}
void vp9_sad16x8x3_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr, ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr + 1, ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr + 2, ref_stride, 0x7fffffff);
}
void vp9_sad16x8x8_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
uint32_t *sad_array) {
sad_array[0] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr, ref_stride,
0x7fffffff);
sad_array[1] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr + 1, ref_stride,
0x7fffffff);
sad_array[2] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr + 2, ref_stride,
0x7fffffff);
sad_array[3] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr + 3, ref_stride,
0x7fffffff);
sad_array[4] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr + 4, ref_stride,
0x7fffffff);
sad_array[5] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr + 5, ref_stride,
0x7fffffff);
sad_array[6] = vp9_sad16x8(src_ptr, src_stride,
281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
ref_ptr + 6, ref_stride,
0x7fffffff);
sad_array[7] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr + 7, ref_stride,
0x7fffffff);
}
void vp9_sad8x8x3_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr, ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr + 1, ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr + 2, ref_stride, 0x7fffffff);
}
void vp9_sad8x8x8_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
uint32_t *sad_array) {
sad_array[0] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr, ref_stride,
0x7fffffff);
sad_array[1] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr + 1, ref_stride,
0x7fffffff);
sad_array[2] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr + 2, ref_stride,
0x7fffffff);
sad_array[3] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr + 3, ref_stride,
0x7fffffff);
sad_array[4] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr + 4, ref_stride,
0x7fffffff);
sad_array[5] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr + 5, ref_stride,
0x7fffffff);
sad_array[6] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr + 6, ref_stride,
0x7fffffff);
sad_array[7] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr + 7, ref_stride,
0x7fffffff);
}
void vp9_sad8x16x3_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr, ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr + 1, ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr + 2, ref_stride, 0x7fffffff);
}
void vp9_sad8x16x8_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
uint32_t *sad_array) {
sad_array[0] = vp9_sad8x16(src_ptr, src_stride,
351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
ref_ptr, ref_stride,
0x7fffffff);
sad_array[1] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr + 1, ref_stride,
0x7fffffff);
sad_array[2] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr + 2, ref_stride,
0x7fffffff);
sad_array[3] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr + 3, ref_stride,
0x7fffffff);
sad_array[4] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr + 4, ref_stride,
0x7fffffff);
sad_array[5] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr + 5, ref_stride,
0x7fffffff);
sad_array[6] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr + 6, ref_stride,
0x7fffffff);
sad_array[7] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr + 7, ref_stride,
0x7fffffff);
}
void vp9_sad4x4x3_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr, ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr + 1, ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr + 2, ref_stride, 0x7fffffff);
}
void vp9_sad4x4x8_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
uint32_t *sad_array) {
sad_array[0] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr, ref_stride,
0x7fffffff);
sad_array[1] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr + 1, ref_stride,
0x7fffffff);
sad_array[2] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr + 2, ref_stride,
0x7fffffff);
sad_array[3] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr + 3, ref_stride,
0x7fffffff);
sad_array[4] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr + 4, ref_stride,
0x7fffffff);
sad_array[5] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr + 5, ref_stride,
0x7fffffff);
sad_array[6] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr + 6, ref_stride,
0x7fffffff);
sad_array[7] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr + 7, ref_stride,
0x7fffffff);
}
void vp9_sad64x64x4d_c(const uint8_t *src_ptr,
421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad64x64(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad32x32x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad32x32(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad16x16x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad16x16(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad16x8x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad16x8(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad8x8x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
sad_array[3] = vp9_sad8x8(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad8x16x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad8x16(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad8x4x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad8x4x8_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
uint32_t *sad_array) {
sad_array[0] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr, ref_stride,
0x7fffffff);
sad_array[1] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr + 1, ref_stride,
0x7fffffff);
sad_array[2] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr + 2, ref_stride,
0x7fffffff);
sad_array[3] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr + 3, ref_stride,
0x7fffffff);
sad_array[4] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr + 4, ref_stride,
0x7fffffff);
sad_array[5] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr + 5, ref_stride,
0x7fffffff);
sad_array[6] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr + 6, ref_stride,
0x7fffffff);
sad_array[7] = vp9_sad8x4(src_ptr, src_stride,
ref_ptr + 7, ref_stride,
0x7fffffff);
}
void vp9_sad4x8x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
sad_array[0] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}
void vp9_sad4x8x8_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t *ref_ptr,
int ref_stride,
uint32_t *sad_array) {
sad_array[0] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr, ref_stride,
0x7fffffff);
sad_array[1] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr + 1, ref_stride,
0x7fffffff);
sad_array[2] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr + 2, ref_stride,
0x7fffffff);
sad_array[3] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr + 3, ref_stride,
0x7fffffff);
sad_array[4] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr + 4, ref_stride,
0x7fffffff);
sad_array[5] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr + 5, ref_stride,
0x7fffffff);
sad_array[6] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr + 6, ref_stride,
0x7fffffff);
sad_array[7] = vp9_sad4x8(src_ptr, src_stride,
ref_ptr + 7, ref_stride,
0x7fffffff);
}
void vp9_sad4x4x4d_c(const uint8_t *src_ptr,
int src_stride,
const uint8_t* const ref_ptr[],
int ref_stride,
unsigned int *sad_array) {
sad_array[0] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr[0], ref_stride, 0x7fffffff);
sad_array[1] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr[1], ref_stride, 0x7fffffff);
sad_array[2] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr[2], ref_stride, 0x7fffffff);
sad_array[3] = vp9_sad4x4(src_ptr, src_stride,
ref_ptr[3], ref_stride, 0x7fffffff);
}