#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/mlp.h"
Go to the source code of this file.
Defines | |
#define | MLPMUL(label, offset, offs, offc) |
#define | FIRMULREG(label, offset, firc) |
#define | CLEAR_ACCUM "xor %%rsi, %%rsi\n\t" |
#define | SHIFT_ACCUM "shr %%cl, %%rsi\n\t" |
#define | ACCUM "%%rdx" |
#define | RESULT "%%rsi" |
#define | RESULT32 "%%esi" |
#define | BINC AV_STRINGIFY(4* MAX_CHANNELS) |
#define | IOFFS AV_STRINGIFY(4*(MAX_FIR_ORDER + MAX_BLOCKSIZE)) |
#define | IOFFC AV_STRINGIFY(4* MAX_FIR_ORDER) |
#define | FIRMUL(label, offset) MLPMUL(label, #offset, "0", "0") |
#define | IIRMUL(label, offset) MLPMUL(label, #offset, IOFFS, IOFFC) |
Functions | |
static void | mlp_filter_channel_x86 (int32_t *state, const int32_t *coeff, int firorder, int iirorder, unsigned int filter_shift, int32_t mask, int blocksize, int32_t *sample_buffer) |
void | ff_mlp_init_x86 (DSPContext *c, AVCodecContext *avctx) |
Variables | |
void | ff_mlp_firorder_8 |
void | ff_mlp_firorder_7 |
void | ff_mlp_firorder_6 |
void | ff_mlp_firorder_5 |
void | ff_mlp_firorder_4 |
void | ff_mlp_firorder_3 |
void | ff_mlp_firorder_2 |
void | ff_mlp_firorder_1 |
void | ff_mlp_firorder_0 |
void | ff_mlp_iirorder_4 |
void | ff_mlp_iirorder_3 |
void | ff_mlp_iirorder_2 |
void | ff_mlp_iirorder_1 |
void | ff_mlp_iirorder_0 |
static const void * | firtable [9] |
static const void * | iirtable [5] |
#define ACCUM "%%rdx" |
Definition at line 74 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
#define BINC AV_STRINGIFY(4* MAX_CHANNELS) |
Definition at line 106 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
#define CLEAR_ACCUM "xor %%rsi, %%rsi\n\t" |
Definition at line 68 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
#define FIRMUL | ( | label, | ||
offset | ||||
) | MLPMUL(label, #offset, "0", "0") |
Definition at line 110 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
#define FIRMULREG | ( | label, | ||
offset, | ||||
firc | ||||
) |
LABEL_MANGLE(label)": \n\t" \ "movslq "#offset"(%0), %%rax\n\t" \ "imul %"#firc", %%rax\n\t" \ "add %%rax, %%rsi\n\t"
Definition at line 62 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
#define IIRMUL | ( | label, | ||
offset | ||||
) | MLPMUL(label, #offset, IOFFS, IOFFC) |
Definition at line 111 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
#define IOFFS AV_STRINGIFY(4*(MAX_FIR_ORDER + MAX_BLOCKSIZE)) |
Definition at line 107 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
#define MLPMUL | ( | label, | ||
offset, | ||||
offs, | ||||
offc | ||||
) |
LABEL_MANGLE(label)": \n\t" \ "movslq "offset"+"offs"(%0), %%rax\n\t" \ "movslq "offset"+"offc"(%1), %%rdx\n\t" \ "imul %%rdx, %%rax\n\t" \ "add %%rax, %%rsi\n\t"
#define RESULT "%%rsi" |
Definition at line 75 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
#define RESULT32 "%%esi" |
Definition at line 76 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
#define SHIFT_ACCUM "shr %%cl, %%rsi\n\t" |
Definition at line 71 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
void ff_mlp_init_x86 | ( | DSPContext * | c, | |
AVCodecContext * | avctx | |||
) |
Definition at line 176 of file mlpdsp.c.
Referenced by ff_mlp_init().
static void mlp_filter_channel_x86 | ( | int32_t * | state, | |
const int32_t * | coeff, | |||
int | firorder, | |||
int | iirorder, | |||
unsigned int | filter_shift, | |||
int32_t | mask, | |||
int | blocksize, | |||
int32_t * | sample_buffer | |||
) | [static] |
void ff_mlp_firorder_0 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_firorder_1 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_firorder_2 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_firorder_3 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_firorder_4 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_firorder_5 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_firorder_6 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_firorder_7 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_firorder_8 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_iirorder_0 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_iirorder_1 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_iirorder_2 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_iirorder_3 |
Referenced by mlp_filter_channel_x86().
void ff_mlp_iirorder_4 |
Referenced by mlp_filter_channel_x86().
const void* firtable[9] [static] |
{ &ff_mlp_firorder_0, &ff_mlp_firorder_1, &ff_mlp_firorder_2, &ff_mlp_firorder_3, &ff_mlp_firorder_4, &ff_mlp_firorder_5, &ff_mlp_firorder_6, &ff_mlp_firorder_7, &ff_mlp_firorder_8 }
Definition at line 44 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().
const void* iirtable[5] [static] |
{ &ff_mlp_iirorder_0, &ff_mlp_iirorder_1, &ff_mlp_iirorder_2, &ff_mlp_iirorder_3, &ff_mlp_iirorder_4 }
Definition at line 49 of file mlpdsp.c.
Referenced by mlp_filter_channel_x86().