Go to the source code of this file.
|
| #define | LP(p) *(uint32_t*)(p) |
| |
| #define | LPC(p) *(const uint32_t*)(p) |
| |
| #define | UNPACK(ph, pl, tt0, tt1) |
| |
| #define | rnd_PACK(ph, pl, nph, npl) ph + nph + (((pl + npl + BYTE_VEC32(0x02))>>2) & BYTE_VEC32(0x03)) |
| |
| #define | no_rnd_PACK(ph, pl, nph, npl) ph + nph + (((pl + npl + BYTE_VEC32(0x01))>>2) & BYTE_VEC32(0x03)) |
| |
| #define | MERGE1(a, b, ofs) (ofs==0)?a:( ((a)>>(8*ofs))|((b)<<(32-8*ofs)) ) |
| |
| #define | MERGE2(a, b, ofs) (ofs==3)?b:( ((a)>>(8*(ofs+1)))|((b)<<(32-8*(ofs+1))) ) |
| |
| #define | put(d, s) d = s |
| |
| #define | avg(d, s) d = rnd_avg32(s,d) |
| |
| #define | OP_C4(ofs) |
| |
| #define | OP_C40() |
| |
| #define | OP put |
| |
| #define | OP avg |
| |
| #define | OP_C(ofs, sz, avg2) |
| |
| #define | OP_C0(sz, avg2) |
| |
| #define | OP_X(ofs, sz, avg2) |
| |
| #define | OP_Y0(sz, avg2) |
| |
| #define | OP_Y(ofs, sz, avg2) |
| |
| #define | OP_X0(sz, avg2) OP_X(0,sz,avg2) |
| |
| #define | OP_XY0(sz, PACK) OP_XY(0,sz,PACK) |
| |
| #define | OP_XY(ofs, sz, PACK) |
| |
| #define | DEFFUNC(prefix, op, rnd, xy, sz, OP_N, avgfunc) |
| |
| #define | OP put |
| |
| #define | OP avg |
| |
| #define | ff_put_no_rnd_pixels8_o ff_put_rnd_pixels8_o |
| |
| #define | ff_put_no_rnd_pixels16_o ff_put_rnd_pixels16_o |
| |
| #define | ff_avg_no_rnd_pixels16_o ff_avg_rnd_pixels16_o |
| |
| #define DEFFUNC |
( |
|
prefix, |
|
|
|
op, |
|
|
|
rnd, |
|
|
|
xy, |
|
|
|
sz, |
|
|
|
OP_N, |
|
|
|
avgfunc |
|
) |
| |
Value:
{ \
switch((int)ref&3) { \
case 0:OP_N##0(sz,rnd##
_##avgfunc);
return; \
case 1:OP_N(1,sz,rnd##_##avgfunc); return; \
case 2:OP_N(2,sz,rnd##_##avgfunc); return; \
case 3:OP_N(3,sz,rnd##_##avgfunc); return; \
} \
}
Definition at line 268 of file hpeldsp.c.
| #define LP |
( |
|
p | ) |
*(uint32_t*)(p) |
| #define LPC |
( |
|
p | ) |
*(const uint32_t*)(p) |
| #define MERGE1 |
( |
|
a, |
|
|
|
b, |
|
|
|
ofs |
|
) |
| (ofs==0)?a:( ((a)>>(8*ofs))|((b)<<(32-8*ofs)) ) |
| #define MERGE2 |
( |
|
a, |
|
|
|
b, |
|
|
|
ofs |
|
) |
| (ofs==3)?b:( ((a)>>(8*(ofs+1)))|((b)<<(32-8*(ofs+1))) ) |
| #define no_rnd_PACK |
( |
|
ph, |
|
|
|
pl, |
|
|
|
nph, |
|
|
|
npl |
|
) |
| ph + nph + (((pl + npl + BYTE_VEC32(0x01))>>2) & BYTE_VEC32(0x03)) |
| #define OP_C |
( |
|
ofs, |
|
|
|
sz, |
|
|
|
avg2 |
|
) |
| |
Value:{ \
ref-=ofs; \
do { \
if (sz==16) { \
} \
}
Definition at line 101 of file hpeldsp.c.
| #define OP_C0 |
( |
|
sz, |
|
|
|
avg2 |
|
) |
| |
Value:{ \
do { \
OP(
LP(dest+0),
LPC(ref+0)); \
OP(
LP(dest+4),
LPC(ref+4)); \
if (sz==16) { \
OP(
LP(dest+8),
LPC(ref+8)); \
OP(
LP(dest+12),
LPC(ref+12)); \
} \
}
Definition at line 123 of file hpeldsp.c.
| #define OP_X |
( |
|
ofs, |
|
|
|
sz, |
|
|
|
avg2 |
|
) |
| |
Value:{ \
ref-=ofs; \
do { \
if (sz==16) { \
} \
}
Definition at line 137 of file hpeldsp.c.
| #define OP_XY |
( |
|
ofs, |
|
|
|
sz, |
|
|
|
PACK |
|
) |
| |
| #define OP_XY0 |
( |
|
sz, |
|
|
|
PACK |
|
) |
| OP_XY(0,sz,PACK) |
| #define OP_Y |
( |
|
ofs, |
|
|
|
sz, |
|
|
|
avg2 |
|
) |
| |
| #define OP_Y0 |
( |
|
sz, |
|
|
|
avg2 |
|
) |
| |
Value:{ \
\
if (sz==16) { \
} \
do { \
\
OP(
LP(dest+0),
avg2(t0,t)); t0 =
t; \
OP(
LP(dest+4),
avg2(t1,t)); t1 =
t; \
if (sz==16) { \
OP(
LP(dest+8),
avg2(t2,t)); t2 =
t; \
OP(
LP(dest+12),
avg2(t3,t)); t3 =
t; \
} \
}
Definition at line 159 of file hpeldsp.c.
| #define put |
( |
|
d, |
|
|
|
s |
|
) |
| d = s |
| #define rnd_PACK |
( |
|
ph, |
|
|
|
pl, |
|
|
|
nph, |
|
|
|
npl |
|
) |
| ph + nph + (((pl + npl + BYTE_VEC32(0x02))>>2) & BYTE_VEC32(0x03)) |
| #define UNPACK |
( |
|
ph, |
|
|
|
pl, |
|
|
|
tt0, |
|
|
|
tt1 |
|
) |
| |
Value:do { \
uint32_t
t0,
t1; t0=tt0;t1=tt1; \
Definition at line 36 of file hpeldsp.c.
| static void avg_pixels4_c |
( |
uint8_t * |
dest, |
|
|
const uint8_t * |
ref, |
|
|
const int |
stride, |
|
|
int |
height |
|
) |
| |
|
static |
| static void put_pixels4_c |
( |
uint8_t * |
dest, |
|
|
const uint8_t * |
ref, |
|
|
const int |
stride, |
|
|
int |
height |
|
) |
| |
|
static |