#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) | 
| #define ADD | ( | dest, | |||
| src, | |||||
| perm | ) | 
Value:
/* *(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);
Definition at line 325 of file vc1dsp_altivec.c.
| #define OP_U8_ALTIVEC AVG_OP_U8_ALTIVEC | 
Definition at line 333 of file vc1dsp_altivec.c.
| #define OP_U8_ALTIVEC PUT_OP_U8_ALTIVEC | 
Definition at line 333 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 PREFIX_no_rnd_vc1_chroma_mc8_altivec put_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 | ) | 
Value:
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 | ) | 
Value:
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 | ) | 
Value:
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 | ) | 
| 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().
 1.5.8
 1.5.8