Merge changes from topic 'sync-highbd-intrapred'
* changes: intrapred: sync highbd_d135_predictor w/d135_ intrapred: specialize highbd 4x4 predictors intrapred: rename d63f to d63e remove CONFIG_MISC_FIXES
This commit is contained in:
commit
ddd75573a7
1
configure
vendored
1
configure
vendored
@ -262,7 +262,6 @@ EXPERIMENT_LIST="
|
||||
spatial_svc
|
||||
fp_mb_stats
|
||||
emulate_hardware
|
||||
misc_fixes
|
||||
"
|
||||
CONFIG_LIST="
|
||||
dependency_tracking
|
||||
|
@ -31,7 +31,7 @@ void vp8_init_intra4x4_predictors_internal(void) {
|
||||
pred[B_LD_PRED] = vpx_d45e_predictor_4x4;
|
||||
pred[B_RD_PRED] = vpx_d135_predictor_4x4;
|
||||
pred[B_VR_PRED] = vpx_d117_predictor_4x4;
|
||||
pred[B_VL_PRED] = vpx_d63f_predictor_4x4;
|
||||
pred[B_VL_PRED] = vpx_d63e_predictor_4x4;
|
||||
pred[B_HD_PRED] = vpx_d153_predictor_4x4;
|
||||
pred[B_HU_PRED] = vpx_d207_predictor_4x4;
|
||||
}
|
||||
|
@ -40,11 +40,5 @@ int vpx_rb_read_signed_literal(struct vpx_read_bit_buffer *rb, int bits) {
|
||||
}
|
||||
|
||||
int vpx_rb_read_inv_signed_literal(struct vpx_read_bit_buffer *rb, int bits) {
|
||||
#if CONFIG_MISC_FIXES
|
||||
const int nbits = sizeof(unsigned) * 8 - bits - 1;
|
||||
const unsigned value = (unsigned)vpx_rb_read_literal(rb, bits + 1) << nbits;
|
||||
return ((int)value) >> nbits;
|
||||
#else
|
||||
return vpx_rb_read_signed_literal(rb, bits);
|
||||
#endif
|
||||
}
|
||||
|
@ -38,10 +38,6 @@ void vpx_wb_write_literal(struct vpx_write_bit_buffer *wb, int data, int bits) {
|
||||
|
||||
void vpx_wb_write_inv_signed_literal(struct vpx_write_bit_buffer *wb, int data,
|
||||
int bits) {
|
||||
#if CONFIG_MISC_FIXES
|
||||
vpx_wb_write_literal(wb, data, bits + 1);
|
||||
#else
|
||||
vpx_wb_write_literal(wb, abs(data), bits);
|
||||
vpx_wb_write_bit(wb, data < 0);
|
||||
#endif
|
||||
}
|
||||
|
@ -42,23 +42,6 @@ static INLINE void d207_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
||||
dst[r * stride + c] = dst[(r + 1) * stride + c - 2];
|
||||
}
|
||||
|
||||
#if CONFIG_MISC_FIXES
|
||||
static INLINE void d207e_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
||||
const uint8_t *above, const uint8_t *left) {
|
||||
int r, c;
|
||||
(void)above;
|
||||
|
||||
for (r = 0; r < bs; ++r) {
|
||||
for (c = 0; c < bs; ++c) {
|
||||
dst[c] = c & 1 ? AVG3(left[(c >> 1) + r], left[(c >> 1) + r + 1],
|
||||
left[(c >> 1) + r + 2])
|
||||
: AVG2(left[(c >> 1) + r], left[(c >> 1) + r + 1]);
|
||||
}
|
||||
dst += stride;
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_MISC_FIXES
|
||||
|
||||
static INLINE void d63_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
||||
const uint8_t *above, const uint8_t *left) {
|
||||
int r, c;
|
||||
@ -76,22 +59,6 @@ static INLINE void d63_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
||||
}
|
||||
}
|
||||
|
||||
#if CONFIG_MISC_FIXES
|
||||
static INLINE void d63e_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
||||
const uint8_t *above, const uint8_t *left) {
|
||||
int r, c;
|
||||
(void)left;
|
||||
for (r = 0; r < bs; ++r) {
|
||||
for (c = 0; c < bs; ++c) {
|
||||
dst[c] = r & 1 ? AVG3(above[(r >> 1) + c], above[(r >> 1) + c + 1],
|
||||
above[(r >> 1) + c + 2])
|
||||
: AVG2(above[(r >> 1) + c], above[(r >> 1) + c + 1]);
|
||||
}
|
||||
dst += stride;
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_MISC_FIXES
|
||||
|
||||
static INLINE void d45_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
||||
const uint8_t *above, const uint8_t *left) {
|
||||
const uint8_t above_right = above[bs - 1];
|
||||
@ -111,21 +78,6 @@ static INLINE void d45_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
||||
}
|
||||
}
|
||||
|
||||
#if CONFIG_MISC_FIXES
|
||||
static INLINE void d45e_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
||||
const uint8_t *above, const uint8_t *left) {
|
||||
int r, c;
|
||||
(void)left;
|
||||
for (r = 0; r < bs; ++r) {
|
||||
for (c = 0; c < bs; ++c) {
|
||||
dst[c] = AVG3(above[r + c], above[r + c + 1],
|
||||
above[r + c + 1 + (r + c + 2 < bs * 2)]);
|
||||
}
|
||||
dst += stride;
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_MISC_FIXES
|
||||
|
||||
static INLINE void d117_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
|
||||
const uint8_t *above, const uint8_t *left) {
|
||||
int r, c;
|
||||
@ -367,7 +319,7 @@ void vpx_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
|
||||
DST(3, 3) = AVG3(E, F, G); // differs from vp8
|
||||
}
|
||||
|
||||
void vpx_d63f_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
|
||||
void vpx_d63e_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
|
||||
const uint8_t *above, const uint8_t *left) {
|
||||
const int A = above[0];
|
||||
const int B = above[1];
|
||||
@ -533,25 +485,6 @@ static INLINE void highbd_d207_predictor(uint16_t *dst, ptrdiff_t stride,
|
||||
}
|
||||
}
|
||||
|
||||
#if CONFIG_MISC_FIXES
|
||||
static INLINE void highbd_d207e_predictor(uint16_t *dst, ptrdiff_t stride,
|
||||
int bs, const uint16_t *above,
|
||||
const uint16_t *left, int bd) {
|
||||
int r, c;
|
||||
(void)above;
|
||||
(void)bd;
|
||||
|
||||
for (r = 0; r < bs; ++r) {
|
||||
for (c = 0; c < bs; ++c) {
|
||||
dst[c] = c & 1 ? AVG3(left[(c >> 1) + r], left[(c >> 1) + r + 1],
|
||||
left[(c >> 1) + r + 2])
|
||||
: AVG2(left[(c >> 1) + r], left[(c >> 1) + r + 1]);
|
||||
}
|
||||
dst += stride;
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_MISC_FIXES
|
||||
|
||||
static INLINE void highbd_d63_predictor(uint16_t *dst, ptrdiff_t stride, int bs,
|
||||
const uint16_t *above,
|
||||
const uint16_t *left, int bd) {
|
||||
@ -568,8 +501,6 @@ static INLINE void highbd_d63_predictor(uint16_t *dst, ptrdiff_t stride, int bs,
|
||||
}
|
||||
}
|
||||
|
||||
#define highbd_d63e_predictor highbd_d63_predictor
|
||||
|
||||
static INLINE void highbd_d45_predictor(uint16_t *dst, ptrdiff_t stride, int bs,
|
||||
const uint16_t *above,
|
||||
const uint16_t *left, int bd) {
|
||||
@ -586,23 +517,6 @@ static INLINE void highbd_d45_predictor(uint16_t *dst, ptrdiff_t stride, int bs,
|
||||
}
|
||||
}
|
||||
|
||||
#if CONFIG_MISC_FIXES
|
||||
static INLINE void highbd_d45e_predictor(uint16_t *dst, ptrdiff_t stride,
|
||||
int bs, const uint16_t *above,
|
||||
const uint16_t *left, int bd) {
|
||||
int r, c;
|
||||
(void)left;
|
||||
(void)bd;
|
||||
for (r = 0; r < bs; ++r) {
|
||||
for (c = 0; c < bs; ++c) {
|
||||
dst[c] = AVG3(above[r + c], above[r + c + 1],
|
||||
above[r + c + 1 + (r + c + 2 < bs * 2)]);
|
||||
}
|
||||
dst += stride;
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_MISC_FIXES
|
||||
|
||||
static INLINE void highbd_d117_predictor(uint16_t *dst, ptrdiff_t stride,
|
||||
int bs, const uint16_t *above,
|
||||
const uint16_t *left, int bd) {
|
||||
@ -633,19 +547,30 @@ static INLINE void highbd_d117_predictor(uint16_t *dst, ptrdiff_t stride,
|
||||
static INLINE void highbd_d135_predictor(uint16_t *dst, ptrdiff_t stride,
|
||||
int bs, const uint16_t *above,
|
||||
const uint16_t *left, int bd) {
|
||||
int r, c;
|
||||
int i;
|
||||
#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ > 7
|
||||
// silence a spurious -Warray-bounds warning, possibly related to:
|
||||
// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273
|
||||
uint16_t border[69];
|
||||
#else
|
||||
uint16_t border[32 + 32 - 1]; // outer border from bottom-left to top-right
|
||||
#endif
|
||||
(void)bd;
|
||||
dst[0] = AVG3(left[0], above[-1], above[0]);
|
||||
for (c = 1; c < bs; c++) dst[c] = AVG3(above[c - 2], above[c - 1], above[c]);
|
||||
|
||||
dst[stride] = AVG3(above[-1], left[0], left[1]);
|
||||
for (r = 2; r < bs; ++r)
|
||||
dst[r * stride] = AVG3(left[r - 2], left[r - 1], left[r]);
|
||||
// dst(bs, bs - 2)[0], i.e., border starting at bottom-left
|
||||
for (i = 0; i < bs - 2; ++i) {
|
||||
border[i] = AVG3(left[bs - 3 - i], left[bs - 2 - i], left[bs - 1 - i]);
|
||||
}
|
||||
border[bs - 2] = AVG3(above[-1], left[0], left[1]);
|
||||
border[bs - 1] = AVG3(left[0], above[-1], above[0]);
|
||||
border[bs - 0] = AVG3(above[-1], above[0], above[1]);
|
||||
// dst[0][2, size), i.e., remaining top border ascending
|
||||
for (i = 0; i < bs - 2; ++i) {
|
||||
border[bs + 1 + i] = AVG3(above[i], above[i + 1], above[i + 2]);
|
||||
}
|
||||
|
||||
dst += stride;
|
||||
for (r = 1; r < bs; ++r) {
|
||||
for (c = 1; c < bs; c++) dst[c] = dst[-stride + c - 1];
|
||||
dst += stride;
|
||||
for (i = 0; i < bs; ++i) {
|
||||
memcpy(dst + i * stride, border + bs - 1 - i, bs * sizeof(dst[0]));
|
||||
}
|
||||
}
|
||||
|
||||
@ -776,6 +701,144 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bs,
|
||||
dst += stride;
|
||||
}
|
||||
}
|
||||
|
||||
void vpx_highbd_d207_predictor_4x4_c(uint16_t *dst, ptrdiff_t stride,
|
||||
const uint16_t *above,
|
||||
const uint16_t *left, int bd) {
|
||||
const int I = left[0];
|
||||
const int J = left[1];
|
||||
const int K = left[2];
|
||||
const int L = left[3];
|
||||
(void)above;
|
||||
(void)bd;
|
||||
DST(0, 0) = AVG2(I, J);
|
||||
DST(2, 0) = DST(0, 1) = AVG2(J, K);
|
||||
DST(2, 1) = DST(0, 2) = AVG2(K, L);
|
||||
DST(1, 0) = AVG3(I, J, K);
|
||||
DST(3, 0) = DST(1, 1) = AVG3(J, K, L);
|
||||
DST(3, 1) = DST(1, 2) = AVG3(K, L, L);
|
||||
DST(3, 2) = DST(2, 2) = DST(0, 3) = DST(1, 3) = DST(2, 3) = DST(3, 3) = L;
|
||||
}
|
||||
|
||||
void vpx_highbd_d63_predictor_4x4_c(uint16_t *dst, ptrdiff_t stride,
|
||||
const uint16_t *above, const uint16_t *left,
|
||||
int bd) {
|
||||
const int A = above[0];
|
||||
const int B = above[1];
|
||||
const int C = above[2];
|
||||
const int D = above[3];
|
||||
const int E = above[4];
|
||||
const int F = above[5];
|
||||
const int G = above[6];
|
||||
(void)left;
|
||||
(void)bd;
|
||||
DST(0, 0) = AVG2(A, B);
|
||||
DST(1, 0) = DST(0, 2) = AVG2(B, C);
|
||||
DST(2, 0) = DST(1, 2) = AVG2(C, D);
|
||||
DST(3, 0) = DST(2, 2) = AVG2(D, E);
|
||||
DST(3, 2) = AVG2(E, F); // differs from vp8
|
||||
|
||||
DST(0, 1) = AVG3(A, B, C);
|
||||
DST(1, 1) = DST(0, 3) = AVG3(B, C, D);
|
||||
DST(2, 1) = DST(1, 3) = AVG3(C, D, E);
|
||||
DST(3, 1) = DST(2, 3) = AVG3(D, E, F);
|
||||
DST(3, 3) = AVG3(E, F, G); // differs from vp8
|
||||
}
|
||||
|
||||
void vpx_highbd_d45_predictor_4x4_c(uint16_t *dst, ptrdiff_t stride,
|
||||
const uint16_t *above, const uint16_t *left,
|
||||
int bd) {
|
||||
const int A = above[0];
|
||||
const int B = above[1];
|
||||
const int C = above[2];
|
||||
const int D = above[3];
|
||||
const int E = above[4];
|
||||
const int F = above[5];
|
||||
const int G = above[6];
|
||||
const int H = above[7];
|
||||
(void)left;
|
||||
(void)bd;
|
||||
DST(0, 0) = AVG3(A, B, C);
|
||||
DST(1, 0) = DST(0, 1) = AVG3(B, C, D);
|
||||
DST(2, 0) = DST(1, 1) = DST(0, 2) = AVG3(C, D, E);
|
||||
DST(3, 0) = DST(2, 1) = DST(1, 2) = DST(0, 3) = AVG3(D, E, F);
|
||||
DST(3, 1) = DST(2, 2) = DST(1, 3) = AVG3(E, F, G);
|
||||
DST(3, 2) = DST(2, 3) = AVG3(F, G, H);
|
||||
DST(3, 3) = H; // differs from vp8
|
||||
}
|
||||
|
||||
void vpx_highbd_d117_predictor_4x4_c(uint16_t *dst, ptrdiff_t stride,
|
||||
const uint16_t *above,
|
||||
const uint16_t *left, int bd) {
|
||||
const int I = left[0];
|
||||
const int J = left[1];
|
||||
const int K = left[2];
|
||||
const int X = above[-1];
|
||||
const int A = above[0];
|
||||
const int B = above[1];
|
||||
const int C = above[2];
|
||||
const int D = above[3];
|
||||
(void)bd;
|
||||
DST(0, 0) = DST(1, 2) = AVG2(X, A);
|
||||
DST(1, 0) = DST(2, 2) = AVG2(A, B);
|
||||
DST(2, 0) = DST(3, 2) = AVG2(B, C);
|
||||
DST(3, 0) = AVG2(C, D);
|
||||
|
||||
DST(0, 3) = AVG3(K, J, I);
|
||||
DST(0, 2) = AVG3(J, I, X);
|
||||
DST(0, 1) = DST(1, 3) = AVG3(I, X, A);
|
||||
DST(1, 1) = DST(2, 3) = AVG3(X, A, B);
|
||||
DST(2, 1) = DST(3, 3) = AVG3(A, B, C);
|
||||
DST(3, 1) = AVG3(B, C, D);
|
||||
}
|
||||
|
||||
void vpx_highbd_d135_predictor_4x4_c(uint16_t *dst, ptrdiff_t stride,
|
||||
const uint16_t *above,
|
||||
const uint16_t *left, int bd) {
|
||||
const int I = left[0];
|
||||
const int J = left[1];
|
||||
const int K = left[2];
|
||||
const int L = left[3];
|
||||
const int X = above[-1];
|
||||
const int A = above[0];
|
||||
const int B = above[1];
|
||||
const int C = above[2];
|
||||
const int D = above[3];
|
||||
(void)bd;
|
||||
DST(0, 3) = AVG3(J, K, L);
|
||||
DST(1, 3) = DST(0, 2) = AVG3(I, J, K);
|
||||
DST(2, 3) = DST(1, 2) = DST(0, 1) = AVG3(X, I, J);
|
||||
DST(3, 3) = DST(2, 2) = DST(1, 1) = DST(0, 0) = AVG3(A, X, I);
|
||||
DST(3, 2) = DST(2, 1) = DST(1, 0) = AVG3(B, A, X);
|
||||
DST(3, 1) = DST(2, 0) = AVG3(C, B, A);
|
||||
DST(3, 0) = AVG3(D, C, B);
|
||||
}
|
||||
|
||||
void vpx_highbd_d153_predictor_4x4_c(uint16_t *dst, ptrdiff_t stride,
|
||||
const uint16_t *above,
|
||||
const uint16_t *left, int bd) {
|
||||
const int I = left[0];
|
||||
const int J = left[1];
|
||||
const int K = left[2];
|
||||
const int L = left[3];
|
||||
const int X = above[-1];
|
||||
const int A = above[0];
|
||||
const int B = above[1];
|
||||
const int C = above[2];
|
||||
(void)bd;
|
||||
|
||||
DST(0, 0) = DST(2, 1) = AVG2(I, X);
|
||||
DST(0, 1) = DST(2, 2) = AVG2(J, I);
|
||||
DST(0, 2) = DST(2, 3) = AVG2(K, J);
|
||||
DST(0, 3) = AVG2(L, K);
|
||||
|
||||
DST(3, 0) = AVG3(A, B, C);
|
||||
DST(2, 0) = AVG3(X, A, B);
|
||||
DST(1, 0) = DST(3, 1) = AVG3(I, X, A);
|
||||
DST(1, 1) = DST(3, 2) = AVG3(J, I, X);
|
||||
DST(1, 2) = DST(3, 3) = AVG3(K, J, I);
|
||||
DST(1, 3) = AVG3(L, K, J);
|
||||
}
|
||||
#endif // CONFIG_VP9_HIGHBITDEPTH
|
||||
|
||||
// This serves as a wrapper function, so that all the prediction functions
|
||||
@ -811,7 +874,6 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bs,
|
||||
intra_pred_sized(type, 8) \
|
||||
intra_pred_sized(type, 16) \
|
||||
intra_pred_sized(type, 32) \
|
||||
intra_pred_highbd_sized(type, 4) \
|
||||
intra_pred_highbd_sized(type, 8) \
|
||||
intra_pred_highbd_sized(type, 16) \
|
||||
intra_pred_highbd_sized(type, 32)
|
||||
@ -832,11 +894,6 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, int bs,
|
||||
intra_pred_no_4x4(d207)
|
||||
intra_pred_no_4x4(d63)
|
||||
intra_pred_no_4x4(d45)
|
||||
#if CONFIG_MISC_FIXES
|
||||
intra_pred_allsizes(d207e)
|
||||
intra_pred_allsizes(d63e)
|
||||
intra_pred_no_4x4(d45e)
|
||||
#endif
|
||||
intra_pred_no_4x4(d117)
|
||||
intra_pred_no_4x4(d135)
|
||||
intra_pred_no_4x4(d153)
|
||||
|
@ -28,8 +28,6 @@ if ($opts{arch} eq "x86_64") {
|
||||
add_proto qw/void vpx_d207_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d207_predictor_4x4 sse2/;
|
||||
|
||||
add_proto qw/void vpx_d207e_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_d45_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d45_predictor_4x4 neon sse2/;
|
||||
|
||||
@ -40,8 +38,6 @@ specialize qw/vpx_d63_predictor_4x4 ssse3/;
|
||||
|
||||
add_proto qw/void vpx_d63e_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_d63f_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_h_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_h_predictor_4x4 neon dspr2 msa sse2/;
|
||||
|
||||
@ -78,18 +74,12 @@ specialize qw/vpx_dc_128_predictor_4x4 msa neon sse2/;
|
||||
add_proto qw/void vpx_d207_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d207_predictor_8x8 ssse3/;
|
||||
|
||||
add_proto qw/void vpx_d207e_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_d45_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d45_predictor_8x8 neon sse2/;
|
||||
|
||||
add_proto qw/void vpx_d45e_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_d63_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d63_predictor_8x8 ssse3/;
|
||||
|
||||
add_proto qw/void vpx_d63e_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_h_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_h_predictor_8x8 neon dspr2 msa sse2/;
|
||||
|
||||
@ -122,18 +112,12 @@ specialize qw/vpx_dc_128_predictor_8x8 neon msa sse2/;
|
||||
add_proto qw/void vpx_d207_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d207_predictor_16x16 ssse3/;
|
||||
|
||||
add_proto qw/void vpx_d207e_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_d45_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d45_predictor_16x16 neon ssse3/;
|
||||
|
||||
add_proto qw/void vpx_d45e_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_d63_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d63_predictor_16x16 ssse3/;
|
||||
|
||||
add_proto qw/void vpx_d63e_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_h_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_h_predictor_16x16 neon dspr2 msa sse2/;
|
||||
|
||||
@ -166,18 +150,12 @@ specialize qw/vpx_dc_128_predictor_16x16 neon msa sse2/;
|
||||
add_proto qw/void vpx_d207_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d207_predictor_32x32 ssse3/;
|
||||
|
||||
add_proto qw/void vpx_d207e_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_d45_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d45_predictor_32x32 neon ssse3/;
|
||||
|
||||
add_proto qw/void vpx_d45e_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_d63_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_d63_predictor_32x32 ssse3/;
|
||||
|
||||
add_proto qw/void vpx_d63e_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
|
||||
add_proto qw/void vpx_h_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left";
|
||||
specialize qw/vpx_h_predictor_32x32 neon msa sse2/;
|
||||
|
||||
@ -211,17 +189,11 @@ specialize qw/vpx_dc_128_predictor_32x32 msa neon sse2/;
|
||||
if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
|
||||
add_proto qw/void vpx_highbd_d207_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d207e_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d45_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
specialize qw/vpx_highbd_d45_predictor_4x4 neon/;
|
||||
|
||||
add_proto qw/void vpx_highbd_d45e_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d63_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d63e_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_h_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
specialize qw/vpx_highbd_h_predictor_4x4 neon/;
|
||||
|
||||
@ -252,17 +224,11 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
|
||||
|
||||
add_proto qw/void vpx_highbd_d207_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d207e_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d45_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
specialize qw/vpx_highbd_d45_predictor_8x8 neon/;
|
||||
|
||||
add_proto qw/void vpx_highbd_d45e_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d63_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d63e_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_h_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
specialize qw/vpx_highbd_h_predictor_8x8 neon/;
|
||||
|
||||
@ -293,17 +259,11 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
|
||||
|
||||
add_proto qw/void vpx_highbd_d207_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d207e_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d45_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
specialize qw/vpx_highbd_d45_predictor_16x16 neon/;
|
||||
|
||||
add_proto qw/void vpx_highbd_d45e_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d63_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d63e_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_h_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
specialize qw/vpx_highbd_h_predictor_16x16 neon/;
|
||||
|
||||
@ -334,17 +294,11 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
|
||||
|
||||
add_proto qw/void vpx_highbd_d207_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d207e_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d45_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
specialize qw/vpx_highbd_d45_predictor_32x32 neon/;
|
||||
|
||||
add_proto qw/void vpx_highbd_d45e_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d63_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_d63e_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
|
||||
add_proto qw/void vpx_highbd_h_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd";
|
||||
specialize qw/vpx_highbd_h_predictor_32x32 neon/;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user