27 const int16_t *low, ptrdiff_t low_stride,
28 const int16_t *
high, ptrdiff_t high_stride,
34 tmp = (11*low[0*low_stride] - 4*low[1*low_stride] + low[2*low_stride] + 4) >> 3;
35 output[(2*0+0)*out_stride] = (
tmp +
high[0*high_stride]) >> 1;
39 tmp = ( 5*low[0*low_stride] + 4*low[1*low_stride] - low[2*low_stride] + 4) >> 3;
40 output[(2*0+1)*out_stride] = (
tmp -
high[0*high_stride]) >> 1;
44 for (
i = 1;
i <
len - 1;
i++) {
45 tmp = (low[(
i-1)*low_stride] - low[(
i+1)*low_stride] + 4) >> 3;
46 output[(2*
i+0)*out_stride] = (
tmp + low[
i*low_stride] +
high[
i*high_stride]) >> 1;
50 tmp = (low[(
i+1)*low_stride] - low[(
i-1)*low_stride] + 4) >> 3;
51 output[(2*
i+1)*out_stride] = (
tmp + low[
i*low_stride] -
high[
i*high_stride]) >> 1;
56 tmp = ( 5*low[
i*low_stride] + 4*low[(
i-1)*low_stride] - low[(
i-2)*low_stride] + 4) >> 3;
57 output[(2*
i+0)*out_stride] = (
tmp +
high[
i*high_stride]) >> 1;
61 tmp = (11*low[
i*low_stride] - 4*low[(
i-1)*low_stride] + low[(
i-2)*low_stride] + 4) >> 3;
62 output[(2*
i+1)*out_stride] = (
tmp -
high[
i*high_stride]) >> 1;
68 const int16_t *low, ptrdiff_t low_stride,
69 const int16_t *
high, ptrdiff_t high_stride,
81 const int16_t *low, ptrdiff_t lstride,
82 const int16_t *
high, ptrdiff_t hstride,
89 output += ostride * 2;
115#if ARCH_X86 && HAVE_X86ASM
#define i(width, name, range_min, range_max)
static void horiz_filter(int16_t *output, ptrdiff_t ostride, const int16_t *low, ptrdiff_t lstride, const int16_t *high, ptrdiff_t hstride, int width, int height)
static void horiz_filter_clip(int16_t *output, const int16_t *low, const int16_t *high, int width, int clip)
static void horiz_filter_clip_bayer(int16_t *output, const int16_t *low, const int16_t *high, int width, int clip)
av_cold void ff_cfhddsp_init(CFHDDSPContext *c, int depth, int bayer)
static void vert_filter(int16_t *output, ptrdiff_t out_stride, const int16_t *low, ptrdiff_t low_stride, const int16_t *high, ptrdiff_t high_stride, int width, int height)
void ff_cfhddsp_init_x86(CFHDDSPContext *c, int format, int bayer)
common internal and external API header
static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p)
Clip a signed integer to an unsigned power of two range.
Macro definitions for various function/variable attributes.
void(* filter)(uint8_t *src, ptrdiff_t stride, int qscale)