Displaying 7 results from an estimated 7 matches for "local_lpc_restore_signal_16bit".
2004 Sep 10
3
Altivec, automake
I think I've gotten FLAC__lpc_restore_signal() about as good as I'm going to
get it.
Here's what I have:
-a new file, lpc_asm.s, which has the assembly routines
-changes to cpu.h, cpu.c, and stream_decoder.c to enable them
-changes to configure.in to support the new cpu stuff
-a preliminary Makefile.am
-maybe something else I'm forgetting
Now automake complains that configure.in
2004 Sep 10
2
Altivec, automake
..., unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[]);
void (*local_lpc_restore_signal_64bit)(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[]);
void (*local_lpc_restore_signal_16bit)(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[]);
void *client_data;
FLAC__BitBuffer *input;
FLAC__int32 *output[FLAC__MAX_CHANNELS];
! FLAC__int32 *residual[FLAC__MAX_CHANNELS];
FLAC__EntropyCodin...
2014 Jul 02
2
[PATCH] two patches of doubtful usefulness
...ode for
error += lp_coeff[i] * (1 << *shift);
is less efficient than for
error += lp_coeff[i] * (1 << pshift);
Cons:
* the speed increase is probably negligible
2)
There's the following code in stream_decoder.c:
if(order <= 8)
decoder->private_->local_lpc_restore_signal_16bit_order8( ... );
else
decoder->private_->local_lpc_restore_signal_16bit( ... );
but local_lpc_restore_signal_16bit is equal to ..._order8 for all
architectures except powerpc/altivec.
The patch hides local_lpc_restore_signal_16bit_order8 under
#ifdef FLAC__CPU_PPC / #endif direc...
2004 Sep 10
1
lpc slowdown
...quot;
#include "private/fixed.h"
@@ -1738,10 +1739,11 @@
/* decode the subframe */
memcpy(decoder->private_->output[channel], subframe->warmup, sizeof(FLAC__int32) * order);
- if(bps <= 16 && subframe->qlp_coeff_precision <= 16)
- decoder->private_->local_lpc_restore_signal_16bit(decoder->private_->residual[channel], decoder->private_->frame.header.blocksize-order, subframe->qlp_coeff, order, subframe->quantization_level, decoder->private_->output[channel]+order);
- else if(bps + subframe->qlp_coeff_precision + order <= 32)
- decoder->priva...
2014 Jun 19
5
[PATCH] stream_encoder : Improve selection of residual accumulator width
...unusual data the residual signal can be
wider than bps. The FLAC format specification doesn't seem to mention
this. Should it be treated as a valid FLAC stream? Based on the
analysis above, the currently used check allows residuals at most 1
bit wider than bps. Another problem could be that the
local_lpc_restore_signal_16bit function may truncate the residual to
16 bits.
--
Miroslav Lichvar
2014 Jun 19
1
[PATCH] stream_encoder : Improve selection of residual accumulator width
...XTRA_RESIDUAL_BPS <= 16 && qlp_coeff_precision <= 16)
> 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(...);
--
Miroslav Lichvar
2014 Jun 19
7
[PATCH] stream_encoder : Improve selection of residual accumulator width
In the precompute_partition_info_sums_ function, instead of selecting
64-bit accumulator when the signal bps is larger than 16, revert to the
original approach based on partition size, but make room for few extra
bits to not overflow with unusual signals where the average residual
magnitude may be larger than bps.
It slightly improves the performance with standard encoding levels and
16-bit files