| 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
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ebec9ec066045b79cf4cc4496c143a309ecc7e28
|
| --- /dev/null
|
| +++ b/source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl
|
| @@ -0,0 +1,395 @@
|
| +sub vpx_dsp_forward_decls() {
|
| +print <<EOF
|
| +/*
|
| + * DSP
|
| + */
|
| +
|
| +#include "vpx/vpx_integer.h"
|
| +
|
| +EOF
|
| +}
|
| +forward_decls qw/vpx_dsp_forward_decls/;
|
| +
|
| +# Functions which use x86inc.asm instead of x86_abi_support.asm
|
| +if (vpx_config("CONFIG_USE_X86INC") eq "yes") {
|
| + $mmx_x86inc = 'mmx';
|
| + $sse_x86inc = 'sse';
|
| + $sse2_x86inc = 'sse2';
|
| + $ssse3_x86inc = 'ssse3';
|
| + $avx_x86inc = 'avx';
|
| + $avx2_x86inc = 'avx2';
|
| +} else {
|
| + $mmx_x86inc = $sse_x86inc = $sse2_x86inc = $ssse3_x86inc =
|
| + $avx_x86inc = $avx2_x86inc = '';
|
| +}
|
| +
|
| +# Functions which are 64 bit only.
|
| +if ($opts{arch} eq "x86_64") {
|
| + $mmx_x86_64 = 'mmx';
|
| + $sse2_x86_64 = 'sse2';
|
| + $ssse3_x86_64 = 'ssse3';
|
| + $avx_x86_64 = 'avx';
|
| + $avx2_x86_64 = 'avx2';
|
| +} else {
|
| + $mmx_x86_64 = $sse2_x86_64 = $ssse3_x86_64 =
|
| + $avx_x86_64 = $avx2_x86_64 = '';
|
| +}
|
| +
|
| +if (vpx_config("CONFIG_ENCODERS") eq "yes") {
|
| +#
|
| +# Single block SAD
|
| +#
|
| +add_proto qw/unsigned int vpx_sad64x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad64x64 avx2 neon/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad64x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad64x32 avx2/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad32x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad32x64 avx2/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad32x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad32x32 avx2 neon/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad32x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad32x16 avx2/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad16x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad16x32/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad16x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad16x16 mmx media neon/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad16x8 mmx neon/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad8x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad8x16 mmx neon/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad8x8 mmx neon/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad8x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad8x4/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad4x8/, "$sse_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad4x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| +specialize qw/vpx_sad4x4 mmx neon/, "$sse_x86inc";
|
| +
|
| +#
|
| +# Avg
|
| +#
|
| +add_proto qw/unsigned int vpx_sad64x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad64x64_avg avx2/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad64x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad64x32_avg avx2/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad32x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad32x64_avg avx2/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad32x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad32x32_avg avx2/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad32x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad32x16_avg avx2/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad16x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad16x32_avg/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad16x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad16x16_avg/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad16x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad16x8_avg/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad8x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad8x16_avg/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad8x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad8x8_avg/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad8x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad8x4_avg/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad4x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad4x8_avg/, "$sse_x86inc";
|
| +
|
| +add_proto qw/unsigned int vpx_sad4x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| +specialize qw/vpx_sad4x4_avg/, "$sse_x86inc";
|
| +
|
| +#
|
| +# Multi-block SAD, comparing a reference to N blocks 1 pixel apart horizontally
|
| +#
|
| +# Blocks of 3
|
| +add_proto qw/void vpx_sad64x64x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +
|
| +add_proto qw/void vpx_sad32x32x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +
|
| +add_proto qw/void vpx_sad16x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad16x16x3 sse3 ssse3/;
|
| +
|
| +add_proto qw/void vpx_sad16x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad16x8x3 sse3 ssse3/;
|
| +
|
| +add_proto qw/void vpx_sad8x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad8x16x3 sse3/;
|
| +
|
| +add_proto qw/void vpx_sad8x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad8x8x3 sse3/;
|
| +
|
| +add_proto qw/void vpx_sad4x4x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad4x4x3 sse3/;
|
| +
|
| +# Blocks of 8
|
| +add_proto qw/void vpx_sad64x64x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +
|
| +add_proto qw/void vpx_sad32x32x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +
|
| +add_proto qw/void vpx_sad16x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad16x16x8 sse4_1/;
|
| +
|
| +add_proto qw/void vpx_sad16x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad16x8x8 sse4_1/;
|
| +
|
| +add_proto qw/void vpx_sad8x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad8x16x8 sse4_1/;
|
| +
|
| +add_proto qw/void vpx_sad8x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad8x8x8 sse4_1/;
|
| +
|
| +add_proto qw/void vpx_sad8x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +
|
| +add_proto qw/void vpx_sad4x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +
|
| +add_proto qw/void vpx_sad4x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad4x4x8 sse4_1/;
|
| +
|
| +#
|
| +# Multi-block SAD, comparing a reference to N independent blocks
|
| +#
|
| +add_proto qw/void vpx_sad64x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad64x64x4d avx2 neon/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad64x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad64x32x4d/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad32x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad32x64x4d/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad32x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad32x32x4d avx2 neon/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad32x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad32x16x4d/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad16x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad16x32x4d/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad16x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad16x16x4d neon/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad16x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad16x8x4d/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad8x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad8x16x4d/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad8x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad8x8x4d/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad8x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad8x4x4d/, "$sse2_x86inc";
|
| +
|
| +add_proto qw/void vpx_sad4x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array";
|
| +specialize qw/vpx_sad4x8x4d/, "$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/, "$sse_x86inc";
|
| +
|
| +if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
|
| + #
|
| + # Single block SAD
|
| + #
|
| + add_proto qw/unsigned int vpx_highbd_sad64x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad64x64/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad64x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad64x32/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad32x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad32x64/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad32x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad32x32/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad32x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad32x16/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad16x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad16x32/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad16x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad16x16/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad16x8/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad8x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad8x16/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad8x8/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad8x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad8x4/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad4x8/;
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad4x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride";
|
| + specialize qw/vpx_highbd_sad4x4/;
|
| +
|
| + #
|
| + # Avg
|
| + #
|
| + add_proto qw/unsigned int vpx_highbd_sad64x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad64x64_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad64x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad64x32_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad32x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad32x64_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad32x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad32x32_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad32x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad32x16_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad16x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad16x32_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad16x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad16x16_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad16x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad16x8_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad8x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad8x16_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad8x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad8x8_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad8x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad8x4_avg/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad4x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad4x8_avg/;
|
| +
|
| + add_proto qw/unsigned int vpx_highbd_sad4x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred";
|
| + specialize qw/vpx_highbd_sad4x4_avg/;
|
| +
|
| + #
|
| + # Multi-block SAD, comparing a reference to N blocks 1 pixel apart horizontally
|
| + #
|
| + # Blocks of 3
|
| + add_proto qw/void vpx_highbd_sad64x64x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad64x64x3/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad32x32x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad32x32x3/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad16x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad16x16x3/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad16x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad16x8x3/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad8x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad8x16x3/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad8x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad8x8x3/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad4x4x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad4x4x3/;
|
| +
|
| + # Blocks of 8
|
| + add_proto qw/void vpx_highbd_sad64x64x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad64x64x8/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad32x32x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad32x32x8/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad16x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad16x16x8/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad16x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad16x8x8/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad8x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad8x16x8/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad8x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad8x8x8/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad8x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad8x4x8/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad4x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad4x8x8/;
|
| +
|
| + add_proto qw/void vpx_highbd_sad4x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array";
|
| + specialize qw/vpx_highbd_sad4x4x8/;
|
| +
|
| + #
|
| + # Multi-block SAD, comparing a reference to N independent blocks
|
| + #
|
| + add_proto qw/void vpx_highbd_sad64x64x4d/, "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_sad64x64x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad64x32x4d/, "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_sad64x32x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad32x64x4d/, "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_sad32x64x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad32x32x4d/, "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_sad32x32x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad32x16x4d/, "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_sad32x16x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad16x32x4d/, "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_sad16x32x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad16x16x4d/, "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_sad16x16x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad16x8x4d/, "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_sad16x8x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad8x16x4d/, "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_sad8x16x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad8x8x4d/, "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_sad8x8x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad8x4x4d/, "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_sad8x4x4d/, "$sse2_x86inc";
|
| +
|
| + add_proto qw/void vpx_highbd_sad4x8x4d/, "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_sad4x8x4d/, "$sse2_x86inc";
|
| +
|
| + 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";
|
| +
|
| +} # CONFIG_VP9_HIGHBITDEPTH
|
| +} # CONFIG_ENCODERS
|
| +
|
| +1;
|
|
|