FFmpeg
|
#include "libavutil/attributes.h"
#include "libavutil/cpu.h"
#include "libavutil/x86/asm.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/h264dsp.h"
#include "libavcodec/mpegvideo.h"
#include "libavcodec/simple_idct.h"
#include "libavcodec/videodsp.h"
#include "dsputil_mmx.h"
#include "idct_xvid.h"
#include "diracdsp_mmx.h"
Go to the source code of this file.
Macros | |
#define | SET_QPEL_FUNCS(PFX, IDX, SIZE, CPU, PREFIX) |
#define | SET_HPEL_FUNCS(PFX, IDX, SIZE, CPU) |
Functions | |
void | ff_h263_v_loop_filter_mmx (uint8_t *src, int stride, int qscale) |
void | ff_h263_h_loop_filter_mmx (uint8_t *src, int stride, int qscale) |
void | ff_put_pixels16_sse2 (uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) |
void | ff_avg_pixels16_sse2 (uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) |
int32_t | ff_scalarproduct_int16_mmxext (const int16_t *v1, const int16_t *v2, int order) |
int32_t | ff_scalarproduct_int16_sse2 (const int16_t *v1, const int16_t *v2, int order) |
int32_t | ff_scalarproduct_and_madd_int16_mmxext (int16_t *v1, const int16_t *v2, const int16_t *v3, int order, int mul) |
int32_t | ff_scalarproduct_and_madd_int16_sse2 (int16_t *v1, const int16_t *v2, const int16_t *v3, int order, int mul) |
int32_t | ff_scalarproduct_and_madd_int16_ssse3 (int16_t *v1, const int16_t *v2, const int16_t *v3, int order, int mul) |
void | ff_apply_window_int16_round_mmxext (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
void | ff_apply_window_int16_round_sse2 (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
void | ff_apply_window_int16_mmxext (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
void | ff_apply_window_int16_sse2 (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
void | ff_apply_window_int16_ssse3 (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
void | ff_apply_window_int16_ssse3_atom (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
void | ff_bswap32_buf_ssse3 (uint32_t *dst, const uint32_t *src, int w) |
void | ff_bswap32_buf_sse2 (uint32_t *dst, const uint32_t *src, int w) |
void | ff_add_hfyu_median_prediction_mmxext (uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top) |
int | ff_add_hfyu_left_prediction_ssse3 (uint8_t *dst, const uint8_t *src, int w, int left) |
int | ff_add_hfyu_left_prediction_sse4 (uint8_t *dst, const uint8_t *src, int w, int left) |
void | ff_vector_clip_int32_mmx (int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len) |
void | ff_vector_clip_int32_sse2 (int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len) |
void | ff_vector_clip_int32_int_sse2 (int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len) |
void | ff_vector_clip_int32_sse4 (int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len) |
static av_cold void | dsputil_init_mmx (DSPContext *c, AVCodecContext *avctx, int mm_flags) |
static av_cold void | dsputil_init_mmxext (DSPContext *c, AVCodecContext *avctx, int mm_flags) |
static av_cold void | dsputil_init_3dnow (DSPContext *c, AVCodecContext *avctx, int mm_flags) |
static av_cold void | dsputil_init_sse (DSPContext *c, AVCodecContext *avctx, int mm_flags) |
static av_cold void | dsputil_init_sse2 (DSPContext *c, AVCodecContext *avctx, int mm_flags) |
static av_cold void | dsputil_init_ssse3 (DSPContext *c, AVCodecContext *avctx, int mm_flags) |
static av_cold void | dsputil_init_sse4 (DSPContext *c, AVCodecContext *avctx, int mm_flags) |
av_cold void | ff_dsputil_init_mmx (DSPContext *c, AVCodecContext *avctx) |
Variables | |
const uint64_t | ff_bone = 0x0101010101010101ULL |
const uint64_t | ff_wtwo = 0x0002000200020002ULL |
const xmm_reg | ff_pw_1 = { 0x0001000100010001ULL, 0x0001000100010001ULL } |
const xmm_reg | ff_pw_2 = { 0x0002000200020002ULL, 0x0002000200020002ULL } |
const xmm_reg | ff_pw_3 = { 0x0003000300030003ULL, 0x0003000300030003ULL } |
const xmm_reg | ff_pw_4 = { 0x0004000400040004ULL, 0x0004000400040004ULL } |
const xmm_reg | ff_pw_5 = { 0x0005000500050005ULL, 0x0005000500050005ULL } |
const xmm_reg | ff_pw_8 = { 0x0008000800080008ULL, 0x0008000800080008ULL } |
const xmm_reg | ff_pw_9 = { 0x0009000900090009ULL, 0x0009000900090009ULL } |
const uint64_t | ff_pw_15 = 0x000F000F000F000FULL |
const xmm_reg | ff_pw_16 = { 0x0010001000100010ULL, 0x0010001000100010ULL } |
const xmm_reg | ff_pw_17 = { 0x0011001100110011ULL, 0x0011001100110011ULL } |
const xmm_reg | ff_pw_18 = { 0x0012001200120012ULL, 0x0012001200120012ULL } |
const uint64_t | ff_pw_20 = 0x0014001400140014ULL |
const xmm_reg | ff_pw_27 = { 0x001B001B001B001BULL, 0x001B001B001B001BULL } |
const xmm_reg | ff_pw_28 = { 0x001C001C001C001CULL, 0x001C001C001C001CULL } |
const xmm_reg | ff_pw_32 = { 0x0020002000200020ULL, 0x0020002000200020ULL } |
const uint64_t | ff_pw_42 = 0x002A002A002A002AULL |
const uint64_t | ff_pw_53 = 0x0035003500350035ULL |
const xmm_reg | ff_pw_63 = { 0x003F003F003F003FULL, 0x003F003F003F003FULL } |
const xmm_reg | ff_pw_64 = { 0x0040004000400040ULL, 0x0040004000400040ULL } |
const uint64_t | ff_pw_96 = 0x0060006000600060ULL |
const uint64_t | ff_pw_128 = 0x0080008000800080ULL |
const uint64_t | ff_pw_255 = 0x00ff00ff00ff00ffULL |
const xmm_reg | ff_pw_512 = { 0x0200020002000200ULL, 0x0200020002000200ULL } |
const xmm_reg | ff_pw_1019 = { 0x03FB03FB03FB03FBULL, 0x03FB03FB03FB03FBULL } |
const xmm_reg | ff_pb_0 = { 0x0000000000000000ULL, 0x0000000000000000ULL } |
const xmm_reg | ff_pb_1 = { 0x0101010101010101ULL, 0x0101010101010101ULL } |
const xmm_reg | ff_pb_3 = { 0x0303030303030303ULL, 0x0303030303030303ULL } |
const xmm_reg | ff_pb_4 = { 0x0404040404040404ULL, 0x0404040404040404ULL } |
const uint64_t | ff_pb_7 = 0x0707070707070707ULL |
const uint64_t | ff_pb_1F = 0x1F1F1F1F1F1F1F1FULL |
const uint64_t | ff_pb_3F = 0x3F3F3F3F3F3F3F3FULL |
const xmm_reg | ff_pb_80 = { 0x8080808080808080ULL, 0x8080808080808080ULL } |
const uint64_t | ff_pb_81 = 0x8181818181818181ULL |
const xmm_reg | ff_pb_A1 = { 0xA1A1A1A1A1A1A1A1ULL, 0xA1A1A1A1A1A1A1A1ULL } |
const xmm_reg | ff_pb_F8 = { 0xF8F8F8F8F8F8F8F8ULL, 0xF8F8F8F8F8F8F8F8ULL } |
const uint64_t | ff_pb_FC = 0xFCFCFCFCFCFCFCFCULL |
const xmm_reg | ff_pb_FE = { 0xFEFEFEFEFEFEFEFEULL, 0xFEFEFEFEFEFEFEFEULL } |
const double | ff_pd_1 [2] = { 1.0, 1.0 } |
const double | ff_pd_2 [2] = { 2.0, 2.0 } |
#define SET_QPEL_FUNCS | ( | PFX, | |
IDX, | |||
SIZE, | |||
CPU, | |||
PREFIX | |||
) |
Definition at line 1560 of file dsputil_mmx.c.
Referenced by dsputil_init_mmxext().
#define SET_HPEL_FUNCS | ( | PFX, | |
IDX, | |||
SIZE, | |||
CPU | |||
) |
Definition at line 1580 of file dsputil_mmx.c.
Referenced by dsputil_init_mmx().
Referenced by dsputil_init_mmx().
Referenced by dsputil_init_mmx().
Referenced by dsputil_init_sse2().
Referenced by dsputil_init_sse2().
int32_t ff_scalarproduct_int16_mmxext | ( | const int16_t * | v1, |
const int16_t * | v2, | ||
int | order | ||
) |
Referenced by dsputil_init_mmxext().
int32_t ff_scalarproduct_int16_sse2 | ( | const int16_t * | v1, |
const int16_t * | v2, | ||
int | order | ||
) |
Referenced by dsputil_init_sse2().
int32_t ff_scalarproduct_and_madd_int16_mmxext | ( | int16_t * | v1, |
const int16_t * | v2, | ||
const int16_t * | v3, | ||
int | order, | ||
int | mul | ||
) |
Referenced by dsputil_init_mmxext().
int32_t ff_scalarproduct_and_madd_int16_sse2 | ( | int16_t * | v1, |
const int16_t * | v2, | ||
const int16_t * | v3, | ||
int | order, | ||
int | mul | ||
) |
Referenced by dsputil_init_sse2().
int32_t ff_scalarproduct_and_madd_int16_ssse3 | ( | int16_t * | v1, |
const int16_t * | v2, | ||
const int16_t * | v3, | ||
int | order, | ||
int | mul | ||
) |
Referenced by dsputil_init_ssse3().
void ff_apply_window_int16_round_mmxext | ( | int16_t * | output, |
const int16_t * | input, | ||
const int16_t * | window, | ||
unsigned int | len | ||
) |
Referenced by dsputil_init_mmxext().
void ff_apply_window_int16_round_sse2 | ( | int16_t * | output, |
const int16_t * | input, | ||
const int16_t * | window, | ||
unsigned int | len | ||
) |
Referenced by dsputil_init_sse2().
void ff_apply_window_int16_mmxext | ( | int16_t * | output, |
const int16_t * | input, | ||
const int16_t * | window, | ||
unsigned int | len | ||
) |
Referenced by dsputil_init_mmxext().
void ff_apply_window_int16_sse2 | ( | int16_t * | output, |
const int16_t * | input, | ||
const int16_t * | window, | ||
unsigned int | len | ||
) |
Referenced by dsputil_init_sse2().
void ff_apply_window_int16_ssse3 | ( | int16_t * | output, |
const int16_t * | input, | ||
const int16_t * | window, | ||
unsigned int | len | ||
) |
Referenced by dsputil_init_ssse3().
void ff_apply_window_int16_ssse3_atom | ( | int16_t * | output, |
const int16_t * | input, | ||
const int16_t * | window, | ||
unsigned int | len | ||
) |
Referenced by dsputil_init_ssse3().
void ff_bswap32_buf_ssse3 | ( | uint32_t * | dst, |
const uint32_t * | src, | ||
int | w | ||
) |
Referenced by dsputil_init_ssse3().
void ff_bswap32_buf_sse2 | ( | uint32_t * | dst, |
const uint32_t * | src, | ||
int | w | ||
) |
Referenced by dsputil_init_sse2().
void ff_add_hfyu_median_prediction_mmxext | ( | uint8_t * | dst, |
const uint8_t * | top, | ||
const uint8_t * | diff, | ||
int | w, | ||
int * | left, | ||
int * | left_top | ||
) |
Referenced by dsputil_init_mmxext().
Referenced by dsputil_init_ssse3().
Referenced by dsputil_init_ssse3().
void ff_vector_clip_int32_mmx | ( | int32_t * | dst, |
const int32_t * | src, | ||
int32_t | min, | ||
int32_t | max, | ||
unsigned int | len | ||
) |
Referenced by dsputil_init_mmx().
void ff_vector_clip_int32_sse2 | ( | int32_t * | dst, |
const int32_t * | src, | ||
int32_t | min, | ||
int32_t | max, | ||
unsigned int | len | ||
) |
Referenced by dsputil_init_sse2().
void ff_vector_clip_int32_int_sse2 | ( | int32_t * | dst, |
const int32_t * | src, | ||
int32_t | min, | ||
int32_t | max, | ||
unsigned int | len | ||
) |
Referenced by dsputil_init_sse2().
void ff_vector_clip_int32_sse4 | ( | int32_t * | dst, |
const int32_t * | src, | ||
int32_t | min, | ||
int32_t | max, | ||
unsigned int | len | ||
) |
Referenced by dsputil_init_sse4().
|
static |
Definition at line 1588 of file dsputil_mmx.c.
Referenced by ff_dsputil_init_mmx().
|
static |
Definition at line 1630 of file dsputil_mmx.c.
Referenced by ff_dsputil_init_mmx().
|
static |
Definition at line 1696 of file dsputil_mmx.c.
Referenced by ff_dsputil_init_mmx().
|
static |
Definition at line 1736 of file dsputil_mmx.c.
Referenced by ff_dsputil_init_mmx().
|
static |
Definition at line 1760 of file dsputil_mmx.c.
Referenced by ff_dsputil_init_mmx().
|
static |
Definition at line 1801 of file dsputil_mmx.c.
Referenced by ff_dsputil_init_mmx().
|
static |
Definition at line 1819 of file dsputil_mmx.c.
Referenced by ff_dsputil_init_mmx().
av_cold void ff_dsputil_init_mmx | ( | DSPContext * | c, |
AVCodecContext * | avctx | ||
) |
Definition at line 1827 of file dsputil_mmx.c.
Referenced by ff_dsputil_init().
const uint64_t ff_bone = 0x0101010101010101ULL |
Definition at line 41 of file dsputil_mmx.c.
const uint64_t ff_wtwo = 0x0002000200020002ULL |
Definition at line 42 of file dsputil_mmx.c.
const xmm_reg ff_pw_1 = { 0x0001000100010001ULL, 0x0001000100010001ULL } |
Definition at line 44 of file dsputil_mmx.c.
const xmm_reg ff_pw_2 = { 0x0002000200020002ULL, 0x0002000200020002ULL } |
Definition at line 45 of file dsputil_mmx.c.
const xmm_reg ff_pw_3 = { 0x0003000300030003ULL, 0x0003000300030003ULL } |
Definition at line 46 of file dsputil_mmx.c.
const xmm_reg ff_pw_4 = { 0x0004000400040004ULL, 0x0004000400040004ULL } |
Definition at line 47 of file dsputil_mmx.c.
const xmm_reg ff_pw_5 = { 0x0005000500050005ULL, 0x0005000500050005ULL } |
Definition at line 48 of file dsputil_mmx.c.
const xmm_reg ff_pw_8 = { 0x0008000800080008ULL, 0x0008000800080008ULL } |
Definition at line 49 of file dsputil_mmx.c.
const xmm_reg ff_pw_9 = { 0x0009000900090009ULL, 0x0009000900090009ULL } |
Definition at line 50 of file dsputil_mmx.c.
const uint64_t ff_pw_15 = 0x000F000F000F000FULL |
Definition at line 51 of file dsputil_mmx.c.
const xmm_reg ff_pw_16 = { 0x0010001000100010ULL, 0x0010001000100010ULL } |
Definition at line 52 of file dsputil_mmx.c.
const xmm_reg ff_pw_17 = { 0x0011001100110011ULL, 0x0011001100110011ULL } |
Definition at line 53 of file dsputil_mmx.c.
const xmm_reg ff_pw_18 = { 0x0012001200120012ULL, 0x0012001200120012ULL } |
Definition at line 54 of file dsputil_mmx.c.
const uint64_t ff_pw_20 = 0x0014001400140014ULL |
Definition at line 55 of file dsputil_mmx.c.
const xmm_reg ff_pw_27 = { 0x001B001B001B001BULL, 0x001B001B001B001BULL } |
Definition at line 56 of file dsputil_mmx.c.
const xmm_reg ff_pw_28 = { 0x001C001C001C001CULL, 0x001C001C001C001CULL } |
Definition at line 57 of file dsputil_mmx.c.
const xmm_reg ff_pw_32 = { 0x0020002000200020ULL, 0x0020002000200020ULL } |
Definition at line 58 of file dsputil_mmx.c.
const uint64_t ff_pw_42 = 0x002A002A002A002AULL |
Definition at line 59 of file dsputil_mmx.c.
const uint64_t ff_pw_53 = 0x0035003500350035ULL |
Definition at line 60 of file dsputil_mmx.c.
const xmm_reg ff_pw_63 = { 0x003F003F003F003FULL, 0x003F003F003F003FULL } |
Definition at line 61 of file dsputil_mmx.c.
const xmm_reg ff_pw_64 = { 0x0040004000400040ULL, 0x0040004000400040ULL } |
Definition at line 62 of file dsputil_mmx.c.
const uint64_t ff_pw_96 = 0x0060006000600060ULL |
Definition at line 63 of file dsputil_mmx.c.
const uint64_t ff_pw_128 = 0x0080008000800080ULL |
Definition at line 64 of file dsputil_mmx.c.
const uint64_t ff_pw_255 = 0x00ff00ff00ff00ffULL |
Definition at line 65 of file dsputil_mmx.c.
const xmm_reg ff_pw_512 = { 0x0200020002000200ULL, 0x0200020002000200ULL } |
Definition at line 66 of file dsputil_mmx.c.
const xmm_reg ff_pw_1019 = { 0x03FB03FB03FB03FBULL, 0x03FB03FB03FB03FBULL } |
Definition at line 67 of file dsputil_mmx.c.
const xmm_reg ff_pb_0 = { 0x0000000000000000ULL, 0x0000000000000000ULL } |
Definition at line 69 of file dsputil_mmx.c.
const xmm_reg ff_pb_1 = { 0x0101010101010101ULL, 0x0101010101010101ULL } |
Definition at line 70 of file dsputil_mmx.c.
const xmm_reg ff_pb_3 = { 0x0303030303030303ULL, 0x0303030303030303ULL } |
Definition at line 71 of file dsputil_mmx.c.
const xmm_reg ff_pb_4 = { 0x0404040404040404ULL, 0x0404040404040404ULL } |
Definition at line 72 of file dsputil_mmx.c.
const uint64_t ff_pb_7 = 0x0707070707070707ULL |
Definition at line 73 of file dsputil_mmx.c.
const uint64_t ff_pb_1F = 0x1F1F1F1F1F1F1F1FULL |
Definition at line 74 of file dsputil_mmx.c.
const uint64_t ff_pb_3F = 0x3F3F3F3F3F3F3F3FULL |
Definition at line 75 of file dsputil_mmx.c.
const xmm_reg ff_pb_80 = { 0x8080808080808080ULL, 0x8080808080808080ULL } |
Definition at line 76 of file dsputil_mmx.c.
const uint64_t ff_pb_81 = 0x8181818181818181ULL |
Definition at line 77 of file dsputil_mmx.c.
const xmm_reg ff_pb_A1 = { 0xA1A1A1A1A1A1A1A1ULL, 0xA1A1A1A1A1A1A1A1ULL } |
Definition at line 78 of file dsputil_mmx.c.
const xmm_reg ff_pb_F8 = { 0xF8F8F8F8F8F8F8F8ULL, 0xF8F8F8F8F8F8F8F8ULL } |
Definition at line 79 of file dsputil_mmx.c.
const uint64_t ff_pb_FC = 0xFCFCFCFCFCFCFCFCULL |
Definition at line 80 of file dsputil_mmx.c.
const xmm_reg ff_pb_FE = { 0xFEFEFEFEFEFEFEFEULL, 0xFEFEFEFEFEFEFEFEULL } |
Definition at line 81 of file dsputil_mmx.c.
const double ff_pd_1[2] = { 1.0, 1.0 } |
Definition at line 83 of file dsputil_mmx.c.
const double ff_pd_2[2] = { 2.0, 2.0 } |
Definition at line 84 of file dsputil_mmx.c.