FFmpeg
Macros
h264chroma_template.c File Reference
#include "libavutil/mem_internal.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

◆ CHROMA_MC8_ALTIVEC_CORE

#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 26 of file h264chroma_template.c.

◆ CHROMA_MC8_ALTIVEC_CORE_SIMPLE

#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 51 of file h264chroma_template.c.

◆ noop

#define noop (   a)    a

Definition at line 71 of file h264chroma_template.c.

◆ add28

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

Definition at line 72 of file h264chroma_template.c.

◆ GET_VSRC1

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

Definition at line 102 of file h264chroma_template.c.

◆ GET_VSRC

#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 105 of file h264chroma_template.c.

vec_s16
#define vec_s16
Definition: util_altivec.h:37
s
#define s(width, name)
Definition: cbs_vp9.c:198
zero_u8v
#define zero_u8v
Definition: util_altivec.h:47
dst
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition: dsp.h:83
vec_u8
#define vec_u8
Definition: util_altivec.h:34
stride
#define stride
Definition: h264pred_template.c:537