FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
h264chroma_template.c File Reference
#include "libavutil/mem.h"
#include "libavutil/ppc/types_altivec.h"
#include "libavutil/ppc/util_altivec.h"

Go to the source code of this file.

Macros

#define CHROMA_MC8_ALTIVEC_CORE(BIAS1, BIAS2)
 
#define CHROMA_MC8_ALTIVEC_CORE_SIMPLE
 
#define noop(a)   a
 
#define add28(a)   vec_add(v28ss, a)
 
#define GET_VSRC1(vs0, off, b, perm0, s)
 
#define GET_VSRC(vs0, vs1, off, b, perm0, perm1, s)
 

Macro Definition Documentation

#define CHROMA_MC8_ALTIVEC_CORE (   BIAS1,
  BIAS2 
)
Value:
vsrc2ssH = (vec_s16)VEC_MERGEH(zero_u8v,(vec_u8)vsrc2uc);\
vsrc3ssH = (vec_s16)VEC_MERGEH(zero_u8v,(vec_u8)vsrc3uc);\
\
psum = vec_mladd(vA, vsrc0ssH, BIAS1);\
psum = vec_mladd(vB, vsrc1ssH, psum);\
psum = vec_mladd(vC, vsrc2ssH, psum);\
psum = vec_mladd(vD, vsrc3ssH, psum);\
psum = BIAS2(psum);\
psum = vec_sr(psum, v6us);\
\
vdst = vec_ld(0, dst);\
ppsum = (vec_u8)vec_pack(psum, psum);\
vfdst = vec_perm(vdst, ppsum, fperm);\
\
OP_U8_ALTIVEC(fsum, vfdst, vdst);\
\
vec_st(fsum, 0, dst);\
\
vsrc0ssH = vsrc2ssH;\
vsrc1ssH = vsrc3ssH;\
\
dst += stride;\
src += stride;

Definition at line 27 of file h264chroma_template.c.

#define CHROMA_MC8_ALTIVEC_CORE_SIMPLE
Value:
\
vsrc0ssH = (vec_s16)VEC_MERGEH(zero_u8v,(vec_u8)vsrc0uc);\
vsrc1ssH = (vec_s16)VEC_MERGEH(zero_u8v,(vec_u8)vsrc1uc);\
\
psum = vec_mladd(vA, vsrc0ssH, v32ss);\
psum = vec_mladd(vE, vsrc1ssH, psum);\
psum = vec_sr(psum, v6us);\
\
vdst = vec_ld(0, dst);\
ppsum = (vec_u8)vec_pack(psum, psum);\
vfdst = vec_perm(vdst, ppsum, fperm);\
\
OP_U8_ALTIVEC(fsum, vfdst, vdst);\
\
vec_st(fsum, 0, dst);\
\
dst += stride;\
src += stride;

Definition at line 52 of file h264chroma_template.c.

#define noop (   a)    a

Definition at line 72 of file h264chroma_template.c.

#define add28 (   a)    vec_add(v28ss, a)

Definition at line 73 of file h264chroma_template.c.

#define GET_VSRC1 (   vs0,
  off,
  b,
  perm0,
  s 
)
Value:
{ \
vs0 = vec_vsx_ld(off, s); \
}

Definition at line 103 of file h264chroma_template.c.

#define GET_VSRC (   vs0,
  vs1,
  off,
  b,
  perm0,
  perm1,
  s 
)
Value:
{ \
vs0 = vec_vsx_ld(off, s); \
vs1 = vec_vsx_ld(off + 1, s); \
}

Definition at line 106 of file h264chroma_template.c.