Commit graph

75 commits

Author SHA1 Message Date
Jean-Marc Valin
3039c9bde5 Makes silk_inner_prod_aligned() use celt_inner_prod() in fixed-point.
Should make it easier when writing assembly.
2013-12-09 16:31:07 -05:00
Koen Vos
c63fb978be Constrains accumulated pitch gain to avoid potential instability.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-11-20 08:32:32 -05:00
Timothy B. Terriberry
39386e0b85 Adds Neon assembly for correlation/convolution
Optimizing celt_pitch_xcorr()/xcorr_kernel() which also speeds up
FIRs, IIRs and auto-correlations

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-11-18 13:41:17 -05:00
Jean-Marc Valin
db5b19455f Fixes an initialization issue in SILK prefill found by Coverity 2013-11-12 14:20:00 -05:00
Jean-Marc Valin
f6066df2b9 More size-zero VLA fixes and making opus_decode* return BAD_ARG on framesize<0 2013-11-11 13:06:54 -05:00
Gregory Maxwell
7830cf1bd2 Replace "inline" with OPUS_INLINE.
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.
2013-10-28 10:18:54 -07:00
Ralph Giles
f2446c25c6 Remove trailing whitespace from the license headers. 2013-09-16 14:40:04 -07:00
Jean-Marc Valin
00a1b3e0da Converts the fixed-point silk_burg_modified() to use celt_pitch_xcorr()
bit-exact with original version
2013-08-28 21:38:52 -04:00
Jean-Marc Valin
6a7ee7fb55 Share auto-correlation code between SILK and CELT 2013-08-28 17:55:34 -04:00
Jean-Marc Valin
a156c5ece7 Makes the SILK pitch search use celt_pitch_xcorr()
Should gives us ARM/SSE optimizations for free.
2013-08-26 19:27:46 -04:00
Jean-Marc Valin
1975eeadd2 Big squashed commit of Garf's MSVC reorg:
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.
2013-06-27 03:12:38 -04:00
Timothy B. Terriberry
80ad38370c Convert quotes in license headers to ASCII.
Since the last patch originally had them mangled (presumably by
 mailer, http server, or something else), let's just get rid of
 them.
