search for: lpc_order

Displaying 14 results from an estimated 14 matches for "lpc_order".

2015 Apr 18
2
"keep qlp coeff precision such that only 32-bit math is required"
Erik de Castro Lopo wrote: > There should be some indication of why in the git history. http://git.xiph.org/?p=flac.git;a=commitdiff;h=27846708fe6271e5e3965a4bbad99baa1ca24c49 Now I remember a discussion about a bug in -p switch: the old code substracts lpc_order instead of FLAC__bitmath_ilog2(lpc_order), and this commit fixes this. It seems that the logic in process_subframe_() and in evaluate_lpc_subframe_() is the same, so the constants in the conditions should be the same: either both equal to 16, or both equal to 17. I built two flac executables, t...
2013 Aug 22
2
New routine: FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16
libFLAC have three SSE-accelerated functions FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_N (N = 4, 8, 12). They require lpc_order less than N. The best compression preset (flac -8) uses lpc_order up to 12; it means that during encoding FLAC also uses unaccelerated C function. I'm not very familiar with asm so I took FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_12, changed it and wrote function ..._sse_lag_16. Accor...
2015 Apr 18
2
"keep qlp coeff precision such that only 32-bit math is required"
...oder.c has > > min_qlp_coeff_precision = FLAC__MIN_QLP_COEFF_PRECISION; > /* try to ensure a 32-bit datapath throughout for 16bps(+1bps for side channel) or less */ > if(subframe_bps <= 17) { > max_qlp_coeff_precision = min(32 - subframe_bps - lpc_order, FLAC__MAX_QLP_COEFF_PRECISION); > max_qlp_coeff_precision = max(max_qlp_coeff_precision, min_qlp_coeff_precision); > } > > in process_subframe_(), whereas evaluate_lpc_subframe_() has the comments that you refer to. > > I've not done an analysis to determ...
2014 Jul 28
0
[PATCH] Fix bug when using -p switch during compression
...do_qlp_coeff_prec_search) { min_qlp_coeff_precision = FLAC__MIN_QLP_COEFF_PRECISION; - /* try to ensure a 32-bit datapath throughout for 16bps(+1bps for side channel) or less */ - if(subframe_bps <= 17) { - max_qlp_coeff_precision = flac_min(32 - subframe_bps - lpc_order, FLAC__MAX_QLP_COEFF_PRECISION); + /* try to keep qlp coeff precision such that only 32-bit math is required for decode of <=16bps streams */ + if(subframe_bps <= 16) { + max_qlp_coeff_precision = flac_min(32 - subframe_bps - FLAC__bitmath_ilog2(lpc_order), FLAC__MAX_...
2017 Feb 18
1
[PATCH 3/5] SIMD: accelerate decoding of some 24-bit FLAC
This patch accelerates decoding of non-Subset 24-bit FLAC files (where lpc_order > 12). (The improved function is FLAC__lpc_restore_signal_wide_intrin_sse41(). It requires SSE4.1 and it's used only by 32-bit libFLAC) -------------- next part -------------- A non-text attachment was scrubbed... Name: 03_wide_decode.patch Type: application/octet-stream Size: 5502 bytes De...
2010 Jan 27
1
Some additions to CELT_RESET_STATE for 0.7.1
...= 0; st->vbr_offset = 0; st->vbr_count = 0; st->xmem = 0; CELT_MEMSET(st->pitch_buf, 0, (MAX_PERIOD>>1)+2); and the following lines should be added to CELT_RESET_STATE in celt_decoder_ctl: #ifdef NEW_PLC CELT_MEMSET(st->lpc, 0, C*LPC_ORDER); #endif BTW 0.7.1 is working very nicely for me. Cheers, John Ridges
2010 Nov 30
1
PLC cpu performance badness
Hello all Firstly thanks to everyone involved for creating CELT. It is really very useful :-) One of my targets is current generation Apple iPod with the fixed point decoder (latest version from website, 0.9.1) Based on my simple time-stamp based profiling of my running app it looks like decoding a null buffer for PLC costs a lot more than decoding a normal buffer. For example a standard
2013 May 23
2
ASM runtime detection and optimizations
...t_decode_lost(CELTDecoder * OPUS_RESTRICT st, opus_val16 * OPUS_R ROUND16(buf[DECODE_BUFFER_SIZE-exc_length-1-i], SIG_SHIFT); } /* Compute the excitation for exc_length samples before the loss. */ - celt_fir(exc+MAX_PERIOD-exc_length, lpc+c*LPC_ORDER, + celt_fir[st->arch&OPUS_ARCHMASK](exc+MAX_PERIOD-exc_length, lpc+c*LPC_ORDER, exc+MAX_PERIOD-exc_length, exc_length, LPC_ORDER, lpc_mem); } diff --git a/celt/celt_encoder.c b/celt/celt_encoder.c index 26e6ebb..08fddd0 100644 --- a/celt/celt_encoder...
2016 Jun 17
5
ARM NEON optimization -- celt_fir()
Hi all, This is Linfeng Zhang from Google. I'll work on ARM NEON optimization in the next few months. I'm submitting 2 patches in the following couple of emails, which have the new created celt_fir_neon(). I revised celt_fir_c() to not pass in argument "mem" in Patch 1. If there are concerns to this change, please let me know. Many thanks to your comments. Linfeng Zhang
2015 Apr 18
2
"keep qlp coeff precision such that only 32-bit math is required"
stream_encoder.c has the following code: /* try to keep qlp coeff precision such that only 32-bit math is required for decode of <=16bps streams */ if(subframe_bps <= 16) { ... But FLAC can convert 16-bit input to 17-bit if mid-side coding is used. So, does it make sense to compare subframe_bps with 17? (The patch is attached. What do you think about it?) -------------- next part
2016 Jul 14
6
Several patches of ARM NEON optimization
I rebased my previous 3 patches to the current master with minor changes. Patches 1 to 3 replace all my previous submitted patches. Patches 4 and 5 are new. Thanks, Linfeng Zhang
2014 Jul 28
1
Duplicate QLP coefficient restricting code
...f_prec_search) { > min_qlp_coeff_precision = FLAC__MIN_QLP_COEFF_PRECISION; > /* try to ensure a 32-bit datapath throughout for > 16bps(+1bps for side channel) or less */ > if(subframe_bps <= 17) { > max_qlp_coeff_precision = flac_min(32 - subframe_bps - > lpc_order, FLAC__MAX_QLP_COEFF_PRECISION); > max_qlp_coeff_precision = > flac_max(max_qlp_coeff_precision, min_qlp_coeff_precision); > } > else > max_qlp_coeff_precision = FLAC__MAX_QLP_COEFF_PRECISION; > } > else { > min_qlp_coeff_precision = max_qlp_coef...
2012 Apr 05
2
[PATCH 2/2] V2: Use a single definition of MIN and MAX in sources
...gt;private_->use_wide_by_block = (encoder->protected_->bits_per_sample + FLAC__bitmath_ilog2(encoder->protected_->blocksize)+1 > 30); - encoder->private_->use_wide_by_order = (encoder->protected_->bits_per_sample + FLAC__bitmath_ilog2(max(encoder->protected_->max_lpc_order, FLAC__MAX_FIXED_ORDER))+1 > 30); /*@@@ need to use this? */ + encoder->private_->use_wide_by_order = (encoder->protected_->bits_per_sample + FLAC__bitmath_ilog2(flac_max(encoder->protected_->max_lpc_order, FLAC__MAX_FIXED_ORDER))+1 > 30); /*@@@ need to use this? */ encode...
2016 Jul 14
0
[PATCH 2/5] Optimize fixed-point celt_fir_c() for ARM NEON
.....76a73c0 100644 --- a/celt/celt_lpc.h +++ b/celt/celt_lpc.h @@ -35,6 +35,11 @@ #include "x86/celt_lpc_sse.h" #endif +#if ((defined(OPUS_ARM_ASM) && defined(FIXED_POINT)) \ + || defined(OPUS_ARM_MAY_HAVE_NEON_INTR)) +#include "arm/celt_lpc_arm.h" +#endif + #define LPC_ORDER 24 void _celt_lpc(opus_val16 *_lpc, const opus_val32 *ac, int p); diff --git a/celt/tests/test_unit_dft.c b/celt/tests/test_unit_dft.c index 6166eb0..582618e 100644 --- a/celt/tests/test_unit_dft.c +++ b/celt/tests/test_unit_dft.c @@ -52,6 +52,7 @@ # include "celt_lpc.c" # include &q...