SSE2-optimized functions cribbed from the original VP3 source code. More...
#include "libavcodec/dsputil.h"
#include "dsputil_mmx.h"
#include "vp3dsp_sse2.h"
Go to the source code of this file.
Defines | |
#define | VP3_1D_IDCT_SSE2(ADD, SHIFT) |
#define | PUT_BLOCK(r0, r1, r2, r3, r4, r5, r6, r7) |
#define | NOP(xmm) |
#define | SHIFT4(xmm) "psraw $4, "#xmm"\n\t" |
#define | ADD8(xmm) "paddsw %2, "#xmm"\n\t" |
#define | I(x) AV_STRINGIFY(16*x)"(%0)" |
#define | O(x) I(x) |
#define | C(x) AV_STRINGIFY(16*(x-1))"(%1)" |
Functions | |
DECLARE_ALIGNED (16, const uint16_t, ff_vp3_idct_data)[7 *8] | |
void | ff_vp3_idct_sse2 (int16_t *input_data) |
void | ff_vp3_idct_put_sse2 (uint8_t *dest, int line_size, DCTELEM *block) |
void | ff_vp3_idct_add_sse2 (uint8_t *dest, int line_size, DCTELEM *block) |
SSE2-optimized functions cribbed from the original VP3 source code.
Definition in file vp3dsp_sse2.c.
#define ADD8 | ( | xmm | ) | "paddsw %2, "#xmm"\n\t" |
Definition at line 157 of file vp3dsp_sse2.c.
Referenced by ff_vp3_idct_sse2().
#define C | ( | x | ) | AV_STRINGIFY(16*(x-1))"(%1)" |
#define I | ( | x | ) | AV_STRINGIFY(16*x)"(%0)" |
#define NOP | ( | xmm | ) |
Definition at line 155 of file vp3dsp_sse2.c.
Referenced by ff_vp3_idct_sse2().
#define O | ( | x | ) | I(x) |
#define PUT_BLOCK | ( | r0, | ||
r1, | ||||
r2, | ||||
r3, | ||||
r4, | ||||
r5, | ||||
r6, | ||||
r7 | ||||
) |
"movdqa " #r0 ", " O(0) "\n\t" \ "movdqa " #r1 ", " O(1) "\n\t" \ "movdqa " #r2 ", " O(2) "\n\t" \ "movdqa " #r3 ", " O(3) "\n\t" \ "movdqa " #r4 ", " O(4) "\n\t" \ "movdqa " #r5 ", " O(5) "\n\t" \ "movdqa " #r6 ", " O(6) "\n\t" \ "movdqa " #r7 ", " O(7) "\n\t"
Definition at line 145 of file vp3dsp_sse2.c.
Referenced by ff_vp3_idct_sse2().
#define SHIFT4 | ( | xmm | ) | "psraw $4, "#xmm"\n\t" |
Definition at line 156 of file vp3dsp_sse2.c.
Referenced by ff_vp3_idct_sse2().
#define VP3_1D_IDCT_SSE2 | ( | ADD, | ||
SHIFT | ||||
) |
Definition at line 42 of file vp3dsp_sse2.c.
Referenced by ff_vp3_idct_sse2().
DECLARE_ALIGNED | ( | 16 | , | |
const | uint16_t, | |||
ff_vp3_idct_data | ||||
) |
void ff_vp3_idct_add_sse2 | ( | uint8_t * | dest, | |
int | line_size, | |||
DCTELEM * | block | |||
) |
Definition at line 183 of file vp3dsp_sse2.c.
void ff_vp3_idct_put_sse2 | ( | uint8_t * | dest, | |
int | line_size, | |||
DCTELEM * | block | |||
) |
Definition at line 177 of file vp3dsp_sse2.c.
void ff_vp3_idct_sse2 | ( | int16_t * | input_data | ) |
Definition at line 159 of file vp3dsp_sse2.c.
Referenced by ff_vp3_idct_add_sse2(), and ff_vp3_idct_put_sse2().