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...