Age | Commit message (Collapse) | Author |
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Avoids accidental name collisions
|
|
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
Fixes build failure on platforms with MAY_HAVE_SSE4_1 (but not PRESUME_SSE4_1) with --enable-intrinsics.
|
|
Brings MIPS in sync with the ARM/SSE optimizations that added "arch" parameters.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
be used.
This patch adds a macro abstracting the condition under which the silk
math macros use opus_int64-based calculations rather than opus_int32.
No substantive change, but will make it easier to adjust if additional
such platforms are found in the future.
|
|
Enable x86 intrinsics when building in floating-point mode.
Support SSE as an arch value.
Use RTCD to conditionally enable existing floating-point Celt SSE code.
Call functions directly (without RTCD) when their architecture can be presumed.
Use SSE4.1 intrinsics optimized code for Silk even in floating-point mode.
|
|
The bug was caused by an improper feedback of the per-frame bitrate, causing
the bitrate to jump up and down from frame to frame, within a packet.
The patch avoids this, and also gives a slight improvement in general for
multi-frame packets, even without FEC.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
During review of c95c9a048f32, I replaced a call to
_mm_cvtepi8_epi32() with the OP_CVTEPI16_EPI32_M64() macro (note
the 16 instead of 8).
Make a separate OP_CVTEPI8_EPI32_M32() macro and use that instead.
Thaks to Wei Zhou for the report.
|
|
There is also no trailing whitespace.
|
|
1. Only for fixed point on x86 platform (32bit and 64bit, uses SIMD
intrinsics up to SSE4.2)
2. Use "configure --enable-fixed-point --enable-intrinsics" to enable
optimization, default is disabled.
3. Official test cases are verified and passed.
Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
- Bug fix: the CNG synthesis filter output consisted of only the prediction
values, now added the input to that.
- CNG excitation level now takes into account the level from the PLC (since
both PLC and CNG can be active at the same time).
- CNG is now called before PLC_glue() to smoothen the transition out of CNG.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
When an overflow happened in silk_sum_sqr_shift(), the sample pair causing
the overflow would be counted twice. This would lead to the C0 in
silk_burg_modified() being too large and cause problems on loud, tonal
signals. Thanks to Marcello Caramma for tracking down the problem.
|
|
The code was wrong, but did not have any impact on user-visible behaviour
because all it did was change an internal-only error code.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
Also minor C89 fix for the previous commit
|
|
|
|
This saves 640 bytes on the peak stack usage.
|
|
Should make it easier when writing assembly.
|
|
|
|
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Optimizing celt_pitch_xcorr()/xcorr_kernel() which also speeds up
FIRs, IIRs and auto-correlations
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Works by turning off pitch and energy prediction in CELT, while
setting first_frame_after_reset in SILK to disable pitch and LSF interpolation
and reduce LPC gain.
|
|
|
|
|
|
|
|
Code behaviour is unchanged
|
|
Newer versions of MSVC are unhappy with the strategy of the build
environment redefining "inline" (even though they don't support the
actual keyword). Instead we define OPUS_INLINE to the right thing
in opus_defines.h.
This is the same approach we use for restrict.
|
|
The compiler warned:
silk/float/pitch_analysis_core_FLP.c: In function 'silk_P_Ana_calc_corr_st3':
silk/float/pitch_analysis_core_FLP.c:499:36: warning: variable 'basis_ptr' set but not used [-Wunused-but-set-variable]
const silk_float *target_ptr, *basis_ptr;
This means we can safely remove it.
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
Saves 2.5% on ARM without any asm. The float build still uses the old
code because celt_fir() then becomes a float function.
|
|
bit-exact with original version
|
|
|
|
Should gives us ARM/SSE optimizations for free.
|
|
By default Visual Studio warns about various C stdlib calls,
recommending non-portable replacements instead. We disable
this warning in a number of places in the source.
Since they're specific to the Visual Studio build, it's better
to disable them just in the project files where they always
apply to the correct toolchain.
I have only added the disable setting to project files which
need it currently: opus, test_opus_encode, and test_opus_decode.
|
|
This warning disable was conditional on _WIN32, which mingw
also defines, resulting in a warning about the unknown pragma
on gcc. Instead make it depend on something only the Visual
Studio compiler defines.
|
|
This reverts commit 43279728cd39947f95dbf77557a0a698f164fdd1.
|
|
At a minimum MSVC warns on some of this stuff.
|
|
commit 77880655f652c54415e4b5f03b5984b951f5267b
Author: Timothy B. Terriberry <tterribe@xiph.org>
Date: Wed Jun 26 12:23:53 2013 +0200
Fix version.mk parsing in genversion.bat.
This was broken by the changes in 0482c82f to make it work with spaces.
CMD interprets the quotes to mean the argument to FOR is a string,
not a file name. Instead, we expand the path to a short file name.
Signed-off-by: Gian-Carlo Pascutto <gcp@sjeng.org>
commit 8e97847ecac3a04956747b117fefef14939cbcbe
Merge: 0482c82 3c0aa8f
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date: Wed Jun 26 12:19:41 2013 +0200
Merge branch 'master' into msvc_reorg
commit 0482c82fea6dd397a7d2ab50dc6cda4965278fc2
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date: Tue May 21 17:59:30 2013 +0200
Make genversion.bat work in paths with spaces.
commit 3648ec55b7511119735280fc49bc57c7a3b55d6a
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date: Tue May 21 17:42:14 2013 +0200
Rework output & intermediate dirs for parallel build support.
commit c367a0fcfcbf5551fb65d61365d9b832d7af2b38
Merge: bafb1dd b518b56
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date: Tue May 21 14:17:11 2013 +0200
Merge branch 'master' into msvc_reorg
Conflicts:
win32/VS2010/celt.vcxproj
win32/VS2010/opus.vcxproj
win32/VS2010/silk_common.vcxproj
win32/VS2010/silk_float.vcxproj
commit bafb1dda3fcf6785decdfb42a1f934c7fab0c567
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date: Mon Mar 11 21:25:28 2013 +0100
Fix two more files to not have the Platform Toolset explicitly set.
commit c69c870201fec7461862fe79731a37866a1810f1
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date: Mon Mar 11 21:08:00 2013 +0100
Add missing SILK MSVC project files.
commit a0d41fb7f97558c8f812d500b9027c77907c37c0
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date: Fri Mar 8 15:00:51 2013 +0100
Use the default toolset in the MSVC project files.
commit 34aac5b2637ed38c5620f0d876e08db232849933
Author: Gian-Carlo Pascutto <gcp@sjeng.org>
Date: Fri Mar 8 14:54:41 2013 +0100
Move the MSVC project files outside the source tree.
Bring the project structure more in line with the one in libogg.
|
|
Introduced in c152d602.
Thanks to Pedro Becerra for the report.
|
|
Introduced in c152d602.
Thanks to Pedro Becerra for the report.
|
|
|
|
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/CIHBJEHG.html
says that "Rd cannot be the same as Rm."
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/CIHBJEHG.html
says that "RdLo, RdHi, and Rm must all be different registers."
This means that some of the early clobbers I removed really should
have been there (to prevent aliasing Rd, RdLo, or RdHi with Rm).
It also means that we should reverse some of the operands in the
FFT's complex multiplies.
This should only affect the ARMv4 optimizations.
Thanks to Nils Wallménius for the report.
While we're here, audit the commutative pair flags again, since I
screwed up at least one of them, and eliminate some dead code.
|