search for: opus_select_arch

Displaying 20 results from an estimated 37 matches for "opus_select_arch".

2015 Jan 20
0
[RFC PATCH v1 1/2] Optimize repeated calls to opus_select_arch
Currently, opus_select_arch() is being called during initial setup of encoder/decoder structures and then stored. However, this "arch" variable does not always get passed to every function that may need it for architecture specific optimization. As a result, when a certain function is to be optimized for a particul...
2015 Jan 20
1
[RFC PATCH v1 1/2] Optimize repeated calls to opus_select_arch
Viswanath Puttagunta wrote: > Instead, just optimize the opus_select_arch() such that only > the first call to it takes more time, but subsequent calls to > it are much faster. This has been suggested before, but it is a bad idea. The patch posted below is not thread-safe or even re-entrant. You can argue that the results should always be the same, so it won'...
2015 Nov 05
2
AVX Optimizations
Yes, Thank you. I'll follow up with the AVX code and tests for pitch code. Radu -----Original Message----- From: opus-bounces at xiph.org [mailto:opus-bounces at xiph.org] On Behalf Of Timothy B. Terriberry Sent: Thursday, November 5, 2015 10:31 AM To: opus at xiph.org Subject: Re: [opus] AVX Optimizations Velea, Radu wrote: > I've created a pull request[1] to enable configuration
2015 Nov 05
0
AVX Optimizations
Velea, Radu wrote: > Yes, > > Thank you. I'll follow up with the AVX code and tests for pitch code. Actually, I lied. Because you update opus_select_arch(), you can now return a value for arch (4) that is larger than the maximum we currently support (3). This doesn't actually cause failures, because we mask with OPUS_ARCHMASK, but it does mean that a CPU with AVX will invoke the C versions of every function instead of any potential SSE, SSE2...
2015 Nov 05
2
AVX Optimizations
...t xiph.org] On Behalf Of Timothy B. Terriberry Sent: Thursday, November 5, 2015 11:08 AM To: opus at xiph.org Subject: Re: [opus] AVX Optimizations Velea, Radu wrote: > Yes, > > Thank you. I'll follow up with the AVX code and tests for pitch code. Actually, I lied. Because you update opus_select_arch(), you can now return a value for arch (4) that is larger than the maximum we currently support (3). This doesn't actually cause failures, because we mask with OPUS_ARCHMASK, but it does mean that a CPU with AVX will invoke the C versions of every function instead of any potential SSE, SSE2, or...
2017 May 24
3
Three new releases
Hi, I'm announcing two new releases of opus, along with the first release of the new libopusenc library. First for opus, we just fixed a bad bug in the surround encoding code that would cause very bad quality on signals beyond a certain amplitude. Thanks to Franziska Trojahn and others from HfT Leipzig for finding this issue through their listening test[1] (the quality of the two bad files
2013 May 23
2
ASM runtime detection and optimizations
...signalling; + int arch; /* Everything beyond this point gets cleared on a reset */ #define DECODER_RESET_START rng @@ -159,6 +161,7 @@ OPUS_CUSTOM_NOSTATIC int opus_custom_decoder_init(CELTDecoder *st, const CELTMod st->signalling = 1; st->loss_count = 0; + st->arch = opus_select_arch(); opus_custom_decoder_ctl(st, OPUS_RESET_STATE); @@ -430,7 +433,7 @@ static void celt_decode_lost(CELTDecoder * OPUS_RESTRICT st, opus_val16 * OPUS_R { VARDECL( opus_val16, lp_pitch_buf ); ALLOC( lp_pitch_buf, DECODE_BUFFER_SIZE>>1, opus_val16 ); -...
2015 Jan 20
6
[RFC PATCH v1 0/2] Encode optimize using libNE10
...Vish [1]: https://docs.google.com/a/linaro.org/document/d/1avz20b3DOnD3IwxiKTmUfyUK89hUwL9K2PYMh7dlkNg/edit# [2]: https://bugs.linaro.org/show_bug.cgi?id=1044 [3]: http://people.linaro.org/~viswanath.puttagunta/opus/NE10_root/NE10_root.tar.gz Viswanath Puttagunta (2): Optimize repeated calls to opus_select_arch armv7(float): Optimize encode usecase using NE10 library Makefile.am | 30 +-- celt/arm/arm_celt_ne10_fft_map.c | 65 ++++++ celt/arm/arm_celt_ne10_mdct_map.c | 53 +++++ celt/arm/armcpu.c | 19 +- celt/arm/celt_ne10_fft.c |...
2017 May 26
2
Three new releases
...ILD/opus-1.2-beta/silk/tests/test_unit_LPC_inv_pred_gain.c:114: > undefined reference to `silk_LPC_inverse_pred_gain_c' > > Second is a few of them have this error: > > /builddir/build/BUILD/opus-1.2-beta/silk/tests/test_unit_LPC_inv_pred_gain.c:91: > undefined reference to `opus_select_arch' > > all the build logs for the various arches can be found here: > https://koji.fedoraproject.org/koji/taskinfo?taskID=19718776 > > Let me know if you've got any queries. > > Peter >
2015 Jan 29
2
[RFC PATCH v1 2/2] armv7(float): Optimize encode usecase using NE10 library
..._c2c_1d_float32_neon((ne10_fft_cpx_float32_t *)fout, > + (ne10_fft_cpx_float32_t *)tempin, > + cfg, 0); More mis-alignment. > + /* N/4 complex FFT, does not downscale anymore */ > + opus_fft(st, f2, (kiss_fft_cpx *)f, opus_select_arch()); Because you removed the scaling from the above loop, this comment is inaccurate. > diff --git a/celt/arm/fft_arm.h b/celt/arm/fft_arm.h > new file mode 100644 > index 0000000..16f008b > --- /dev/null > +++ b/celt/arm/fft_arm.h > @@ -0,0 +1,65 @@ > +/* Copyright (c) 2015-...
2015 Jan 20
0
[RFC PATCH v1 2/2] armv7(float): Optimize encode usecase using NE10 library
...e = *yp++; + im = *yp++; + yr = S_MUL(re,t0) - S_MUL(im,t1); + yi = S_MUL(im,t0) + S_MUL(re,t1); + yc.r = yr; + yc.i = yi; + f2[i] = yc; + } + } + + /* N/4 complex FFT, does not downscale anymore */ + opus_fft(st, f2, (kiss_fft_cpx *)f, opus_select_arch()); + + /* Post-rotate */ + { + /* Temp pointers to make it really clear to the compiler what we're doing */ + const kiss_fft_cpx * OPUS_RESTRICT fp = (kiss_fft_cpx *)f; + kiss_fft_scalar * OPUS_RESTRICT yp1 = out; + kiss_fft_scalar * OPUS_RESTRICT yp2 = out+stride*(N2-1...
2015 Jan 29
0
[RFC PATCH v1 2/2] armv7(float): Optimize encode usecase using NE10 library
..._float32_t *)fout, >> + (ne10_fft_cpx_float32_t *)tempin, >> + cfg, 0); > > > More mis-alignment. > >> + /* N/4 complex FFT, does not downscale anymore */ >> + opus_fft(st, f2, (kiss_fft_cpx *)f, opus_select_arch()); > > > Because you removed the scaling from the above loop, this comment is > inaccurate. > >> diff --git a/celt/arm/fft_arm.h b/celt/arm/fft_arm.h >> new file mode 100644 >> index 0000000..16f008b >> --- /dev/null >> +++ b/celt/arm/fft_arm.h >>...
2016 Jul 08
1
Fix ARM cpu selection if Intrinsics are enabled but not asm
The ARM implementation of opus_select_arch wants to verify that a given CPU architecture also implies all lower-capability architectures. Unfortunately, the ARM opus_cpu_capabilities function only currently checks for those architectures that are enabled in the configuration, and thus —disable-asm — or a floating-point build — doesn’t chec...
2016 Sep 04
0
[PATCH 9/9] Optimize silk_inner_prod_aligned_scale() for ARM NEON
...IR_IMPL' /home/derf/src/xiph/git/xiph/opus/build/../celt/tests/test_unit_optimization_lpc.c:77: undefined reference to `celt_fir_c' tests/test_unit_optimization.o: In function `main': /home/derf/src/xiph/git/xiph/opus/build/../tests/test_unit_optimization.c:51: undefined reference to `opus_select_arch' collect2: error: ld returned 1 exit status
2017 May 25
0
Three new releases
...ll arches: /builddir/build/BUILD/opus-1.2-beta/silk/tests/test_unit_LPC_inv_pred_gain.c:114: undefined reference to `silk_LPC_inverse_pred_gain_c' Second is a few of them have this error: /builddir/build/BUILD/opus-1.2-beta/silk/tests/test_unit_LPC_inv_pred_gain.c:91: undefined reference to `opus_select_arch' all the build logs for the various arches can be found here: https://koji.fedoraproject.org/koji/taskinfo?taskID=19718776 Let me know if you've got any queries. Peter
2017 Jun 27
0
[Windows]Issue with opus 1.2 : lnk2001
Hi, I got libopus 1.2 from the download page. I compiled it using visual studio 2015 with your configuration (Release). I integrated opus.lib and the new include files in my own solution, but when I compile, I found 28 link errors (lnk 2001): - silk_Encode - ec_enc_init - celt_inner_prod_sse - opus_select_arch - silk_InitEncoder - ec_enc_shrink - silk_log2lin - ec_enc_bit_logp - celt_encoder_get_size - celt_encoder_init - silk_lin2log - opus_custom_encoder_ctl - ec_enc_uint - silk_Get_Encoder_Size - celt_encode_with_ec - ec_enc_done - opus_fft_c - silk_Decode - ec_dec_init - ec_dec_uint - celt_decode_wit...
2016 Sep 06
2
[PATCH 9/9] Optimize silk_inner_prod_aligned_scale() for ARM NEON
.../derf/src/xiph/git/xiph/opus/build/../celt/tests/test_unit_optimization_lpc.c:77: > undefined reference to `celt_fir_c' > tests/test_unit_optimization.o: In function `main': > /home/derf/src/xiph/git/xiph/opus/build/../tests/test_unit_optimization.c:51: > undefined reference to `opus_select_arch' > collect2: error: ld returned 1 exit status > > _______________________________________________ > opus mailing list > opus at xiph.org > http://lists.xiph.org/mailman/listinfo/opus > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http:...
2016 Aug 26
2
[PATCH 9/9] Optimize silk_inner_prod_aligned_scale() for ARM NEON
Created corresponding unit test, and the optimization is bit exact with C function. --- silk/SigProc_FIX.h | 7 ++- silk/arm/arm_silk_map.c | 12 ++++ silk/arm/inner_prod_aligned_arm.h | 58 +++++++++++++++++++ silk/arm/inner_prod_aligned_neon_intr.c | 66 ++++++++++++++++++++++ silk/enc_API.c
2015 Feb 04
0
[RFC PATCH v2] armv7(float): Optimize encode usecase using NE10 library
...static const opus_int16 eband5ms[] = { /*0 200 400 600 800 1k 1.2 1.4 1.6 2k 2.4 2.8 3.2 4k 4.8 5.6 6.8 8k 9.6 12k 15.6 */ @@ -229,6 +230,7 @@ CELTMode *opus_custom_mode_create(opus_int32 Fs, int frame_size, int *error) opus_val16 *window; opus_int16 *logN; int LM; + int arch = opus_select_arch(); ALLOC_STACK; #if !defined(VAR_ARRAYS) && !defined(USE_ALLOCA) if (global_stack==NULL) @@ -389,7 +391,7 @@ CELTMode *opus_custom_mode_create(opus_int32 Fs, int frame_size, int *error) compute_pulse_cache(mode, mode->maxLM); if (clt_mdct_init(&mode->mdct, 2*mod...
2015 Mar 03
0
[RFC PATCHv3] armv7(float): Optimize encode usecase using NE10 library
...static const opus_int16 eband5ms[] = { /*0 200 400 600 800 1k 1.2 1.4 1.6 2k 2.4 2.8 3.2 4k 4.8 5.6 6.8 8k 9.6 12k 15.6 */ @@ -229,6 +230,7 @@ CELTMode *opus_custom_mode_create(opus_int32 Fs, int frame_size, int *error) opus_val16 *window; opus_int16 *logN; int LM; + int arch = opus_select_arch(); ALLOC_STACK; #if !defined(VAR_ARRAYS) && !defined(USE_ALLOCA) if (global_stack==NULL) @@ -389,7 +391,7 @@ CELTMode *opus_custom_mode_create(opus_int32 Fs, int frame_size, int *error) compute_pulse_cache(mode, mode->maxLM); if (clt_mdct_init(&mode->mdct, 2*mod...