[flac-dev] [PATCH] stream_encoder : Improve selection of residual accumulator width

lvqcl lvqcl.mail at gmail.com
Thu Jun 19 07:25:57 PDT 2014


Miroslav Lichvar wrote:

>>      if(bps + subframe->qlp_coeff_precision + FLAC__bitmath_ilog2(order) <= 32)
>>
>> Is it really "not pessimistic enough"? Can it be changed similarly to your patch
>> for stream_encoder.c?
>
> Good question. I'm not sure what exactly Josh meant by that comment.
> The git message says just "minor comments".

Now I wonder why evaluate_lpc_subframe_() function in stream_encoder.c contains
almost the same code, but without any comments that it's not enough pessimistic:


evaluate_lpc_subframe_():

if(subframe_bps + qlp_coeff_precision + FLAC__bitmath_ilog2(order) <= 32)
	if(subframe_bps <= 16 && qlp_coeff_precision <= 16)
		encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_16bit(...);
	else
		encoder->private_->local_lpc_compute_residual_from_qlp_coefficients(...);
else
	encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_64bit(...);


vs. read_subframe_lpc_():

if(bps + subframe->qlp_coeff_precision + FLAC__bitmath_ilog2(order) <= 32)
	if(bps <= 16 && subframe->qlp_coeff_precision <= 16)
		decoder->private_->local_lpc_restore_signal_16bit(...);
	else
		decoder->private_->local_lpc_restore_signal(...);
else
	decoder->private_->local_lpc_restore_signal_64bit(...);


More information about the flac-dev mailing list