Miroslav Lichvar wrote: >> From FLAC__fixed_compute_residual: >> residual[i] = data[i] - 4*data[i-1] + 6*data[i-2] - 4*data[i-3] + >> data[i-4]; >> >> so max(residual[i]) == 16 * max(data[j]), or: max_bps(residual[]) == 4 + >> max_bps(data[]). >> >> Am I right that it's the reason why FLAC__MAX_EXTRA_RESIDUAL_BPS is equal to >> 4? > > Not really, it's just a guess. With LPC the maximum possible residual > could be much larger than with the fixed predictor if the coefficients > were chosen randomly, but the autocorrelation routine should keep them > more reasonable. The snippet6.wav file needed 2, so I made it slightly > larger to have some extra room. > > As overflow in the accumulator won't result in a data loss, I think > this is good enough until someone can figure out a better approach.
I see. FLAC calculates real bitdepth of input signal for every block. Is it feasible to calculate real bitdepth of residual signal and use this value instead of (bps + 4) ? _______________________________________________ flac-dev mailing list flac-dev@xiph.org http://lists.xiph.org/mailman/listinfo/flac-dev