2013-05-19 19:16:11 -07:00
Jean-Marc Valin
74de3a580c Saturates the last RC to 0.99 when Schur blows up
This is a follow-up on ac76b15. When Schur blows up, we set the last RC to
+/- 0.99 instead of eliminating it.
2013-05-16 23:14:46 -04:00
Jean-Marc Valin
ac76b1503f Fixes an assertion failure in SILK
We stop the schur recursion before any reflection coefficient
goes outside of ]-1,1[ and we force reporting a residual energy
of at least 1.
Assertion was:
Fatal (internal) error in ../silk/fixed/noise_shape_analysis_FIX.c, line 290: assertion failed: nrg >= 0
triggered by:
opus_demo voip 16000 1 12500 -bandwidth WB -complexity 10 pl04f087.stp-crash out.pcm
2013-05-09 16:17:13 -04:00
Timothy B. Terriberry
c152d602aa Use dynamic stack allocation in the SILK encoder.
This makes all remaining large stack allocations use the vararray
 macros.
This continues the work of 6f2d9f50 to allow compiling with
 NONTHREADSAFE_PSEUDOSTACK to move the memory for large buffers
 off the stack for devices where it is very limited.

It also does this for some additional large buffers used by the
 PLC in the decoder.
2013-05-08 10:37:17 -07:00
Timothy B. Terriberry
c41a81680c Remove trailing whitespace. 2013-05-07 20:05:56 -07:00
Timothy B. Terriberry
bfe52ceb74 Fix some warnings.
You can't use /* within a comment.
2013-05-07 20:05:53 -07:00
Jean-Marc Valin
6044907c82 Fixes a SILK fixed-point encoder issue reported by Cliff Parris <cliff@espico.com> 2013-02-07 15:31:30 -05:00
Joshua Bowman
f77e86a235 Fix MSVC linker warnings
Specify the correct debug runtime libraries for the test
and demo executables to prevent mismatch warnings with
the default runtime.

Signed-off-by: Ralph Giles <giles@mozilla.com>
2012-10-23 13:12:25 -07:00
Jean-Marc Valin
b56c278b0e Fixes a fixed-point overflow in the new pitch code 2012-10-10 13:32:16 -04:00
Koen Vos
9cbbcb53ae Improvements to the pitch search
Normalizes the cost function by (x+y) instead of sqrt(x*y)
2012-10-10 09:37:10 -04:00
Philip Jägenstedt
ba28403a04 Typo: FIND_PITCH_BANDWI(D)TH_EXPANSION 2012-09-27 09:16:31 -04:00
Philip Jägenstedt
6d9c16d142 Fix common misspellings
I stumbled upon the typo in README.draft, so took the opportunity to
grep for common misspellings using List_of_common_misspellings.txt for
hunspell.
2012-09-27 09:16:30 -04:00
Jean-Marc Valin
79a6f4d2ad Makes two static tables const 2012-08-29 09:43:23 -04:00
Gian-Carlo Pascutto
642084c47c Output/intermediate dir cleanup and fixes in 64-bit mode.
Also make the 64-bit builds use the default output directories.
Fix the type of the default Opus output to be a library.
2012-07-16 16:45:04 -04:00
Gian-Carlo Pascutto
eeb7bd3d9d Make MSVC build work in parallel.
The (non-default) temporary & output dirs configured in the projects could
cause issues when doing compilation on a multiprocessor machine. Cleaned
this up a little to use the defaults, which makes that work again and
doesn't make the output structure any worse. Also removed debug output for
release binaries & a tiny whitespace fix.
2012-07-16 16:45:04 -04:00
Gian-Carlo Pascutto
f57be69f07 Remove non-existent ReadMe.txt references. 2012-07-12 18:00:29 -04:00
Gian-Carlo Pascutto
d2fa2edfd8 Make compiler settings consistent. Actually produce the libary, remove the opus_demo for now. 2012-07-12 17:59:26 -04:00
root
bcbf40b601 modified the Visual Studio 2010 projects and solution file to include a x64 configuration. modified the output folders such that the architecture is included in the path (so you get Release64, Debug32, etc.) so you can have all build types in one tree. 2012-06-01 14:26:01 -04:00
Jean-Marc Valin
1a9e8539d3 Fixes two fixed-point overflow issues
One in SILK, one in CELT, none of them causing real harm in practice it seems
2012-05-10 12:36:46 -04:00
Jean-Marc Valin
780fbc91f1 Fixes a (harmless) numerical overflow in noise_shape_analysis_FIX.c
Actual behaviour was correct on most architectures and breaking that
code would have required a particularly smart compiler.
2012-04-24 20:45:04 -04:00
Gregory Maxwell
f7ceaa609a Minor comment formatting change 2012-04-24 13:39:46 -04:00
Jean-Marc Valin
ab5a049705 Merge commit '390c89225d' 2012-04-24 13:39:22 -04:00
Jean-Marc Valin
eb8b3c2b07 Adds note on monic filter 2012-04-23 16:24:45 -04:00
Jean-Marc Valin
ae00e60d35 License update using the IETF Trust flavour of the BSD on the Silk code 2012-04-20 16:31:04 -04:00
Jean-Marc Valin
905197d750 Fixes a bunch of 16-bit issues that the C5X compiler warns about 2012-03-08 14:09:09 -05:00
Koen Vos
a51ebd6831 Accuracy improvements to help float implementations
Also clamps the gain to avoid forcing a float decoder to emulate the
state rescaling.
2011-12-14 11:41:18 -05:00
Koen Vos
bbfc9c9ee5 Improves the accuracy such that it matches a float decoder much better 2011-12-13 14:50:12 -05:00
Koen Vos
bf75c8ec4d SILK fixes following last codec WG meeting
decoder:
- fixed incorrect scaling of filter states for the smallest quantization
  step sizes
- NLSF2A now limits the prediction gain of LPC filters

encoder:
- increased damping of LTP coefficients in LTP analysis
- increased white noise fraction in noise shaping LPC analysis
- introduced maximum total prediction gain.  Used by Burg's method to
  exit early if prediction gain is exceeded.  This improves packet
  loss robustness and numerical robustness in Burg's method
- Prefiltered signal is now in int32 Q10 domain, from int16 Q0
- Increased max number of iterations in CBR gain control loop from 5 to 6
- Removed useless code from LTP scaling control
- Optimization: smarter LPC loop unrolling
- Switched default win32 compile mode to be floating-point

resampler:
- made resampler have constant delay of 0.75 ms; removed delay
  compensation from silk code.
- removed obsolete table entries (~850 Bytes)
- increased downsampling filter order from 16 to 18/24/36 (depending on
  frequency ratio)
- reoptimized filter coefficients
2011-12-13 14:47:31 -05:00
Jean-Marc Valin
e1be1920ba Some minor (non-bitstream-affecting) changes to help us have better test vectors
These fix corner cases discovered during the latest fuzzing tests.
2011-11-28 22:48:01 -05:00
Jean-Marc Valin
09a84c8e4b Fixes a minor issue on CELT->SILK switching 2011-10-31 19:51:47 -04:00
Jean-Marc Valin
acd3bce9b4 Removes "set but never used" variables 2011-10-29 17:46:18 -04:00
Koen Vos
acc7a6c78b Reformatting changes with an update to the MSVC project files 2011-10-28 19:44:26 -04:00
Koen Vos
7f3caf941e Fixes another minor bug introduced in 43a0de4af1 2011-10-26 08:03:31 -04:00
Koen Vos
d39bccb0e1 Fixes a minor bug introduced in 43a0de4af1 2011-10-25 01:19:29 -04:00
Koen Vos
43a0de4af1 Optimization of the CBR loop
Also some comment/warning fixes
2011-10-24 09:10:58 -04:00
Gregory Maxwell
3d28ee8020 Fix stack corruption with high rate SILK encoding added by the recent CBR changes and enable -fstack-protector-all on gcc autotools builds. 2011-10-21 13:00:21 -04:00
Jean-Marc Valin
4871fb9281 Silences some warnings in fixed-point 2011-10-21 11:17:18 -04:00
Jean-Marc Valin
bfc67b95e2 Same as 44a030deed but for fixed-point 2011-10-21 11:10:43 -04:00
Jean-Marc Valin
294bfec27b Implements hard CBR for SILK
This is achieved by running the encoding process in a loop and
padding when we don't reach the exact rate. It also implements
VBR-with-cap, which means we no longer need to artificially decrease
the SILK bandwidth when it's close to the cap.
2011-10-20 00:39:41 -04:00