comparison g726.c @ 7069:92bcfa9ba977 libavcodec

Factorize I >> (c->tbls->bits - 1) out.
author michael
date Thu, 19 Jun 2008 10:29:36 +0000
parents 4630168a70d5
children 3e197f8ee6c6
comparison
equal deleted inserted replaced
7068:6497251e2fde 7069:92bcfa9ba977
186 186
187 static int16_t g726_decode(G726Context* c, int16_t I) 187 static int16_t g726_decode(G726Context* c, int16_t I)
188 { 188 {
189 int dq, re_signal, pk0, fa1, i, tr, ylint, ylfrac, thr2, al, dq0; 189 int dq, re_signal, pk0, fa1, i, tr, ylint, ylfrac, thr2, al, dq0;
190 Float11 f; 190 Float11 f;
191 int I_sig= I >> (c->tbls->bits - 1);
191 192
192 dq = inverse_quant(c, I); 193 dq = inverse_quant(c, I);
193 194
194 /* Transition detect */ 195 /* Transition detect */
195 ylint = (c->yl >> 15); 196 ylint = (c->yl >> 15);
196 ylfrac = (c->yl >> 10) & 0x1f; 197 ylfrac = (c->yl >> 10) & 0x1f;
197 thr2 = (ylint > 9) ? 0x1f << 10 : (0x20 + ylfrac) << ylint; 198 thr2 = (ylint > 9) ? 0x1f << 10 : (0x20 + ylfrac) << ylint;
198 tr= (c->td == 1 && dq > ((3*thr2)>>2)); 199 tr= (c->td == 1 && dq > ((3*thr2)>>2));
199 200
200 if (I >> (c->tbls->bits - 1)) /* get the sign */ 201 if (I_sig) /* get the sign */
201 dq = -dq; 202 dq = -dq;
202 re_signal = c->se + dq; 203 re_signal = c->se + dq;
203 204
204 /* Update second order predictor coefficient A2 and A1 */ 205 /* Update second order predictor coefficient A2 and A1 */
205 pk0 = (c->sez + dq) ? sgn(c->sez + dq) : 0; 206 pk0 = (c->sez + dq) ? sgn(c->sez + dq) : 0;
228 c->sr[1] = c->sr[0]; 229 c->sr[1] = c->sr[0];
229 i2f(re_signal, &c->sr[0]); 230 i2f(re_signal, &c->sr[0]);
230 for (i=5; i>0; i--) 231 for (i=5; i>0; i--)
231 c->dq[i] = c->dq[i-1]; 232 c->dq[i] = c->dq[i-1];
232 i2f(dq, &c->dq[0]); 233 i2f(dq, &c->dq[0]);
233 c->dq[0].sign = I >> (c->tbls->bits - 1); /* Isn't it crazy ?!?! */ 234 c->dq[0].sign = I_sig; /* Isn't it crazy ?!?! */
234 235
235 c->td = c->a[1] < -11776; 236 c->td = c->a[1] < -11776;
236 237
237 /* Update Ap */ 238 /* Update Ap */
238 c->dms += ((c->tbls->F[I]<<9) - c->dms) >> 5; 239 c->dms += ((c->tbls->F[I]<<9) - c->dms) >> 5;