#include "libavcodec/dsputil.h"
#include "util_altivec.h"
#include "types_altivec.h"
#include "dsputil_altivec.h"
Go to the source code of this file.
Defines | |
#define | IDCT_START |
#define | IDCT_1D(ADD, SHIFT) |
#define | NOP(a) a |
#define | ADD8(a) vec_add(a, eight) |
#define | SHIFT4(a) vec_sra(a, four) |
#define | PUT(a) |
#define | ADD(a) |
Functions | |
static vec_s16 | M15 (vec_s16 a, vec_s16 C) |
static vec_s16 | M16 (vec_s16 a, vec_s16 C) |
void | ff_vp3_idct_altivec (DCTELEM block[64]) |
void | ff_vp3_idct_put_altivec (uint8_t *dst, int stride, DCTELEM block[64]) |
void | ff_vp3_idct_add_altivec (uint8_t *dst, int stride, DCTELEM block[64]) |
Variables | |
static const vec_s16 | constants |
static const vec_u8 | interleave_high |
#define ADD | ( | a | ) |
#define ADD8 | ( | a | ) | vec_add(a, eight) |
Definition at line 107 of file vp3dsp_altivec.c.
Referenced by ff_vp3_idct_add_altivec(), ff_vp3_idct_altivec(), and ff_vp3_idct_put_altivec().
#define IDCT_1D | ( | ADD, | |||
SHIFT | ) |
Definition at line 67 of file vp3dsp_altivec.c.
Referenced by ff_vp3_idct_add_altivec(), ff_vp3_idct_altivec(), and ff_vp3_idct_put_altivec().
#define IDCT_START |
Value:
vec_s16 A, B, C, D, Ad, Bd, Cd, Dd, E, F, G, H;\ vec_s16 Ed, Gd, Add, Bdd, Fd, Hd;\ vec_s16 eight = vec_splat_s16(8);\ vec_u16 four = vec_splat_u16(4);\ \ vec_s16 C1 = vec_splat(constants, 1);\ vec_s16 C2 = vec_splat(constants, 2);\ vec_s16 C3 = vec_splat(constants, 3);\ vec_s16 C4 = vec_splat(constants, 4);\ vec_s16 C5 = vec_splat(constants, 5);\ vec_s16 C6 = vec_splat(constants, 6);\ vec_s16 C7 = vec_splat(constants, 7);\ \ vec_s16 b0 = vec_ld(0x00, block);\ vec_s16 b1 = vec_ld(0x10, block);\ vec_s16 b2 = vec_ld(0x20, block);\ vec_s16 b3 = vec_ld(0x30, block);\ vec_s16 b4 = vec_ld(0x40, block);\ vec_s16 b5 = vec_ld(0x50, block);\ vec_s16 b6 = vec_ld(0x60, block);\ vec_s16 b7 = vec_ld(0x70, block);
Definition at line 31 of file vp3dsp_altivec.c.
Referenced by ff_vp3_idct_add_altivec(), ff_vp3_idct_altivec(), and ff_vp3_idct_put_altivec().
#define NOP | ( | a | ) | a |
Definition at line 106 of file vp3dsp_altivec.c.
Referenced by ff_vp3_idct_add_altivec(), ff_vp3_idct_altivec(), and ff_vp3_idct_put_altivec().
#define PUT | ( | a | ) |
#define SHIFT4 | ( | a | ) | vec_sra(a, four) |
Definition at line 108 of file vp3dsp_altivec.c.
Referenced by ff_vp3_idct_add_altivec(), ff_vp3_idct_altivec(), and ff_vp3_idct_put_altivec().
Definition at line 156 of file vp3dsp_altivec.c.
void ff_vp3_idct_altivec | ( | DCTELEM | block[64] | ) |
Definition at line 110 of file vp3dsp_altivec.c.
Definition at line 128 of file vp3dsp_altivec.c.
static vec_s16 M15 | ( | vec_s16 | a, | |
vec_s16 | C | |||
) | [inline, static] |
static vec_s16 M16 | ( | vec_s16 | a, | |
vec_s16 | C | |||
) | [inline, static] |
Definition at line 62 of file vp3dsp_altivec.c.
const vec_s16 constants [static] |
Initial value:
{0, 64277, 60547, 54491, 46341, 36410, 25080, 12785}
Definition at line 26 of file vp3dsp_altivec.c.
const vec_u8 interleave_high [static] |
Initial value:
{0, 1, 16, 17, 4, 5, 20, 21, 8, 9, 24, 25, 12, 13, 28, 29}
Definition at line 28 of file vp3dsp_altivec.c.
Referenced by M15().