Index: source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl |
diff --git a/source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl b/source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl |
index ac74538a01d5b1079d6733433fb3b69adb4ce06c..128dd8ba8ad46a7655e9614391dc0f878d0e470a 100644 |
--- a/source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl |
+++ b/source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl |
@@ -54,7 +54,7 @@ if ($opts{arch} eq "x86_64") { |
# Intra prediction |
# |
-if (vpx_config("CONFIG_VP9") eq "yes") { |
+if ((vpx_config("CONFIG_VP9") eq "yes") || (vpx_config("CONFIG_VP10") eq "yes")) { |
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/, "$ssse3_x86inc"; |
@@ -369,7 +369,7 @@ if (vpx_config("CONFIG_VP9") eq "yes") { |
add_proto qw/void vpx_highbd_dc_128_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; |
specialize qw/vpx_highbd_dc_128_predictor_32x32/; |
} # CONFIG_VP9_HIGHBITDEPTH |
-} # CONFIG_VP9 |
+} # CONFIG_VP9 || CONFIG_VP10 |
# |
# Sub Pixel Filters |
@@ -398,6 +398,24 @@ specialize qw/vpx_convolve8_avg_horiz sse2 ssse3 neon dspr2 msa/; |
add_proto qw/void vpx_convolve8_avg_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; |
specialize qw/vpx_convolve8_avg_vert sse2 ssse3 neon dspr2 msa/; |
+add_proto qw/void vpx_scaled_2d/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; |
+specialize qw/vpx_scaled_2d ssse3/; |
+ |
+add_proto qw/void vpx_scaled_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; |
+specialize qw/vpx_scaled_horiz/; |
+ |
+add_proto qw/void vpx_scaled_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; |
+specialize qw/vpx_scaled_vert/; |
+ |
+add_proto qw/void vpx_scaled_avg_2d/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; |
+specialize qw/vpx_scaled_avg_2d/; |
+ |
+add_proto qw/void vpx_scaled_avg_horiz/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; |
+specialize qw/vpx_scaled_avg_horiz/; |
+ |
+add_proto qw/void vpx_scaled_avg_vert/, "const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"; |
+specialize qw/vpx_scaled_avg_vert/; |
+ |
if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
# |
# Sub Pixel Filters |
@@ -431,42 +449,42 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
# Loopfilter |
# |
add_proto qw/void vpx_lpf_vertical_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"; |
-specialize qw/vpx_lpf_vertical_16 sse2 neon_asm msa/; |
+specialize qw/vpx_lpf_vertical_16 sse2 neon_asm dspr2 msa/; |
$vpx_lpf_vertical_16_neon_asm=vpx_lpf_vertical_16_neon; |
add_proto qw/void vpx_lpf_vertical_16_dual/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"; |
-specialize qw/vpx_lpf_vertical_16_dual sse2 neon_asm msa/; |
+specialize qw/vpx_lpf_vertical_16_dual sse2 neon_asm dspr2 msa/; |
$vpx_lpf_vertical_16_dual_neon_asm=vpx_lpf_vertical_16_dual_neon; |
add_proto qw/void vpx_lpf_vertical_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; |
-specialize qw/vpx_lpf_vertical_8 sse2 neon msa/; |
+specialize qw/vpx_lpf_vertical_8 sse2 neon dspr2 msa/; |
add_proto qw/void vpx_lpf_vertical_8_dual/, "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"; |
-specialize qw/vpx_lpf_vertical_8_dual sse2 neon_asm msa/; |
+specialize qw/vpx_lpf_vertical_8_dual sse2 neon_asm dspr2 msa/; |
$vpx_lpf_vertical_8_dual_neon_asm=vpx_lpf_vertical_8_dual_neon; |
add_proto qw/void vpx_lpf_vertical_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; |
-specialize qw/vpx_lpf_vertical_4 mmx neon msa/; |
+specialize qw/vpx_lpf_vertical_4 mmx neon dspr2 msa/; |
add_proto qw/void vpx_lpf_vertical_4_dual/, "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"; |
-specialize qw/vpx_lpf_vertical_4_dual sse2 neon msa/; |
+specialize qw/vpx_lpf_vertical_4_dual sse2 neon dspr2 msa/; |
add_proto qw/void vpx_lpf_horizontal_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; |
-specialize qw/vpx_lpf_horizontal_16 sse2 avx2 neon_asm msa/; |
+specialize qw/vpx_lpf_horizontal_16 sse2 avx2 neon_asm dspr2 msa/; |
$vpx_lpf_horizontal_16_neon_asm=vpx_lpf_horizontal_16_neon; |
add_proto qw/void vpx_lpf_horizontal_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; |
-specialize qw/vpx_lpf_horizontal_8 sse2 neon msa/; |
+specialize qw/vpx_lpf_horizontal_8 sse2 neon dspr2 msa/; |
add_proto qw/void vpx_lpf_horizontal_8_dual/, "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"; |
-specialize qw/vpx_lpf_horizontal_8_dual sse2 neon_asm msa/; |
+specialize qw/vpx_lpf_horizontal_8_dual sse2 neon_asm dspr2 msa/; |
$vpx_lpf_horizontal_8_dual_neon_asm=vpx_lpf_horizontal_8_dual_neon; |
add_proto qw/void vpx_lpf_horizontal_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; |
-specialize qw/vpx_lpf_horizontal_4 mmx neon msa/; |
+specialize qw/vpx_lpf_horizontal_4 mmx neon dspr2 msa/; |
add_proto qw/void vpx_lpf_horizontal_4_dual/, "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"; |
-specialize qw/vpx_lpf_horizontal_4_dual sse2 neon msa/; |
+specialize qw/vpx_lpf_horizontal_4_dual sse2 neon dspr2 msa/; |
if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
add_proto qw/void vpx_highbd_lpf_vertical_16/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int bd"; |
@@ -510,7 +528,7 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
# |
# Forward transform |
# |
-if (vpx_config("CONFIG_VP9_ENCODER") eq "yes") { |
+if ((vpx_config("CONFIG_VP9_ENCODER") eq "yes") || (vpx_config("CONFIG_VP10_ENCODER") eq "yes")) { |
if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
add_proto qw/void vpx_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride"; |
specialize qw/vpx_fdct4x4 sse2/; |
@@ -590,219 +608,219 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
add_proto qw/void vpx_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; |
specialize qw/vpx_fdct32x32_1 sse2 msa/; |
} # CONFIG_VP9_HIGHBITDEPTH |
-} # CONFIG_VP9_ENCODER |
+} # CONFIG_VP9_ENCODER || CONFIG_VP10_ENCODER |
# |
# Inverse transform |
-if (vpx_config("CONFIG_VP9") eq "yes") { |
+if ((vpx_config("CONFIG_VP9") eq "yes") || (vpx_config("CONFIG_VP10") eq "yes")) { |
if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
# Note as optimized versions of these functions are added we need to add a check to ensure |
# that when CONFIG_EMULATE_HARDWARE is on, it defaults to the C versions only. |
- add_proto qw/void vp9_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct4x4_1_add/; |
+ add_proto qw/void vpx_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct4x4_1_add/; |
- add_proto qw/void vp9_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct4x4_16_add/; |
+ add_proto qw/void vpx_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct4x4_16_add/; |
- add_proto qw/void vp9_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct8x8_1_add/; |
+ add_proto qw/void vpx_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct8x8_1_add/; |
- add_proto qw/void vp9_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct8x8_64_add/; |
+ add_proto qw/void vpx_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct8x8_64_add/; |
- add_proto qw/void vp9_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct8x8_12_add/; |
+ add_proto qw/void vpx_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct8x8_12_add/; |
- add_proto qw/void vp9_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct16x16_1_add/; |
+ add_proto qw/void vpx_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct16x16_1_add/; |
- add_proto qw/void vp9_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct16x16_256_add/; |
+ add_proto qw/void vpx_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct16x16_256_add/; |
- add_proto qw/void vp9_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct16x16_10_add/; |
+ add_proto qw/void vpx_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct16x16_10_add/; |
- add_proto qw/void vp9_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct32x32_1024_add/; |
+ add_proto qw/void vpx_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct32x32_1024_add/; |
- add_proto qw/void vp9_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct32x32_34_add/; |
+ add_proto qw/void vpx_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct32x32_34_add/; |
- add_proto qw/void vp9_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct32x32_1_add/; |
+ add_proto qw/void vpx_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct32x32_1_add/; |
- add_proto qw/void vp9_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_iwht4x4_1_add/; |
+ add_proto qw/void vpx_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_iwht4x4_1_add/; |
- add_proto qw/void vp9_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_iwht4x4_16_add/; |
+ add_proto qw/void vpx_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_iwht4x4_16_add/; |
- add_proto qw/void vp9_highbd_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct4x4_1_add/; |
+ add_proto qw/void vpx_highbd_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct4x4_1_add/; |
- add_proto qw/void vp9_highbd_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct8x8_1_add/; |
+ add_proto qw/void vpx_highbd_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct8x8_1_add/; |
- add_proto qw/void vp9_highbd_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct16x16_1_add/; |
+ add_proto qw/void vpx_highbd_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct16x16_1_add/; |
- add_proto qw/void vp9_highbd_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct32x32_1024_add/; |
+ add_proto qw/void vpx_highbd_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct32x32_1024_add/; |
- add_proto qw/void vp9_highbd_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct32x32_34_add/; |
+ add_proto qw/void vpx_highbd_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct32x32_34_add/; |
- add_proto qw/void vp9_highbd_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct32x32_1_add/; |
+ add_proto qw/void vpx_highbd_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct32x32_1_add/; |
- add_proto qw/void vp9_highbd_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_iwht4x4_1_add/; |
+ add_proto qw/void vpx_highbd_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_iwht4x4_1_add/; |
- add_proto qw/void vp9_highbd_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_iwht4x4_16_add/; |
+ add_proto qw/void vpx_highbd_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_iwht4x4_16_add/; |
# Force C versions if CONFIG_EMULATE_HARDWARE is 1 |
if (vpx_config("CONFIG_EMULATE_HARDWARE") eq "yes") { |
- add_proto qw/void vp9_highbd_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct4x4_16_add/; |
+ add_proto qw/void vpx_highbd_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct4x4_16_add/; |
- add_proto qw/void vp9_highbd_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct8x8_64_add/; |
+ add_proto qw/void vpx_highbd_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct8x8_64_add/; |
- add_proto qw/void vp9_highbd_idct8x8_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct8x8_10_add/; |
+ add_proto qw/void vpx_highbd_idct8x8_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct8x8_10_add/; |
- add_proto qw/void vp9_highbd_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct16x16_256_add/; |
+ add_proto qw/void vpx_highbd_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct16x16_256_add/; |
- add_proto qw/void vp9_highbd_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct16x16_10_add/; |
+ add_proto qw/void vpx_highbd_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct16x16_10_add/; |
} else { |
- add_proto qw/void vp9_highbd_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct4x4_16_add sse2/; |
+ add_proto qw/void vpx_highbd_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct4x4_16_add sse2/; |
- add_proto qw/void vp9_highbd_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct8x8_64_add sse2/; |
+ add_proto qw/void vpx_highbd_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct8x8_64_add sse2/; |
- add_proto qw/void vp9_highbd_idct8x8_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct8x8_10_add sse2/; |
+ add_proto qw/void vpx_highbd_idct8x8_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct8x8_10_add sse2/; |
- add_proto qw/void vp9_highbd_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct16x16_256_add sse2/; |
+ add_proto qw/void vpx_highbd_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct16x16_256_add sse2/; |
- add_proto qw/void vp9_highbd_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
- specialize qw/vp9_highbd_idct16x16_10_add sse2/; |
+ add_proto qw/void vpx_highbd_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; |
+ specialize qw/vpx_highbd_idct16x16_10_add sse2/; |
} # CONFIG_EMULATE_HARDWARE |
} else { |
# Force C versions if CONFIG_EMULATE_HARDWARE is 1 |
if (vpx_config("CONFIG_EMULATE_HARDWARE") eq "yes") { |
- add_proto qw/void vp9_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct4x4_1_add/; |
+ add_proto qw/void vpx_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct4x4_1_add/; |
- add_proto qw/void vp9_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct4x4_16_add/; |
+ add_proto qw/void vpx_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct4x4_16_add/; |
- add_proto qw/void vp9_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct8x8_1_add/; |
+ add_proto qw/void vpx_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct8x8_1_add/; |
- add_proto qw/void vp9_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct8x8_64_add/; |
+ add_proto qw/void vpx_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct8x8_64_add/; |
- add_proto qw/void vp9_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct8x8_12_add/; |
+ add_proto qw/void vpx_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct8x8_12_add/; |
- add_proto qw/void vp9_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct16x16_1_add/; |
+ add_proto qw/void vpx_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct16x16_1_add/; |
- add_proto qw/void vp9_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct16x16_256_add/; |
+ add_proto qw/void vpx_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct16x16_256_add/; |
- add_proto qw/void vp9_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct16x16_10_add/; |
+ add_proto qw/void vpx_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct16x16_10_add/; |
- add_proto qw/void vp9_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct32x32_1024_add/; |
+ add_proto qw/void vpx_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct32x32_1024_add/; |
- add_proto qw/void vp9_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct32x32_34_add/; |
+ add_proto qw/void vpx_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct32x32_34_add/; |
- add_proto qw/void vp9_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct32x32_1_add/; |
+ add_proto qw/void vpx_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct32x32_1_add/; |
- add_proto qw/void vp9_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_iwht4x4_1_add/; |
+ add_proto qw/void vpx_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_iwht4x4_1_add/; |
- add_proto qw/void vp9_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_iwht4x4_16_add/; |
+ add_proto qw/void vpx_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_iwht4x4_16_add/; |
} else { |
- add_proto qw/void vp9_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct4x4_1_add sse2 neon dspr2 msa/; |
+ add_proto qw/void vpx_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct4x4_1_add sse2 neon dspr2 msa/; |
- add_proto qw/void vp9_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct4x4_16_add sse2 neon dspr2 msa/; |
+ add_proto qw/void vpx_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct4x4_16_add sse2 neon dspr2 msa/; |
- add_proto qw/void vp9_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct8x8_1_add sse2 neon dspr2 msa/; |
+ add_proto qw/void vpx_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct8x8_1_add sse2 neon dspr2 msa/; |
- add_proto qw/void vp9_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct8x8_64_add sse2 neon dspr2 msa/, "$ssse3_x86_64_x86inc"; |
+ add_proto qw/void vpx_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct8x8_64_add sse2 neon dspr2 msa/, "$ssse3_x86_64_x86inc"; |
- add_proto qw/void vp9_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct8x8_12_add sse2 neon dspr2 msa/, "$ssse3_x86_64_x86inc"; |
+ add_proto qw/void vpx_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct8x8_12_add sse2 neon dspr2 msa/, "$ssse3_x86_64_x86inc"; |
- add_proto qw/void vp9_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct16x16_1_add sse2 neon dspr2 msa/; |
+ add_proto qw/void vpx_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct16x16_1_add sse2 neon dspr2 msa/; |
- add_proto qw/void vp9_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct16x16_256_add sse2 neon dspr2 msa/; |
+ add_proto qw/void vpx_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct16x16_256_add sse2 neon dspr2 msa/; |
- add_proto qw/void vp9_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct16x16_10_add sse2 neon dspr2 msa/; |
+ add_proto qw/void vpx_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct16x16_10_add sse2 neon dspr2 msa/; |
- add_proto qw/void vp9_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct32x32_1024_add sse2 neon dspr2 msa/; |
+ add_proto qw/void vpx_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct32x32_1024_add sse2 neon dspr2 msa/; |
- add_proto qw/void vp9_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct32x32_34_add sse2 neon_asm dspr2 msa/; |
+ add_proto qw/void vpx_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct32x32_34_add sse2 neon_asm dspr2 msa/; |
# Need to add 34 eob idct32x32 neon implementation. |
- $vp9_idct32x32_34_add_neon_asm=vp9_idct32x32_1024_add_neon; |
+ $vpx_idct32x32_34_add_neon_asm=vpx_idct32x32_1024_add_neon; |
- add_proto qw/void vp9_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_idct32x32_1_add sse2 neon dspr2 msa/; |
+ add_proto qw/void vpx_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_idct32x32_1_add sse2 neon dspr2 msa/; |
- add_proto qw/void vp9_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_iwht4x4_1_add msa/; |
+ add_proto qw/void vpx_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_iwht4x4_1_add msa/; |
- add_proto qw/void vp9_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
- specialize qw/vp9_iwht4x4_16_add msa/, "$sse2_x86inc"; |
+ add_proto qw/void vpx_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; |
+ specialize qw/vpx_iwht4x4_16_add msa/, "$sse2_x86inc"; |
} # CONFIG_EMULATE_HARDWARE |
} # CONFIG_VP9_HIGHBITDEPTH |
-} # CONFIG_VP9 |
+} # CONFIG_VP9 || CONFIG_VP10 |
# |
# Quantization |
# |
-if (vpx_config("CONFIG_VP9_ENCODER") eq "yes") { |
+if ((vpx_config("CONFIG_VP9_ENCODER") eq "yes") || (vpx_config("CONFIG_VP10_ENCODER") eq "yes")) { |
if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
- add_proto qw/void vp9_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
- specialize qw/vp9_quantize_b/; |
+ add_proto qw/void vpx_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
+ specialize qw/vpx_quantize_b/; |
- add_proto qw/void vp9_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
- specialize qw/vp9_quantize_b_32x32/; |
+ add_proto qw/void vpx_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
+ specialize qw/vpx_quantize_b_32x32/; |
- add_proto qw/void vp9_highbd_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
- specialize qw/vp9_highbd_quantize_b sse2/; |
+ add_proto qw/void vpx_highbd_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
+ specialize qw/vpx_highbd_quantize_b sse2/; |
- add_proto qw/void vp9_highbd_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
- specialize qw/vp9_highbd_quantize_b_32x32 sse2/; |
+ add_proto qw/void vpx_highbd_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
+ specialize qw/vpx_highbd_quantize_b_32x32 sse2/; |
} else { |
- add_proto qw/void vp9_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
- specialize qw/vp9_quantize_b sse2/, "$ssse3_x86_64_x86inc"; |
+ add_proto qw/void vpx_quantize_b/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
+ specialize qw/vpx_quantize_b sse2/, "$ssse3_x86_64_x86inc"; |
- add_proto qw/void vp9_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
- specialize qw/vp9_quantize_b_32x32/, "$ssse3_x86_64_x86inc"; |
-} # CONFIG_VP9_ENCODER |
+ add_proto qw/void vpx_quantize_b_32x32/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; |
+ specialize qw/vpx_quantize_b_32x32/, "$ssse3_x86_64_x86inc"; |
} # CONFIG_VP9_HIGHBITDEPTH |
+} # CONFIG_VP9_ENCODER || CONFIG_VP10_ENCODER |
if (vpx_config("CONFIG_ENCODERS") eq "yes") { |
# |
@@ -990,6 +1008,17 @@ specialize qw/vpx_sad4x8x4d msa/, "$sse_x86inc"; |
add_proto qw/void vpx_sad4x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; |
specialize qw/vpx_sad4x4x4d msa/, "$sse_x86inc"; |
+# |
+# Structured Similarity (SSIM) |
+# |
+if (vpx_config("CONFIG_INTERNAL_STATS") eq "yes") { |
+ add_proto qw/void vpx_ssim_parms_8x8/, "const uint8_t *s, int sp, const uint8_t *r, int rp, uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s, uint32_t *sum_sq_r, uint32_t *sum_sxr"; |
+ specialize qw/vpx_ssim_parms_8x8/, "$sse2_x86_64"; |
+ |
+ add_proto qw/void vpx_ssim_parms_16x16/, "const uint8_t *s, int sp, const uint8_t *r, int rp, uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s, uint32_t *sum_sq_r, uint32_t *sum_sxr"; |
+ specialize qw/vpx_ssim_parms_16x16/, "$sse2_x86_64"; |
+} |
+ |
if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
# |
# Block subtraction |
@@ -1176,6 +1205,13 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
add_proto qw/void vpx_highbd_sad4x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; |
specialize qw/vpx_highbd_sad4x4x4d/, "$sse2_x86inc"; |
+ # |
+ # Structured Similarity (SSIM) |
+ # |
+ if (vpx_config("CONFIG_INTERNAL_STATS") eq "yes") { |
+ add_proto qw/void vpx_highbd_ssim_parms_8x8/, "const uint16_t *s, int sp, const uint16_t *r, int rp, uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s, uint32_t *sum_sq_r, uint32_t *sum_sxr"; |
+ specialize qw/vpx_highbd_ssim_parms_8x8/; |
+ } |
} # CONFIG_VP9_HIGHBITDEPTH |
} # CONFIG_ENCODERS |