libavcodec/ppc/fdct_altivec.c File Reference

#include "config.h"
#include "libavutil/common.h"
#include "libavcodec/dsputil.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 Documentation

#define C1   0.98078525066375732421875000

Definition at line 36 of file fdct_altivec.c.

#define C2   0.92387950420379638671875000

Definition at line 37 of file fdct_altivec.c.

#define C3   0.83146959543228149414062500

Definition at line 38 of file fdct_altivec.c.

#define C4   0.70710676908493041992187500

Definition at line 39 of file fdct_altivec.c.

#define C5   0.55557024478912353515625000

Definition at line 40 of file fdct_altivec.c.

#define C6   0.38268342614173889160156250

Definition at line 41 of file fdct_altivec.c.

#define C7   0.19509032368659973144531250

Definition at line 42 of file fdct_altivec.c.

#define CTF0 (  ) 

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,
 ) 

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 (  ) 

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   ) 

Definition at line 137 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define FDCTROW ( b0,
b1,
b2,
b3,
b4,
b5,
b6,
b7   ) 

Definition at line 80 of file fdct_altivec.c.

#define LD_W0   vec_splat(cnsts0, 0)

Definition at line 66 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_W1   vec_splat(cnsts0, 1)

Definition at line 67 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_W2   vec_splat(cnsts0, 2)

Definition at line 68 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_W3   vec_splat(cnsts0, 3)

Definition at line 69 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_W4   vec_splat(cnsts1, 0)

Definition at line 70 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_W5   vec_splat(cnsts1, 1)

Definition at line 71 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_W6   vec_splat(cnsts1, 2)

Definition at line 72 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_W7   vec_splat(cnsts1, 3)

Definition at line 73 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_W8   vec_splat(cnsts2, 0)

Definition at line 74 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_W9   vec_splat(cnsts2, 1)

Definition at line 75 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_WA   vec_splat(cnsts2, 2)

Definition at line 76 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define LD_WB   vec_splat(cnsts2, 3)

Definition at line 77 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define MERGE_S16 ( hl,
a,
 )     vec_merge##hl(vs16(a), vs16(b))

Referenced by fdct_altivec().

#define SQRT_2   1.41421353816986083984375000

Definition at line 43 of file fdct_altivec.c.

#define vs16 (  )     ((vector signed short)(v))

Definition at line 29 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define vs32 (  )     ((vector signed int)(v))

Definition at line 30 of file fdct_altivec.c.

#define vu16 (  )     ((vector unsigned short)(v))

Definition at line 32 of file fdct_altivec.c.

#define vu32 (  )     ((vector unsigned int)(v))

Definition at line 33 of file fdct_altivec.c.

Referenced by fdct_altivec().

#define vu8 (  )     ((vector unsigned char)(v))

Definition at line 31 of file fdct_altivec.c.

#define W0   -(2 * C2)

Definition at line 46 of file fdct_altivec.c.

#define W1   (2 * C6)

Definition at line 47 of file fdct_altivec.c.

#define W2   (SQRT_2 * C6)

Definition at line 48 of file fdct_altivec.c.

#define W3   (SQRT_2 * C3)

Definition at line 49 of file fdct_altivec.c.

#define W4   (SQRT_2 * (-C1 + C3 + C5 - C7))

Definition at line 50 of file fdct_altivec.c.

#define W5   (SQRT_2 * ( C1 + C3 - C5 + C7))

Definition at line 51 of file fdct_altivec.c.

#define W6   (SQRT_2 * ( C1 + C3 + C5 - C7))

Definition at line 52 of file fdct_altivec.c.

#define W7   (SQRT_2 * ( C1 + C3 - C5 - C7))

Definition at line 53 of file fdct_altivec.c.

#define W8   (SQRT_2 * ( C7 - C3))

Definition at line 54 of file fdct_altivec.c.

#define W9   (SQRT_2 * (-C1 - C3))

Definition at line 55 of file fdct_altivec.c.

#define WA   (SQRT_2 * (-C3 - C5))

Definition at line 56 of file fdct_altivec.c.

#define WB   (SQRT_2 * ( C5 - C3))

Definition at line 57 of file fdct_altivec.c.


Function Documentation

void fdct_altivec ( int16_t block  ) 

Definition at line 198 of file fdct_altivec.c.


Variable Documentation

vector float fdctconsts[3] [static]

Initial value:

 {
    { W0, W1, W2, W3 },
    { W4, W5, W6, W7 },
    { W8, W9, WA, WB }
}

Definition at line 60 of file fdct_altivec.c.

Referenced by fdct_altivec().


Generated on Fri Oct 26 02:43:49 2012 for FFmpeg by  doxygen 1.5.8