#include <stdint.h>
#include "libavcodec/dsputil.h"
Go to the source code of this file.
Data Structures | |
struct | xmm_reg |
Defines | |
#define | LOAD4(stride, in, a, b, c, d) |
#define | STORE4(stride, out, a, b, c, d) |
#define | SUMSUB_BA(a, b) |
#define | SBUTTERFLY(a, b, t, n, m) |
#define | TRANSPOSE4(a, b, c, d, t) |
#define | TRANSPOSE8x4(a, b, c, d, e, f, g, h, t) |
#define | TRANSPOSE8(a, b, c, d, e, f, g, h, t) |
#define | MOVQ_WONE(regd) |
Functions | |
void | dsputilenc_init_mmx (DSPContext *c, AVCodecContext *avctx) |
void | dsputil_init_pix_mmx (DSPContext *c, AVCodecContext *avctx) |
void | add_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size) |
void | put_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size) |
void | put_signed_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size) |
void | ff_cavsdsp_init_mmx2 (DSPContext *c, AVCodecContext *avctx) |
void | ff_cavsdsp_init_3dnow (DSPContext *c, AVCodecContext *avctx) |
void | ff_put_cavs_qpel8_mc00_mmx2 (uint8_t *dst, uint8_t *src, int stride) |
void | ff_avg_cavs_qpel8_mc00_mmx2 (uint8_t *dst, uint8_t *src, int stride) |
void | ff_put_cavs_qpel16_mc00_mmx2 (uint8_t *dst, uint8_t *src, int stride) |
void | ff_avg_cavs_qpel16_mc00_mmx2 (uint8_t *dst, uint8_t *src, int stride) |
void | ff_vc1dsp_init_mmx (DSPContext *dsp, AVCodecContext *avctx) |
void | ff_put_vc1_mspel_mc00_mmx (uint8_t *dst, const uint8_t *src, int stride, int rnd) |
void | ff_avg_vc1_mspel_mc00_mmx2 (uint8_t *dst, const uint8_t *src, int stride, int rnd) |
void | ff_lpc_compute_autocorr_sse2 (const int32_t *data, int len, int lag, double *autoc) |
void | ff_mmx_idct (DCTELEM *block) |
void | ff_mmxext_idct (DCTELEM *block) |
Variables | |
const uint64_t | ff_bone |
const uint64_t | ff_wtwo |
const uint64_t | ff_pdw_80000000 [2] |
const uint64_t | ff_pw_3 |
const uint64_t | ff_pw_4 |
const xmm_reg | ff_pw_5 |
const xmm_reg | ff_pw_8 |
const uint64_t | ff_pw_15 |
const xmm_reg | ff_pw_16 |
const uint64_t | ff_pw_20 |
const xmm_reg | ff_pw_28 |
const xmm_reg | ff_pw_32 |
const uint64_t | ff_pw_42 |
const xmm_reg | ff_pw_64 |
const uint64_t | ff_pw_96 |
const uint64_t | ff_pw_128 |
const uint64_t | ff_pw_255 |
const uint64_t | ff_pb_1 |
const uint64_t | ff_pb_3 |
const uint64_t | ff_pb_7 |
const uint64_t | ff_pb_1F |
const uint64_t | ff_pb_3F |
const uint64_t | ff_pb_81 |
const uint64_t | ff_pb_A1 |
const uint64_t | ff_pb_FC |
const double | ff_pd_1 [2] |
const double | ff_pd_2 [2] |
#define LOAD4 | ( | stride, | |||
in, | |||||
a, | |||||
b, | |||||
c, | |||||
d | ) |
#define MOVQ_WONE | ( | regd | ) |
Value:
__asm__ volatile ( \ "pcmpeqd %%" #regd ", %%" #regd " \n\t" \ "psrlw $15, %%" #regd ::)
Definition at line 148 of file dsputil_mmx.h.
#define SBUTTERFLY | ( | a, | |||
b, | |||||
t, | |||||
n, | |||||
m | ) |
Value:
"mov" #m " " #a ", " #t " \n\t" /* abcd */\ "punpckl" #n " " #b ", " #a " \n\t" /* aebf */\ "punpckh" #n " " #b ", " #t " \n\t"
Definition at line 80 of file dsputil_mmx.h.
Referenced by ff_vp3_h_loop_filter_mmx2().
#define STORE4 | ( | stride, | |||
out, | |||||
a, | |||||
b, | |||||
c, | |||||
d | ) |
#define SUMSUB_BA | ( | a, | |||
b | ) |
Value:
"paddw "#b", "#a" \n\t"\ "paddw "#b", "#b" \n\t"\ "psubw "#a", "#b" \n\t"
Definition at line 75 of file dsputil_mmx.h.
Referenced by cavs_idct8_1d(), and h264_idct8_1d().
#define TRANSPOSE4 | ( | a, | |||
b, | |||||
c, | |||||
d, | |||||
t | ) |
Value:
SBUTTERFLY(a,b,t,wd,q) /* a=aebf t=cgdh */\ SBUTTERFLY(c,d,b,wd,q) /* c=imjn b=kolp */\ SBUTTERFLY(a,c,d,dq,q) /* a=aeim d=bfjn */\ SBUTTERFLY(t,b,c,dq,q)
Definition at line 86 of file dsputil_mmx.h.
Value:
"movdqa "#h", "#t" \n\t"\ SBUTTERFLY(a,b,h,wd,dqa)\ "movdqa "#h", 16"#t" \n\t"\ "movdqa "#t", "#h" \n\t"\ SBUTTERFLY(c,d,b,wd,dqa)\ SBUTTERFLY(e,f,d,wd,dqa)\ SBUTTERFLY(g,h,f,wd,dqa)\ SBUTTERFLY(a,c,h,dq,dqa)\ "movdqa "#h", "#t" \n\t"\ "movdqa 16"#t", "#h" \n\t"\ SBUTTERFLY(h,b,c,dq,dqa)\ SBUTTERFLY(e,g,b,dq,dqa)\ SBUTTERFLY(d,f,g,dq,dqa)\ SBUTTERFLY(a,e,f,qdq,dqa)\ SBUTTERFLY(h,d,e,qdq,dqa)\ "movdqa "#h", 16"#t" \n\t"\ "movdqa "#t", "#h" \n\t"\ SBUTTERFLY(h,b,d,qdq,dqa)\ SBUTTERFLY(c,g,b,qdq,dqa)\ "movdqa 16"#t", "#g" \n\t"
Definition at line 125 of file dsputil_mmx.h.
Value:
"punpcklbw " #e ", " #a " \n\t" /* a0 e0 a1 e1 a2 e2 a3 e3 */\ "punpcklbw " #f ", " #b " \n\t" /* b0 f0 b1 f1 b2 f2 b3 f3 */\ "punpcklbw " #g ", " #c " \n\t" /* c0 g0 c1 g1 c2 g2 d3 g3 */\ "punpcklbw " #h ", " #d " \n\t" /* d0 h0 d1 h1 d2 h2 d3 h3 */\ SBUTTERFLY(a, b, t, bw, q) /* a= a0 b0 e0 f0 a1 b1 e1 f1 */\ /* t= a2 b2 e2 f2 a3 b3 e3 f3 */\ SBUTTERFLY(c, d, b, bw, q) /* c= c0 d0 g0 h0 c1 d1 g1 h1 */\ /* b= c2 d2 g2 h2 c3 d3 g3 h3 */\ SBUTTERFLY(a, c, d, wd, q) /* a= a0 b0 c0 d0 e0 f0 g0 h0 */\ /* d= a1 b1 c1 d1 e1 f1 g1 h1 */\ SBUTTERFLY(t, b, c, wd, q) /* t= a2 b2 c2 d2 e2 f2 g2 h2 */\
Definition at line 94 of file dsputil_mmx.h.
Referenced by ff_vp3_h_loop_filter_mmx2().
void add_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
uint8_t * | pixels, | |||
int | line_size | |||
) |
Definition at line 318 of file dsputil_mmx.c.
Referenced by cavs_idct8_add_mmx(), dsputil_init_mmx(), ff_h264_idct8_add_mmx(), ff_idct_xvid_mmx2_add(), ff_idct_xvid_mmx_add(), ff_idct_xvid_sse2_add(), ff_simple_idct_add_mmx(), ff_vp3_idct_add_mmx(), and ff_vp3_idct_add_sse2().
void dsputil_init_pix_mmx | ( | DSPContext * | c, | |
AVCodecContext * | avctx | |||
) |
void dsputilenc_init_mmx | ( | DSPContext * | c, | |
AVCodecContext * | avctx | |||
) |
void ff_avg_cavs_qpel16_mc00_mmx2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride | |||
) |
Definition at line 1831 of file dsputil_mmx.c.
void ff_avg_cavs_qpel8_mc00_mmx2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride | |||
) |
Definition at line 1825 of file dsputil_mmx.c.
void ff_avg_vc1_mspel_mc00_mmx2 | ( | uint8_t * | dst, | |
const uint8_t * | src, | |||
int | stride, | |||
int | rnd | |||
) |
void ff_cavsdsp_init_3dnow | ( | DSPContext * | c, | |
AVCodecContext * | avctx | |||
) |
void ff_cavsdsp_init_mmx2 | ( | DSPContext * | c, | |
AVCodecContext * | avctx | |||
) |
void ff_lpc_compute_autocorr_sse2 | ( | const int32_t * | data, | |
int | len, | |||
int | lag, | |||
double * | autoc | |||
) |
void ff_mmx_idct | ( | DCTELEM * | block | ) |
void ff_mmxext_idct | ( | DCTELEM * | block | ) |
void ff_put_cavs_qpel16_mc00_mmx2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride | |||
) |
Definition at line 1828 of file dsputil_mmx.c.
void ff_put_cavs_qpel8_mc00_mmx2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride | |||
) |
Definition at line 1822 of file dsputil_mmx.c.
void ff_put_vc1_mspel_mc00_mmx | ( | uint8_t * | dst, | |
const uint8_t * | src, | |||
int | stride, | |||
int | rnd | |||
) |
void ff_vc1dsp_init_mmx | ( | DSPContext * | dsp, | |
AVCodecContext * | avctx | |||
) |
void put_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
uint8_t * | pixels, | |||
int | line_size | |||
) |
Definition at line 226 of file dsputil_mmx.c.
Referenced by dsputil_init_mmx(), ff_idct_xvid_mmx2_put(), ff_idct_xvid_mmx_put(), ff_idct_xvid_sse2_put(), and ff_simple_idct_put_mmx().
void put_signed_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
uint8_t * | pixels, | |||
int | line_size | |||
) |
Definition at line 302 of file dsputil_mmx.c.
Referenced by dsputil_init_mmx(), ff_vp3_idct_put_mmx(), and ff_vp3_idct_put_sse2().
const uint64_t ff_bone |
Definition at line 43 of file dsputil_mmx.c.
Referenced by h264_loop_filter_chroma_intra_mmx2(), h264_loop_filter_chroma_mmx2(), and h264_loop_filter_luma_mmx2().
const uint64_t ff_pb_1 |
const uint64_t ff_pb_1F |
Definition at line 67 of file dsputil_mmx.c.
const uint64_t ff_pb_3 |
const uint64_t ff_pb_3F |
const uint64_t ff_pb_7 |
Definition at line 66 of file dsputil_mmx.c.
const uint64_t ff_pb_81 |
Definition at line 69 of file dsputil_mmx.c.
const uint64_t ff_pb_A1 |
Definition at line 70 of file dsputil_mmx.c.
const uint64_t ff_pb_FC |
Definition at line 71 of file dsputil_mmx.c.
Referenced by h263_h_loop_filter_mmx(), and h263_v_loop_filter_mmx().
const double ff_pd_1[2] |
Definition at line 73 of file dsputil_mmx.c.
Referenced by apply_welch_window_sse2(), and ff_lpc_compute_autocorr_sse2().
const double ff_pd_2[2] |
const uint64_t ff_pdw_80000000[2] |
const uint64_t ff_pw_128 |
Definition at line 61 of file dsputil_mmx.c.
const uint64_t ff_pw_15 |
Definition at line 53 of file dsputil_mmx.c.
const uint64_t ff_pw_20 |
Definition at line 55 of file dsputil_mmx.c.
const uint64_t ff_pw_255 |
Definition at line 62 of file dsputil_mmx.c.
const uint64_t ff_pw_3 |
Definition at line 57 of file dsputil_mmx.c.
Referenced by ff_h264_idct8_add_sse2(), ff_h264_idct_add_mmx(), H264_CHROMA_MC4_TMPL(), and H264_CHROMA_MC8_TMPL().
const uint64_t ff_pw_4 |
Definition at line 50 of file dsputil_mmx.c.
Referenced by cavs_idct8_add_mmx(), deinterlace_line(), deinterlace_line_inplace(), and H264_CHROMA_MC8_TMPL().
const uint64_t ff_pw_42 |
Definition at line 58 of file dsputil_mmx.c.
Definition at line 59 of file dsputil_mmx.c.
Referenced by cavs_idct8_add_mmx(), ff_vp6_filter_diag4_mmx(), and H264_CHROMA_MC8_TMPL().
Definition at line 52 of file dsputil_mmx.c.
Referenced by ff_vp3_idct_mmx(), ff_vp3_idct_sse2(), H264_CHROMA_MC4_TMPL(), and H264_CHROMA_MC8_TMPL().
const uint64_t ff_pw_96 |
Definition at line 60 of file dsputil_mmx.c.
const uint64_t ff_wtwo |
Definition at line 44 of file dsputil_mmx.c.