From: Yi Luo Date: Wed, 28 Sep 2016 00:12:44 +0000 (-0700) Subject: Fix filter type mismatch warning on Visual Studio X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8e46b860c6258b9ee8b158f4f0bff143dc2e6976;p=libvpx Fix filter type mismatch warning on Visual Studio - Move filter look-up functions to corresponding optimization modules. BUG=webm:1296 Change-Id: I87f399609052db2dbc7e5a590afb08b82e3fa89f --- diff --git a/av1/av1_common.mk b/av1/av1_common.mk index 26ef9c5f9..b7710c8d2 100644 --- a/av1/av1_common.mk +++ b/av1/av1_common.mk @@ -72,9 +72,11 @@ AV1_COMMON_SRCS-yes += common/av1_fwd_txfm2d.c AV1_COMMON_SRCS-yes += common/av1_fwd_txfm2d_cfg.h AV1_COMMON_SRCS-yes += common/av1_inv_txfm2d.c AV1_COMMON_SRCS-yes += common/av1_inv_txfm2d_cfg.h +AV1_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/convolve_filter_ssse3.h AV1_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/av1_convolve_ssse3.c AV1_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/av1_convolve_filters_ssse3.c ifeq ($(CONFIG_AOM_HIGHBITDEPTH),yes) +AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/highbd_convolve_filter_sse4.h AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/av1_highbd_convolve_sse4.c AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/av1_highbd_convolve_filters_sse4.c endif diff --git a/av1/common/filter.c b/av1/common/filter.c index 544e3da7e..a91ceaf61 100644 --- a/av1/common/filter.c +++ b/av1/common/filter.c @@ -26,8 +26,8 @@ DECLARE_ALIGNED(256, static const InterpKernel, }; #if USE_TEMPORALFILTER_12TAP -DECLARE_ALIGNED(16, static const int16_t, - sub_pel_filters_temporalfilter_12[SUBPEL_SHIFTS][12]) = { +DECLARE_ALIGNED(16, const int16_t, + av1_sub_pel_filters_temporalfilter_12[SUBPEL_SHIFTS][12]) = { // intfilt 0.8 { 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0 }, { 0, 1, -1, 3, -7, 127, 8, -4, 2, -1, 0, 0 }, @@ -77,8 +77,8 @@ DECLARE_ALIGNED(256, static const InterpKernel, }; #endif // CONFIG_EXT_INTRA -DECLARE_ALIGNED(256, static const int16_t, - sub_pel_filters_10sharp[SUBPEL_SHIFTS][10]) = { +DECLARE_ALIGNED(256, const int16_t, + av1_sub_pel_filters_10sharp[SUBPEL_SHIFTS][10]) = { // intfilt 0.77 { 0, 0, 0, 0, 128, 0, 0, 0, 0, 0 }, { 0, -1, 3, -6, 127, 8, -4, 2, -1, 0 }, @@ -124,8 +124,8 @@ DECLARE_ALIGNED(256, static const InterpKernel, { 0, 2, -12, 37, 94, 14, -9, 2 }, { 0, 2, -11, 31, 95, 19, -10, 2 }, }; -DECLARE_ALIGNED(16, static const int16_t, - sub_pel_filters_12sharp[SUBPEL_SHIFTS][12]) = { +DECLARE_ALIGNED(16, const int16_t, + av1_sub_pel_filters_12sharp[SUBPEL_SHIFTS][12]) = { // intfilt 0.85 { 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0 }, { 0, 1, -2, 3, -7, 127, 8, -4, 2, -1, 1, 0 }, @@ -200,9 +200,9 @@ static const InterpFilterParams av1_interp_filter_params_list[SWITCHABLE_FILTERS + 1] = { { (const int16_t *)sub_pel_filters_8, SUBPEL_TAPS, SUBPEL_SHIFTS }, { (const int16_t *)sub_pel_filters_8smooth, SUBPEL_TAPS, SUBPEL_SHIFTS }, - { (const int16_t *)sub_pel_filters_10sharp, 10, SUBPEL_SHIFTS }, + { (const int16_t *)av1_sub_pel_filters_10sharp, 10, SUBPEL_SHIFTS }, { (const int16_t *)sub_pel_filters_8smooth2, SUBPEL_TAPS, SUBPEL_SHIFTS }, - { (const int16_t *)sub_pel_filters_12sharp, 12, SUBPEL_SHIFTS }, + { (const int16_t *)av1_sub_pel_filters_12sharp, 12, SUBPEL_SHIFTS }, { (const int16_t *)bilinear_filters, SUBPEL_TAPS, SUBPEL_SHIFTS } }; #else @@ -217,7 +217,7 @@ static const InterpFilterParams #if USE_TEMPORALFILTER_12TAP static const InterpFilterParams av1_interp_temporalfilter_12tap = { - (const int16_t *)sub_pel_filters_temporalfilter_12, 12, SUBPEL_SHIFTS + (const int16_t *)av1_sub_pel_filters_temporalfilter_12, 12, SUBPEL_SHIFTS }; #endif // USE_TEMPORALFILTER_12TAP @@ -238,65 +238,3 @@ const int16_t *av1_get_interp_filter_kernel(const InterpFilter interp_filter) { return (const int16_t *)av1_interp_filter_params_list[interp_filter] .filter_ptr; } - -SubpelFilterCoeffs av1_get_subpel_filter_signal_dir(const InterpFilterParams p, - int index) { -#if CONFIG_EXT_INTERP && HAVE_SSSE3 - if (p.filter_ptr == (const int16_t *)sub_pel_filters_12sharp) { - return &sub_pel_filters_12sharp_signal_dir[index][0]; - } - if (p.filter_ptr == (const int16_t *)sub_pel_filters_10sharp) { - return &sub_pel_filters_10sharp_signal_dir[index][0]; - } -#endif -#if USE_TEMPORALFILTER_12TAP && HAVE_SSSE3 - if (p.filter_ptr == (const int16_t *)sub_pel_filters_temporalfilter_12) { - return &sub_pel_filters_temporalfilter_12_signal_dir[index][0]; - } -#endif - (void)p; - (void)index; - return NULL; -} - -SubpelFilterCoeffs av1_get_subpel_filter_ver_signal_dir( - const InterpFilterParams p, int index) { -#if CONFIG_EXT_INTERP && HAVE_SSSE3 - if (p.filter_ptr == (const int16_t *)sub_pel_filters_12sharp) { - return &sub_pel_filters_12sharp_ver_signal_dir[index][0]; - } - if (p.filter_ptr == (const int16_t *)sub_pel_filters_10sharp) { - return &sub_pel_filters_10sharp_ver_signal_dir[index][0]; - } -#endif -#if USE_TEMPORALFILTER_12TAP && HAVE_SSSE3 - if (p.filter_ptr == (const int16_t *)sub_pel_filters_temporalfilter_12) { - return &sub_pel_filters_temporalfilter_12_ver_signal_dir[index][0]; - } -#endif - (void)p; - (void)index; - return NULL; -} - -#if CONFIG_AOM_HIGHBITDEPTH -HbdSubpelFilterCoeffs av1_hbd_get_subpel_filter_ver_signal_dir( - const InterpFilterParams p, int index) { -#if CONFIG_EXT_INTERP && HAVE_SSE4_1 - if (p.filter_ptr == (const int16_t *)sub_pel_filters_12sharp) { - return &sub_pel_filters_12sharp_highbd_ver_signal_dir[index][0]; - } - if (p.filter_ptr == (const int16_t *)sub_pel_filters_10sharp) { - return &sub_pel_filters_10sharp_highbd_ver_signal_dir[index][0]; - } -#endif -#if USE_TEMPORALFILTER_12TAP && HAVE_SSE4_1 - if (p.filter_ptr == (const int16_t *)sub_pel_filters_temporalfilter_12) { - return &sub_pel_filters_temporalfilter_12_highbd_ver_signal_dir[index][0]; - } -#endif - (void)p; - (void)index; - return NULL; -} -#endif diff --git a/av1/common/filter.h b/av1/common/filter.h index b83a0b221..098e38d85 100644 --- a/av1/common/filter.h +++ b/av1/common/filter.h @@ -92,24 +92,15 @@ static INLINE int av1_is_interpolating_filter( } #if USE_TEMPORALFILTER_12TAP -extern const int8_t sub_pel_filters_temporalfilter_12_signal_dir[15][2][16]; -extern const int8_t sub_pel_filters_temporalfilter_12_ver_signal_dir[15][6][16]; -#if CONFIG_AOM_HIGHBITDEPTH -extern const int16_t sub_pel_filters_temporalfilter_12_highbd_ver_signal_dir[15] - [6] - [8]; -#endif +DECLARE_ALIGNED(16, extern const int16_t, + av1_sub_pel_filters_temporalfilter_12[SUBPEL_SHIFTS][12]); #endif #if CONFIG_EXT_INTERP -extern const int8_t sub_pel_filters_12sharp_signal_dir[15][2][16]; -extern const int8_t sub_pel_filters_10sharp_signal_dir[15][2][16]; -extern const int8_t sub_pel_filters_12sharp_ver_signal_dir[15][6][16]; -extern const int8_t sub_pel_filters_10sharp_ver_signal_dir[15][6][16]; -#if CONFIG_AOM_HIGHBITDEPTH -extern const int16_t sub_pel_filters_12sharp_highbd_ver_signal_dir[15][6][8]; -extern const int16_t sub_pel_filters_10sharp_highbd_ver_signal_dir[15][6][8]; -#endif +DECLARE_ALIGNED(256, extern const int16_t, + av1_sub_pel_filters_10sharp[SUBPEL_SHIFTS][10]); +DECLARE_ALIGNED(16, extern const int16_t, + av1_sub_pel_filters_12sharp[SUBPEL_SHIFTS][12]); #endif typedef const int8_t (*SubpelFilterCoeffs)[16]; diff --git a/av1/common/x86/av1_convolve_filters_ssse3.c b/av1/common/x86/av1_convolve_filters_ssse3.c index 7a40b9c57..d6aca3d96 100644 --- a/av1/common/x86/av1_convolve_filters_ssse3.c +++ b/av1/common/x86/av1_convolve_filters_ssse3.c @@ -12,7 +12,7 @@ #if CONFIG_EXT_INTERP DECLARE_ALIGNED(16, const int8_t, - sub_pel_filters_10sharp_signal_dir[15][2][16]) = { + av1_sub_pel_filters_10sharp_signal_dir[15][2][16]) = { { { 0, 0, -1, 3, -6, 127, 8, -4, 2, -1, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, -1, 3, -6, 127, 8, -4, 2, -1, 0, 0, 0, 0 }, @@ -77,7 +77,7 @@ DECLARE_ALIGNED(16, const int8_t, #endif #if CONFIG_EXT_INTERP DECLARE_ALIGNED(16, const int8_t, - sub_pel_filters_10sharp_ver_signal_dir[15][6][16]) = { + av1_sub_pel_filters_10sharp_ver_signal_dir[15][6][16]) = { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3 }, @@ -228,7 +228,7 @@ DECLARE_ALIGNED(16, const int8_t, #endif #if CONFIG_EXT_INTERP DECLARE_ALIGNED(16, const int8_t, - sub_pel_filters_12sharp_signal_dir[15][2][16]) = { + av1_sub_pel_filters_12sharp_signal_dir[15][2][16]) = { { { 0, 1, -2, 3, -7, 127, 8, -4, 2, -1, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 1, -2, 3, -7, 127, 8, -4, 2, -1, 1, 0, 0, 0 }, @@ -293,7 +293,7 @@ DECLARE_ALIGNED(16, const int8_t, #endif #if CONFIG_EXT_INTERP DECLARE_ALIGNED(16, const int8_t, - sub_pel_filters_12sharp_ver_signal_dir[15][6][16]) = { + av1_sub_pel_filters_12sharp_ver_signal_dir[15][6][16]) = { { { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 }, { -2, 3, -2, 3, -2, 3, -2, 3, -2, 3, -2, 3, -2, 3, -2, 3 }, @@ -444,7 +444,7 @@ DECLARE_ALIGNED(16, const int8_t, #endif #if USE_TEMPORALFILTER_12TAP DECLARE_ALIGNED(16, const int8_t, - sub_pel_filters_temporalfilter_12_signal_dir[15][2][16]) = { + av1_sub_pel_filters_temporalfilter_12_signal_dir[15][2][16]) = { { { 0, 1, -1, 3, -7, 127, 8, -4, 2, -1, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 1, -1, 3, -7, 127, 8, -4, 2, -1, 0, 0, 0, 0 }, @@ -509,7 +509,8 @@ DECLARE_ALIGNED(16, const int8_t, #endif #if USE_TEMPORALFILTER_12TAP DECLARE_ALIGNED(16, const int8_t, - sub_pel_filters_temporalfilter_12_ver_signal_dir[15][6][16]) = { + av1_sub_pel_filters_temporalfilter_12_ver_signal_dir[15][6] + [16]) = { { { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 }, { -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3 }, diff --git a/av1/common/x86/av1_convolve_ssse3.c b/av1/common/x86/av1_convolve_ssse3.c index df219f78c..31681ee45 100644 --- a/av1/common/x86/av1_convolve_ssse3.c +++ b/av1/common/x86/av1_convolve_ssse3.c @@ -13,11 +13,51 @@ #include #include "./av1_rtcd.h" -#include "av1/common/filter.h" +#include "av1/common/x86/convolve_filter_ssse3.h" #define WIDTH_BOUND (16) #define HEIGHT_BOUND (16) +static SubpelFilterCoeffs get_subpel_filter_signal_dir( + const InterpFilterParams p, int index) { +#if CONFIG_EXT_INTERP + if (p.filter_ptr == (const int16_t *)av1_sub_pel_filters_12sharp) { + return &av1_sub_pel_filters_12sharp_signal_dir[index][0]; + } + if (p.filter_ptr == (const int16_t *)av1_sub_pel_filters_10sharp) { + return &av1_sub_pel_filters_10sharp_signal_dir[index][0]; + } +#endif +#if USE_TEMPORALFILTER_12TAP + if (p.filter_ptr == (const int16_t *)av1_sub_pel_filters_temporalfilter_12) { + return &av1_sub_pel_filters_temporalfilter_12_signal_dir[index][0]; + } +#endif + (void)p; + (void)index; + return NULL; +} + +static SubpelFilterCoeffs get_subpel_filter_ver_signal_dir( + const InterpFilterParams p, int index) { +#if CONFIG_EXT_INTERP + if (p.filter_ptr == (const int16_t *)av1_sub_pel_filters_12sharp) { + return &av1_sub_pel_filters_12sharp_ver_signal_dir[index][0]; + } + if (p.filter_ptr == (const int16_t *)av1_sub_pel_filters_10sharp) { + return &av1_sub_pel_filters_10sharp_ver_signal_dir[index][0]; + } +#endif +#if USE_TEMPORALFILTER_12TAP + if (p.filter_ptr == (const int16_t *)av1_sub_pel_filters_temporalfilter_12) { + return &av1_sub_pel_filters_temporalfilter_12_ver_signal_dir[index][0]; + } +#endif + (void)p; + (void)index; + return NULL; +} + static INLINE void transpose_4x8(const __m128i *in, __m128i *out) { __m128i t0, t1; @@ -636,9 +676,8 @@ void av1_convolve_horiz_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, return; } - hCoeffs = av1_get_subpel_filter_signal_dir(filter_params, subpel_x_q4 - 1); - vCoeffs = - av1_get_subpel_filter_ver_signal_dir(filter_params, subpel_x_q4 - 1); + hCoeffs = get_subpel_filter_signal_dir(filter_params, subpel_x_q4 - 1); + vCoeffs = get_subpel_filter_ver_signal_dir(filter_params, subpel_x_q4 - 1); if (!hCoeffs || !vCoeffs) { av1_convolve_horiz_c(src, src_stride, dst, dst_stride, w, h, filter_params, @@ -845,8 +884,7 @@ void av1_convolve_vert_ssse3(const uint8_t *src, int src_stride, uint8_t *dst, return; } - vCoeffs = - av1_get_subpel_filter_ver_signal_dir(filter_params, subpel_y_q4 - 1); + vCoeffs = get_subpel_filter_ver_signal_dir(filter_params, subpel_y_q4 - 1); if (!vCoeffs) { av1_convolve_vert_c(src, src_stride, dst, dst_stride, w, h, filter_params, diff --git a/av1/common/x86/av1_highbd_convolve_filters_sse4.c b/av1/common/x86/av1_highbd_convolve_filters_sse4.c index d7129c6bb..60d9ab3c3 100644 --- a/av1/common/x86/av1_highbd_convolve_filters_sse4.c +++ b/av1/common/x86/av1_highbd_convolve_filters_sse4.c @@ -13,7 +13,7 @@ #if CONFIG_AOM_HIGHBITDEPTH #if CONFIG_EXT_INTERP DECLARE_ALIGNED(16, const int16_t, - sub_pel_filters_10sharp_highbd_ver_signal_dir[15][6][8]) = { + av1_sub_pel_filters_10sharp_highbd_ver_signal_dir[15][6][8]) = { { { 0, 0, 0, 0, 0, 0, 0, 0 }, { -1, 3, -1, 3, -1, 3, -1, 3 }, @@ -140,7 +140,7 @@ DECLARE_ALIGNED(16, const int16_t, #if CONFIG_AOM_HIGHBITDEPTH #if CONFIG_EXT_INTERP DECLARE_ALIGNED(16, const int16_t, - sub_pel_filters_12sharp_highbd_ver_signal_dir[15][6][8]) = { + av1_sub_pel_filters_12sharp_highbd_ver_signal_dir[15][6][8]) = { { { 0, 1, 0, 1, 0, 1, 0, 1 }, { -2, 3, -2, 3, -2, 3, -2, 3 }, @@ -266,9 +266,9 @@ DECLARE_ALIGNED(16, const int16_t, #endif #if CONFIG_AOM_HIGHBITDEPTH #if USE_TEMPORALFILTER_12TAP -DECLARE_ALIGNED(16, const int16_t, - sub_pel_filters_temporalfilter_12_highbd_ver_signal_dir[15][6] - [8]) = { +DECLARE_ALIGNED( + 16, const int16_t, + av1_sub_pel_filters_temporalfilter_12_highbd_ver_signal_dir[15][6][8]) = { { { 0, 1, 0, 1, 0, 1, 0, 1 }, { -1, 3, -1, 3, -1, 3, -1, 3 }, diff --git a/av1/common/x86/av1_highbd_convolve_sse4.c b/av1/common/x86/av1_highbd_convolve_sse4.c index 89d3aef51..5c177f56d 100644 --- a/av1/common/x86/av1_highbd_convolve_sse4.c +++ b/av1/common/x86/av1_highbd_convolve_sse4.c @@ -13,12 +13,33 @@ #include #include "./av1_rtcd.h" -#include "av1/common/filter.h" +#include "av1/common/x86/highbd_convolve_filter_sse4.h" typedef void (*TransposeSave)(const int width, int pixelsNum, uint32_t *src, int src_stride, uint16_t *dst, int dst_stride, int bd); +static HbdSubpelFilterCoeffs hbd_get_subpel_filter_ver_signal_dir( + const InterpFilterParams p, int index) { +#if CONFIG_EXT_INTERP + if (p.filter_ptr == (const int16_t *)av1_sub_pel_filters_12sharp) { + return &av1_sub_pel_filters_12sharp_highbd_ver_signal_dir[index][0]; + } + if (p.filter_ptr == (const int16_t *)av1_sub_pel_filters_10sharp) { + return &av1_sub_pel_filters_10sharp_highbd_ver_signal_dir[index][0]; + } +#endif +#if USE_TEMPORALFILTER_12TAP + if (p.filter_ptr == (const int16_t *)av1_sub_pel_filters_temporalfilter_12) { + return &av1_sub_pel_filters_temporalfilter_12_highbd_ver_signal_dir[index] + [0]; + } +#endif + (void)p; + (void)index; + return NULL; +} + // pixelsNum 0: write all 4 pixels // 1/2/3: residual pixels 1/2/3 static void writePixel(__m128i *u, int width, int pixelsNum, uint16_t *dst, @@ -235,7 +256,7 @@ void av1_highbd_convolve_horiz_sse4_1(const uint16_t *src, int src_stride, } vCoeffs = - av1_hbd_get_subpel_filter_ver_signal_dir(filter_params, subpel_x_q4 - 1); + hbd_get_subpel_filter_ver_signal_dir(filter_params, subpel_x_q4 - 1); if (!vCoeffs) { av1_highbd_convolve_horiz_c(src, src_stride, dst, dst_stride, w, h, filter_params, subpel_x_q4, x_step_q4, avg, bd); @@ -439,7 +460,7 @@ void av1_highbd_convolve_vert_sse4_1(const uint16_t *src, int src_stride, } vCoeffs = - av1_hbd_get_subpel_filter_ver_signal_dir(filter_params, subpel_y_q4 - 1); + hbd_get_subpel_filter_ver_signal_dir(filter_params, subpel_y_q4 - 1); if (!vCoeffs) { av1_highbd_convolve_vert_c(src, src_stride, dst, dst_stride, w, h, filter_params, subpel_y_q4, y_step_q4, avg, bd); diff --git a/av1/common/x86/convolve_filter_ssse3.h b/av1/common/x86/convolve_filter_ssse3.h new file mode 100644 index 000000000..5dbcc4fce --- /dev/null +++ b/av1/common/x86/convolve_filter_ssse3.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2016, Alliance for Open Media. All rights reserved + * + * This source code is subject to the terms of the BSD 2 Clause License and + * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License + * was not distributed with this source code in the LICENSE file, you can + * obtain it at www.aomedia.org/license/software. If the Alliance for Open + * Media Patent License 1.0 was not distributed with this source code in the + * PATENTS file, you can obtain it at www.aomedia.org/license/patent. + */ + +#ifndef AV1_COMMON_X86_CONVOLVE_FILTER_SSSE3_H_ +#define AV1_COMMON_X86_CONVOLVE_FILTER_SSSE3_H_ + +#include "./aom_config.h" +#include "av1/common/filter.h" + +#if USE_TEMPORALFILTER_12TAP +DECLARE_ALIGNED(16, extern const int8_t, + av1_sub_pel_filters_temporalfilter_12_signal_dir[15][2][16]); +DECLARE_ALIGNED(16, extern const int8_t, + av1_sub_pel_filters_temporalfilter_12_ver_signal_dir[15][6] + [16]); +#endif + +#if CONFIG_EXT_INTERP +DECLARE_ALIGNED(16, extern const int8_t, + av1_sub_pel_filters_12sharp_signal_dir[15][2][16]); +DECLARE_ALIGNED(16, extern const int8_t, + av1_sub_pel_filters_10sharp_signal_dir[15][2][16]); +DECLARE_ALIGNED(16, extern const int8_t, + av1_sub_pel_filters_12sharp_ver_signal_dir[15][6][16]); +DECLARE_ALIGNED(16, extern const int8_t, + av1_sub_pel_filters_10sharp_ver_signal_dir[15][6][16]); +#endif + +#endif // AV1_COMMON_X86_CONVOLVE_FILTER_SSSE3_H_ diff --git a/av1/common/x86/highbd_convolve_filter_sse4.h b/av1/common/x86/highbd_convolve_filter_sse4.h new file mode 100644 index 000000000..3a3fda839 --- /dev/null +++ b/av1/common/x86/highbd_convolve_filter_sse4.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2016, Alliance for Open Media. All rights reserved + * + * This source code is subject to the terms of the BSD 2 Clause License and + * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License + * was not distributed with this source code in the LICENSE file, you can + * obtain it at www.aomedia.org/license/software. If the Alliance for Open + * Media Patent License 1.0 was not distributed with this source code in the + * PATENTS file, you can obtain it at www.aomedia.org/license/patent. + */ + +#ifndef AV1_COMMON_X86_HIGHBD_CONVOLVE_FILTER_SSE4_H_ +#define AV1_COMMON_X86_HIGHBD_CONVOLVE_FILTER_SSE4_H_ + +#include "./aom_config.h" +#include "av1/common/filter.h" + +#if USE_TEMPORALFILTER_12TAP +DECLARE_ALIGNED(16, extern const int16_t, + av1_sub_pel_filters_temporalfilter_12_highbd_ver_signal_dir[15] + [6] + [8]); +#endif + +#if CONFIG_EXT_INTERP +DECLARE_ALIGNED(16, extern const int16_t, + av1_sub_pel_filters_12sharp_highbd_ver_signal_dir[15][6][8]); +DECLARE_ALIGNED(16, extern const int16_t, + av1_sub_pel_filters_10sharp_highbd_ver_signal_dir[15][6][8]); +#endif + +#endif // AV1_COMMON_X86_HIGHBD_CONVOLVE_FILTER_SSE4_H_