79#define hadamard_func(cpu) \
80 int ff_hadamard8_diff_ ## cpu(MPVEncContext *s, const uint8_t *src1, \
81 const uint8_t *src2, ptrdiff_t stride, int h); \
82 int ff_hadamard8_diff16_ ## cpu(MPVEncContext *s, const uint8_t *src1, \
83 const uint8_t *src2, ptrdiff_t stride, int h);
88static int nsse16_ssse3(
MPVEncContext *
c,
const uint8_t *pix1,
const uint8_t *pix2,
96 return score1 +
FFABS(score2) *
c->c.avctx->nsse_weight;
98 return score1 +
FFABS(score2) * 8;
109 return score1 +
FFABS(score2) *
c->c.avctx->nsse_weight;
111 return score1 +
FFABS(score2) * 8;
144 c->hadamard8_diff[0] = ff_hadamard8_diff16_sse2;
145 c->hadamard8_diff[1] = ff_hadamard8_diff_sse2;
171 c->nsse[0] = nsse16_ssse3;
175 c->hadamard8_diff[0] = ff_hadamard8_diff16_ssse3;
176 c->hadamard8_diff[1] = ff_hadamard8_diff_ssse3;
#define FFABS(a)
Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable ...
#define AV_CODEC_FLAG_BITEXACT
Use only bitexact stuff (except (I)DCT).
Macro definitions for various function/variable attributes.
static atomic_int cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
#define EXTERNAL_MMXEXT(flags)
#define EXTERNAL_SSSE3(flags)
#define EXTERNAL_SSE2(flags)
main external API structure.
int flags
AV_CODEC_FLAG_*.
int ff_sad8_approx_xy2_mmxext(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_median_sad8_ssse3(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_sad8_mmxext(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_sse16_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
#define hadamard_func(cpu)
int ff_sad8_x2_mmxext(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_sad16_xy2_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_vsad_intra16u_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_hf_noise8_ssse3(const uint8_t *pix1, ptrdiff_t stride, int h)
int ff_sad16_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_vsad_intra16_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_vsad8_approx_mmxext(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_vsad_intra8_mmxext(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_sum_abs_dctelem_ssse3(const int16_t *block)
int ff_sse8_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_sad8_y2_mmxext(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_sad16_x2_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_median_sad16_ssse3(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
av_cold void ff_me_cmp_init_x86(MECmpContext *c, AVCodecContext *avctx)
int ff_sad16_approx_xy2_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_sum_abs_dctelem_sse2(const int16_t *block)
int ff_hf_noise16_ssse3(const uint8_t *pix1, ptrdiff_t stride, int h)
int ff_vsad16_approx_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_vsad16u_approx_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
static int nsse8_ssse3(MPVEncContext *c, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_sad8_xy2_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_sad16u_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)
int ff_sad16_y2_sse2(MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h)