Lines Matching refs:block
51 CeltBlock *block = &f->block[j];
56 block->energy[i] = 0.0;
72 block->energy[i] = FFMAX(-9.0f, block->energy[i]) * alpha + prev[j] + value;
87 CeltBlock *block = &f->block[j];
92 block->energy[i] += offset;
112 f->block[j].energy[i] += offset;
146 static void celt_denormalize(CeltFrame *f, CeltBlock *block, float *data)
152 float log_norm = block->energy[i] + ff_celt_mean_energy[i];
160 static void celt_postfilter_apply_transition(CeltBlock *block, float *data)
162 const int T0 = block->pf_period_old;
163 const int T1 = block->pf_period;
172 if (block->pf_gains[0] == 0.0 &&
173 block->pf_gains_old[0] == 0.0)
176 g00 = block->pf_gains_old[0];
177 g01 = block->pf_gains_old[1];
178 g02 = block->pf_gains_old[2];
179 g10 = block->pf_gains[0];
180 g11 = block->pf_gains[1];
181 g12 = block->pf_gains[2];
205 static void celt_postfilter(CeltFrame *f, CeltBlock *block)
210 celt_postfilter_apply_transition(block, block->buf + 1024);
212 block->pf_period_old = block->pf_period;
213 memcpy(block->pf_gains_old, block->pf_gains, sizeof(block->pf_gains));
215 block->pf_period = block->pf_period_new;
216 memcpy(block->pf_gains, block->pf_gains_new, sizeof(block->pf_gains));
219 celt_postfilter_apply_transition(block, block->buf + 1024 + CELT_OVERLAP);
221 if (block->pf_gains[0] > FLT_EPSILON && filter_len > 0)
222 f->opusdsp.postfilter(block->buf + 1024 + 2 * CELT_OVERLAP,
223 block->pf_period, block->pf_gains,
226 block->pf_period_old = block->pf_period;
227 memcpy(block->pf_gains_old, block->pf_gains, sizeof(block->pf_gains));
230 memmove(block->buf, block->buf + len, (1024 + CELT_OVERLAP / 2) * sizeof(float));
237 memset(f->block[0].pf_gains_new, 0, sizeof(f->block[0].pf_gains_new));
238 memset(f->block[1].pf_gains_new, 0, sizeof(f->block[1].pf_gains_new));
253 CeltBlock *block = &f->block[i];
255 block->pf_period_new = FFMAX(period, CELT_POSTFILTER_MINPERIOD);
256 block->pf_gains_new[0] = gain * ff_celt_postfilter_taps[tapset][0];
257 block->pf_gains_new[1] = gain * ff_celt_postfilter_taps[tapset][1];
258 block->pf_gains_new[2] = gain * ff_celt_postfilter_taps[tapset][2];
268 static void process_anticollapse(CeltFrame *f, CeltBlock *block, float *X)
287 prev[0] = block->prev_energy[0][i];
288 prev[1] = block->prev_energy[1][i];
290 CeltBlock *block1 = &f->block[1];
295 Ediff = block->energy[i] - FFMIN(prev[0], prev[1]);
306 if (!(block->collapse_masks[i] & 1 << k)) {
360 memset(f->block[i].coeffs, 0, sizeof(f->block[i].coeffs));
361 memset(f->block[i].collapse_masks, 0, sizeof(f->block[i].collapse_masks));
392 f->block[0].energy[i] = FFMAX(f->block[0].energy[i], f->block[1].energy[i]);
409 CeltBlock *block = &f->block[i];
412 process_anticollapse(f, block, f->block[i].coeffs);
414 celt_denormalize(f, block, f->block[i].coeffs);
419 f->dsp->vector_fmac_scalar(f->block[0].coeffs, f->block[1].coeffs, 1.0, FFALIGN(frame_size, 16));
422 memcpy(f->block[1].coeffs, f->block[0].coeffs, frame_size * sizeof(float));
426 CeltBlock *block = &f->block[i];
428 for (j = 0; j < FF_ARRAY_ELEMS(block->energy); j++)
429 block->energy[j] = CELT_ENERGY_SILENCE;
431 memset(f->block[0].coeffs, 0, sizeof(f->block[0].coeffs));
432 memset(f->block[1].coeffs, 0, sizeof(f->block[1].coeffs));
437 CeltBlock *block = &f->block[i];
441 float *dst = block->buf + 1024 + j * f->blocksize;
443 imdct->imdct_half(imdct, dst + CELT_OVERLAP / 2, f->block[i].coeffs + j,
450 f->dsp->vector_fmul_scalar(&block->buf[1024], &block->buf[1024], 0.5f, frame_size);
453 celt_postfilter(f, block);
456 block->emph_coeff = f->opusdsp.deemphasis(output[i],
457 &block->buf[1024 - frame_size],
458 block->emph_coeff, frame_size);
462 memcpy(f->block[1].energy, f->block[0].energy, sizeof(f->block[0].energy));
465 CeltBlock *block = &f->block[i];
468 memcpy(block->prev_energy[1], block->prev_energy[0], sizeof(block->prev_energy[0]));
469 memcpy(block->prev_energy[0], block->energy, sizeof(block->prev_energy[0]));
472 block->prev_energy[0][j] = FFMIN(block->prev_energy[0][j], block->energy[j]);
476 block->prev_energy[0][j] = CELT_ENERGY_SILENCE;
477 block->energy[j] = 0.0;
480 block->prev_energy[0][j] = CELT_ENERGY_SILENCE;
481 block->energy[j] = 0.0;
498 CeltBlock *block = &f->block[i];
501 block->prev_energy[0][j] = block->prev_energy[1][j] = CELT_ENERGY_SILENCE;
503 memset(block->energy, 0, sizeof(block->energy));
504 memset(block->buf, 0, sizeof(block->buf));
506 memset(block->pf_gains, 0, sizeof(block->pf_gains));
507 memset(block->pf_gains_old, 0, sizeof(block->pf_gains_old));
508 memset(block->pf_gains_new, 0, sizeof(block->pf_gains_new));
514 block->emph_coeff = 0.0f / CELT_EMPH_COEFF;