Index: source/config/mac/x64/vp9_rtcd.h |
=================================================================== |
--- source/config/mac/x64/vp9_rtcd.h (revision 240222) |
+++ source/config/mac/x64/vp9_rtcd.h (working copy) |
@@ -21,6 +21,7 @@ |
struct vp9_variance_vtable; |
#define DEC_MVCOSTS int *mvjcost, int *mvcost[2] |
+struct mv; |
union int_mv; |
struct yv12_buffer_config; |
@@ -178,7 +179,8 @@ |
RTCD_EXTERN void (*vp9_d63_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); |
void vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); |
-#define vp9_h_predictor_32x32 vp9_h_predictor_32x32_c |
+void vp9_h_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); |
+RTCD_EXTERN void (*vp9_h_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); |
void vp9_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); |
#define vp9_d117_predictor_32x32 vp9_d117_predictor_32x32_c |
@@ -214,26 +216,47 @@ |
void vp9_mb_lpf_vertical_edge_w_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); |
#define vp9_mb_lpf_vertical_edge_w vp9_mb_lpf_vertical_edge_w_sse2 |
+void vp9_mb_lpf_vertical_edge_w_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); |
+void vp9_mb_lpf_vertical_edge_w_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); |
+#define vp9_mb_lpf_vertical_edge_w_16 vp9_mb_lpf_vertical_edge_w_16_sse2 |
+ |
void vp9_mbloop_filter_vertical_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
void vp9_mbloop_filter_vertical_edge_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
#define vp9_mbloop_filter_vertical_edge vp9_mbloop_filter_vertical_edge_sse2 |
+void vp9_mbloop_filter_vertical_edge_16_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
+void vp9_mbloop_filter_vertical_edge_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
+#define vp9_mbloop_filter_vertical_edge_16 vp9_mbloop_filter_vertical_edge_16_sse2 |
+ |
void vp9_loop_filter_vertical_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
void vp9_loop_filter_vertical_edge_mmx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
#define vp9_loop_filter_vertical_edge vp9_loop_filter_vertical_edge_mmx |
+void vp9_loop_filter_vertical_edge_16_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
+void vp9_loop_filter_vertical_edge_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
+#define vp9_loop_filter_vertical_edge_16 vp9_loop_filter_vertical_edge_16_sse2 |
+ |
void vp9_mb_lpf_horizontal_edge_w_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
void vp9_mb_lpf_horizontal_edge_w_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
-#define vp9_mb_lpf_horizontal_edge_w vp9_mb_lpf_horizontal_edge_w_sse2 |
+void vp9_mb_lpf_horizontal_edge_w_avx2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
+RTCD_EXTERN void (*vp9_mb_lpf_horizontal_edge_w)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
void vp9_mbloop_filter_horizontal_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
void vp9_mbloop_filter_horizontal_edge_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
#define vp9_mbloop_filter_horizontal_edge vp9_mbloop_filter_horizontal_edge_sse2 |
+void vp9_mbloop_filter_horizontal_edge_16_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
+void vp9_mbloop_filter_horizontal_edge_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
+#define vp9_mbloop_filter_horizontal_edge_16 vp9_mbloop_filter_horizontal_edge_16_sse2 |
+ |
void vp9_loop_filter_horizontal_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
void vp9_loop_filter_horizontal_edge_mmx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); |
#define vp9_loop_filter_horizontal_edge vp9_loop_filter_horizontal_edge_mmx |
+void vp9_loop_filter_horizontal_edge_16_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
+void vp9_loop_filter_horizontal_edge_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); |
+#define vp9_loop_filter_horizontal_edge_16 vp9_loop_filter_horizontal_edge_16_sse2 |
+ |
void vp9_blend_mb_inner_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride); |
#define vp9_blend_mb_inner vp9_blend_mb_inner_c |
@@ -431,6 +454,8 @@ |
vp9_d63_predictor_32x32 = vp9_d63_predictor_32x32_c; |
if (flags & HAS_SSSE3) vp9_d63_predictor_32x32 = vp9_d63_predictor_32x32_ssse3; |
+ vp9_h_predictor_32x32 = vp9_h_predictor_32x32_c; |
+ if (flags & HAS_SSSE3) vp9_h_predictor_32x32 = vp9_h_predictor_32x32_ssse3; |
@@ -447,11 +472,18 @@ |
+ vp9_mb_lpf_horizontal_edge_w = vp9_mb_lpf_horizontal_edge_w_sse2; |
+ if (flags & HAS_AVX2) vp9_mb_lpf_horizontal_edge_w = vp9_mb_lpf_horizontal_edge_w_avx2; |
+ |
+ |
+ |
+ |
+ |
vp9_convolve8 = vp9_convolve8_sse2; |
if (flags & HAS_SSSE3) vp9_convolve8 = vp9_convolve8_ssse3; |