diff options
Diffstat (limited to 'vpx_dsp/vpx_filter.h')
-rw-r--r-- | vpx_dsp/vpx_filter.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/vpx_dsp/vpx_filter.h b/vpx_dsp/vpx_filter.h new file mode 100644 index 000000000..54357ee6c --- /dev/null +++ b/vpx_dsp/vpx_filter.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2015 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef VPX_VPX_DSP_VPX_FILTER_H_ +#define VPX_VPX_DSP_VPX_FILTER_H_ + +#include <assert.h> +#include "vpx/vpx_integer.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define FILTER_BITS 7 + +#define SUBPEL_BITS 4 +#define SUBPEL_MASK ((1 << SUBPEL_BITS) - 1) +#define SUBPEL_SHIFTS (1 << SUBPEL_BITS) +#define SUBPEL_TAPS 8 + +typedef int16_t InterpKernel[SUBPEL_TAPS]; + +static INLINE int vpx_get_filter_taps(const int16_t *const filter) { + assert(filter[3] != 128); + if (!filter[0] && !filter[1] && !filter[2]) + return 2; + else + return 8; +} + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // VPX_VPX_DSP_VPX_FILTER_H_ |