Libav 0.7.1
|
#include "libavcodec/dsputil.h"
#include "libavcodec/vc1dsp.h"
#include "util_altivec.h"
#include "dsputil_altivec.h"
#include "h264_template_altivec.c"
Go to the source code of this file.
Defines | |
#define | STEP8(s0, s1, s2, s3, s4, s5, s6, s7, vec_rnd) |
#define | SHIFT_HOR8(s0, s1, s2, s3, s4, s5, s6, s7) |
#define | SHIFT_VERT8(s0, s1, s2, s3, s4, s5, s6, s7) |
#define | STEP4(s0, s1, s2, s3, vec_rnd) |
#define | SHIFT_HOR4(s0, s1, s2, s3) |
#define | SHIFT_VERT4(s0, s1, s2, s3) |
#define | ADD(dest, src, perm) |
#define | PUT_OP_U8_ALTIVEC(d, s, dst) d = s |
#define | AVG_OP_U8_ALTIVEC(d, s, dst) d = vec_avg(dst, s) |
#define | OP_U8_ALTIVEC PUT_OP_U8_ALTIVEC |
#define | PREFIX_no_rnd_vc1_chroma_mc8_altivec put_no_rnd_vc1_chroma_mc8_altivec |
#define | OP_U8_ALTIVEC AVG_OP_U8_ALTIVEC |
#define | PREFIX_no_rnd_vc1_chroma_mc8_altivec avg_no_rnd_vc1_chroma_mc8_altivec |
Functions | |
static void | vc1_inv_trans_8x8_altivec (DCTELEM block[64]) |
Do inverse transform on 8x8 block. | |
static void | vc1_inv_trans_8x4_altivec (uint8_t *dest, int stride, DCTELEM *block) |
Do inverse transform on 8x4 part of block. | |
void | ff_vc1dsp_init_altivec (VC1DSPContext *dsp) |
/* *(uint64_t *)&tmp = *(uint64_t *)dest; */ \ tmp = vec_ld (0, dest); \ tmp2 = (vector signed short)vec_perm (tmp, vec_splat_u8(0), perm); \ tmp3 = vec_adds (tmp2, src); \ tmp = vec_packsu (tmp3, tmp3); \ vec_ste ((vector unsigned int)tmp, 0, (unsigned int *)dest); \ vec_ste ((vector unsigned int)tmp, 4, (unsigned int *)dest);
#define AVG_OP_U8_ALTIVEC | ( | d, | |
s, | |||
dst | |||
) | d = vec_avg(dst, s) |
Definition at line 325 of file vc1dsp_altivec.c.
#define OP_U8_ALTIVEC PUT_OP_U8_ALTIVEC |
Definition at line 333 of file vc1dsp_altivec.c.
#define OP_U8_ALTIVEC AVG_OP_U8_ALTIVEC |
Definition at line 333 of file vc1dsp_altivec.c.
#define PREFIX_no_rnd_vc1_chroma_mc8_altivec put_no_rnd_vc1_chroma_mc8_altivec |
Definition at line 334 of file vc1dsp_altivec.c.
#define PREFIX_no_rnd_vc1_chroma_mc8_altivec avg_no_rnd_vc1_chroma_mc8_altivec |
Definition at line 334 of file vc1dsp_altivec.c.
#define PUT_OP_U8_ALTIVEC | ( | d, | |
s, | |||
dst | |||
) | d = s |
Definition at line 324 of file vc1dsp_altivec.c.
#define SHIFT_HOR4 | ( | s0, | |
s1, | |||
s2, | |||
s3 | |||
) |
#define SHIFT_HOR8 | ( | s0, | |
s1, | |||
s2, | |||
s3, | |||
s4, | |||
s5, | |||
s6, | |||
s7 | |||
) |
do { \ s0 = vec_sra(s0, vec_3); \ s1 = vec_sra(s1, vec_3); \ s2 = vec_sra(s2, vec_3); \ s3 = vec_sra(s3, vec_3); \ s4 = vec_sra(s4, vec_3); \ s5 = vec_sra(s5, vec_3); \ s6 = vec_sra(s6, vec_3); \ s7 = vec_sra(s7, vec_3); \ }while(0)
Definition at line 76 of file vc1dsp_altivec.c.
Referenced by vc1_inv_trans_8x4_altivec(), and vc1_inv_trans_8x8_altivec().
#define SHIFT_VERT4 | ( | s0, | |
s1, | |||
s2, | |||
s3 | |||
) |
#define SHIFT_VERT8 | ( | s0, | |
s1, | |||
s2, | |||
s3, | |||
s4, | |||
s5, | |||
s6, | |||
s7 | |||
) |
do { \ s0 = vec_sra(s0, vec_7); \ s1 = vec_sra(s1, vec_7); \ s2 = vec_sra(s2, vec_7); \ s3 = vec_sra(s3, vec_7); \ s4 = vec_sra(vec_add(s4, vec_1s), vec_7); \ s5 = vec_sra(vec_add(s5, vec_1s), vec_7); \ s6 = vec_sra(vec_add(s6, vec_1s), vec_7); \ s7 = vec_sra(vec_add(s7, vec_1s), vec_7); \ }while(0)
Definition at line 88 of file vc1dsp_altivec.c.
Referenced by vc1_inv_trans_8x8_altivec().
#define STEP4 | ( | s0, | |
s1, | |||
s2, | |||
s3, | |||
vec_rnd | |||
) |
do { \ t1 = vec_add(vec_sl(s0, vec_4), s0); \ t1 = vec_add(t1, vec_rnd); \ t2 = vec_add(vec_sl(s2, vec_4), s2); \ t0 = vec_add(t1, t2); \ t1 = vec_sub(t1, t2); \ t3 = vec_sl(vec_sub(s3, s1), vec_1); \ t3 = vec_add(t3, vec_sl(t3, vec_2)); \ t2 = vec_add(t3, vec_sl(s1, vec_5)); \ t3 = vec_add(t3, vec_sl(s3, vec_3)); \ t3 = vec_add(t3, vec_sl(s3, vec_2)); \ s0 = vec_add(t0, t2); \ s1 = vec_sub(t1, t3); \ s2 = vec_add(t1, t3); \ s3 = vec_sub(t0, t2); \ }while (0)
Definition at line 101 of file vc1dsp_altivec.c.
Referenced by vc1_inv_trans_8x4_altivec().
#define STEP8 | ( | s0, | |
s1, | |||
s2, | |||
s3, | |||
s4, | |||
s5, | |||
s6, | |||
s7, | |||
vec_rnd | |||
) |
Definition at line 29 of file vc1dsp_altivec.c.
Referenced by vc1_inv_trans_8x4_altivec(), and vc1_inv_trans_8x8_altivec().
void ff_vc1dsp_init_altivec | ( | VC1DSPContext * | dsp | ) |
Definition at line 339 of file vc1dsp_altivec.c.
Referenced by ff_vc1dsp_init().
static void vc1_inv_trans_8x4_altivec | ( | uint8_t * | dest, |
int | stride, | ||
DCTELEM * | block | ||
) | [static] |
Do inverse transform on 8x4 part of block.
Definition at line 228 of file vc1dsp_altivec.c.
Referenced by ff_vc1dsp_init_altivec().
static void vc1_inv_trans_8x8_altivec | ( | DCTELEM | block[64] | ) | [static] |
Do inverse transform on 8x8 block.
Definition at line 133 of file vc1dsp_altivec.c.
Referenced by ff_vc1dsp_init_altivec().