42 int16_t *
block,
int n,
int qscale)
47 qadd = (qscale - 1) | 1;
63 nCoeffs=
s->intra_scantable.raster_end[
s->block_last_index[n] ];
67 register const vector
signed short vczero = (
const vector
signed short)vec_splat_s16(0);
70 register vector
signed short blockv, qmulv, qaddv, nqaddv, temp1;
71 register vector
bool short blockv_null, blockv_neg;
72 register short backup_0 =
block[0];
75 qmulv = vec_splat((
vec_s16)vec_lde(0, &qmul8), 0);
76 qaddv = vec_splat((
vec_s16)vec_lde(0, &qadd8), 0);
77 nqaddv = vec_sub(vczero, qaddv);
81 for(; (j + 7) <= nCoeffs ; j+=8) {
82 blockv = vec_ld(j << 1,
block);
83 blockv_neg = vec_cmplt(blockv, vczero);
84 blockv_null = vec_cmpeq(blockv, vczero);
86 temp1 = vec_sel(qaddv, nqaddv, blockv_neg);
88 temp1 = vec_mladd(blockv, qmulv, temp1);
90 blockv = vec_sel(temp1, blockv, blockv_null);
91 vec_st(blockv, j << 1,
block);
98 for(; j <= nCoeffs ; j++) {
127 s->dct_unquantize_h263_intra = dct_unquantize_h263_altivec;
128 s->dct_unquantize_h263_inter = dct_unquantize_h263_altivec;
Macro definitions for various function/variable attributes.
#define av_assert2(cond)
assert() equivalent, that does lie in speed critical code.
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
av_cold void ff_mpv_common_init_ppc(MpegEncContext *s)
#define PPC_ALTIVEC(flags)
Contains misc utility macros and inline functions.