#include "config.h"
#include "libavutil/common.h"
#include "libavcodec/dsputil.h"
#include "dsputil_ppc.h"
#include "dsputil_altivec.h"
Go to the source code of this file.
Defines | |
#define | vs16(v) ((vector signed short)(v)) |
#define | vs32(v) ((vector signed int)(v)) |
#define | vu8(v) ((vector unsigned char)(v)) |
#define | vu16(v) ((vector unsigned short)(v)) |
#define | vu32(v) ((vector unsigned int)(v)) |
#define | C1 0.98078525066375732421875000 |
#define | C2 0.92387950420379638671875000 |
#define | C3 0.83146959543228149414062500 |
#define | C4 0.70710676908493041992187500 |
#define | C5 0.55557024478912353515625000 |
#define | C6 0.38268342614173889160156250 |
#define | C7 0.19509032368659973144531250 |
#define | SQRT_2 1.41421353816986083984375000 |
#define | W0 -(2 * C2) |
#define | W1 (2 * C6) |
#define | W2 (SQRT_2 * C6) |
#define | W3 (SQRT_2 * C3) |
#define | W4 (SQRT_2 * (-C1 + C3 + C5 - C7)) |
#define | W5 (SQRT_2 * ( C1 + C3 - C5 + C7)) |
#define | W6 (SQRT_2 * ( C1 + C3 + C5 - C7)) |
#define | W7 (SQRT_2 * ( C1 + C3 - C5 - C7)) |
#define | W8 (SQRT_2 * ( C7 - C3)) |
#define | W9 (SQRT_2 * (-C1 - C3)) |
#define | WA (SQRT_2 * (-C3 - C5)) |
#define | WB (SQRT_2 * ( C5 - C3)) |
#define | LD_W0 vec_splat(cnsts0, 0) |
#define | LD_W1 vec_splat(cnsts0, 1) |
#define | LD_W2 vec_splat(cnsts0, 2) |
#define | LD_W3 vec_splat(cnsts0, 3) |
#define | LD_W4 vec_splat(cnsts1, 0) |
#define | LD_W5 vec_splat(cnsts1, 1) |
#define | LD_W6 vec_splat(cnsts1, 2) |
#define | LD_W7 vec_splat(cnsts1, 3) |
#define | LD_W8 vec_splat(cnsts2, 0) |
#define | LD_W9 vec_splat(cnsts2, 1) |
#define | LD_WA vec_splat(cnsts2, 2) |
#define | LD_WB vec_splat(cnsts2, 3) |
#define | FDCTROW(b0, b1, b2, b3, b4, b5, b6, b7) |
#define | FDCTCOL(b0, b1, b2, b3, b4, b5, b6, b7) |
#define | MERGE_S16(hl, a, b) vec_merge##hl(vs16(a), vs16(b)) |
#define | CTF0(n) |
#define | CTFX(x, b) |
#define | CTS(n) |
Functions | |
void | fdct_altivec (int16_t *block) |
Variables | |
static vector float | fdctconsts [3] |
#define C1 0.98078525066375732421875000 |
Definition at line 37 of file fdct_altivec.c.
#define C2 0.92387950420379638671875000 |
Definition at line 38 of file fdct_altivec.c.
#define C3 0.83146959543228149414062500 |
Definition at line 39 of file fdct_altivec.c.
#define C4 0.70710676908493041992187500 |
Definition at line 40 of file fdct_altivec.c.
#define C5 0.55557024478912353515625000 |
Definition at line 41 of file fdct_altivec.c.
#define C6 0.38268342614173889160156250 |
Definition at line 42 of file fdct_altivec.c.
#define C7 0.19509032368659973144531250 |
Definition at line 43 of file fdct_altivec.c.
#define CTF0 | ( | n | ) |
Value:
b##n##1 = ((vector float)vec_unpackl(vs16(b##n##0))); \ b##n##0 = ((vector float)vec_unpackh(vs16(b##n##0))); \ b##n##1 = vec_ctf(vs32(b##n##1), 0); \ b##n##0 = vec_ctf(vs32(b##n##0), 0);
Referenced by fdct_altivec().
#define CTFX | ( | x, | |||
b | ) |
Value:
b##0 = ((vector float)vec_unpackh(vs16(x))); \ b##1 = ((vector float)vec_unpackl(vs16(x))); \ b##0 = vec_ctf(vs32(b##0), 0); \ b##1 = vec_ctf(vs32(b##1), 0); \
Referenced by fdct_altivec().
#define CTS | ( | n | ) |
Value:
b##n##0 = vec_round(b##n##0); \ b##n##1 = vec_round(b##n##1); \ b##n##0 = ((vector float)vec_cts(b##n##0, 0)); \ b##n##1 = ((vector float)vec_cts(b##n##1, 0)); \ b##n##0 = ((vector float)vec_pack(vs32(b##n##0), vs32(b##n##1))); \ vec_st(vs16(b##n##0), 0, bp);
Referenced by fdct_altivec().
#define FDCTCOL | ( | b0, | |||
b1, | |||||
b2, | |||||
b3, | |||||
b4, | |||||
b5, | |||||
b6, | |||||
b7 | ) |
#define FDCTROW | ( | b0, | |||
b1, | |||||
b2, | |||||
b3, | |||||
b4, | |||||
b5, | |||||
b6, | |||||
b7 | ) |
#define LD_W0 vec_splat(cnsts0, 0) |
#define LD_W1 vec_splat(cnsts0, 1) |
#define LD_W2 vec_splat(cnsts0, 2) |
#define LD_W3 vec_splat(cnsts0, 3) |
#define LD_W4 vec_splat(cnsts1, 0) |
#define LD_W5 vec_splat(cnsts1, 1) |
#define LD_W6 vec_splat(cnsts1, 2) |
#define LD_W7 vec_splat(cnsts1, 3) |
#define LD_W8 vec_splat(cnsts2, 0) |
#define LD_W9 vec_splat(cnsts2, 1) |
#define LD_WA vec_splat(cnsts2, 2) |
#define LD_WB vec_splat(cnsts2, 3) |
#define MERGE_S16 | ( | hl, | |||
a, | |||||
b | ) | vec_merge##hl(vs16(a), vs16(b)) |
Referenced by fdct_altivec().
#define SQRT_2 1.41421353816986083984375000 |
Definition at line 44 of file fdct_altivec.c.
#define vs16 | ( | v | ) | ((vector signed short)(v)) |
#define vs32 | ( | v | ) | ((vector signed int)(v)) |
Definition at line 31 of file fdct_altivec.c.
#define vu16 | ( | v | ) | ((vector unsigned short)(v)) |
Definition at line 33 of file fdct_altivec.c.
#define vu32 | ( | v | ) | ((vector unsigned int)(v)) |
#define vu8 | ( | v | ) | ((vector unsigned char)(v)) |
Definition at line 32 of file fdct_altivec.c.
#define W0 -(2 * C2) |
Definition at line 47 of file fdct_altivec.c.
#define W1 (2 * C6) |
Definition at line 48 of file fdct_altivec.c.
#define W2 (SQRT_2 * C6) |
Definition at line 49 of file fdct_altivec.c.
#define W3 (SQRT_2 * C3) |
Definition at line 50 of file fdct_altivec.c.
#define W4 (SQRT_2 * (-C1 + C3 + C5 - C7)) |
Definition at line 51 of file fdct_altivec.c.
#define W5 (SQRT_2 * ( C1 + C3 - C5 + C7)) |
Definition at line 52 of file fdct_altivec.c.
#define W6 (SQRT_2 * ( C1 + C3 + C5 - C7)) |
Definition at line 53 of file fdct_altivec.c.
#define W7 (SQRT_2 * ( C1 + C3 - C5 - C7)) |
Definition at line 54 of file fdct_altivec.c.
#define W8 (SQRT_2 * ( C7 - C3)) |
Definition at line 55 of file fdct_altivec.c.
#define W9 (SQRT_2 * (-C1 - C3)) |
Definition at line 56 of file fdct_altivec.c.
#define WA (SQRT_2 * (-C3 - C5)) |
Definition at line 57 of file fdct_altivec.c.
#define WB (SQRT_2 * ( C5 - C3)) |
Definition at line 58 of file fdct_altivec.c.
void fdct_altivec | ( | int16_t * | block | ) |
Definition at line 199 of file fdct_altivec.c.
vector float fdctconsts[3] [static] |