Jean-Marc Valin
e43a0abe0a
Removes the separate 1/8N rotation in the (I)MDCT and unmerges the MDCT sizes
...
Undoes commits f7547a4e
and 72513f3c
2013-12-27 00:10:54 -05:00
Jean-Marc Valin
a5e3c8a6a6
Inverse MDCT no longer requires any scratch space
2013-12-23 02:26:03 -05:00
Jean-Marc Valin
e2bcb3fe9b
Reverse the ordering of the FFT stage to optimize a degenerate radix-4 case.
...
This also happens to increase the accuracy since it appears that the new
ordering is optimal (at least for 20 ms frames), whereas the previous ordering
was pessimal.
2013-12-22 02:17:24 -05:00
Jean-Marc Valin
c8f4e1608a
Merges the FFT scaling with the MDCT pre-rotate
2013-12-21 16:30:49 -05:00
Jean-Marc Valin
153def2884
Getting rid of the inverse FFT entirely
...
IMDCT now uses the forward FFT.
2013-12-21 15:45:17 -05:00
Jean-Marc Valin
99968abba8
Moving bitrev step to forward MDCT too
2013-12-21 14:29:41 -05:00
Jean-Marc Valin
bc13bbaad7
Applying the forward FFT gain up-front for fixed-point too
...
This makes us lose a bit of precision in the first steps, but our gain is more
precise because it's only rounded once. Overall, SNR is slightly improved.
2013-12-21 02:33:22 -05:00
Jean-Marc Valin
2e26b82ec2
Moves the bitrev step to the IMDCT pre-rotation
2013-12-20 23:13:29 -05:00
Jean-Marc Valin
8e02afcfff
Fixes a warning about "conversion from '__int64' to 'int'" on MSVC
2013-12-17 13:56:00 -05:00
Peter Korsgaard
253e15f7e8
configure.ac: fix bashism in ARM optimization handling
...
Breaks configure when /bin/sh isn't bash with:
configure: Trying to force-enable ARMv6 media instructions...
checking if assembler supports ARMv6 media instructions on ARM... yes
configure: Trying to force-enable NEON instructions...
checking if assembler supports NEON instructions on ARM... yes
./configure.lineno: 12799: Bad substitution
Fix it by using the %% expansion to remove everything from the first
space instead.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-12-17 00:22:42 -05:00
Jean-Marc Valin
306d7f5a30
fixed-point: slight (but free) accuracy improvement in compute_band_energies()
...
Also moves the VSHR32() condition outside the loop just in case some compilers
don't optimize that properly.
2013-12-16 01:08:21 -05:00
Jean-Marc Valin
e0f26246b0
fixed-point: adds rounding to some shifts to eliminate bias
...
This reduces the peak decoding error by removing small (inaudible) spikes in
the error at the frame boundaries. These were due to the frequency-domain bias
ending up as a small pulse in the middle of the IMDCT overlap. None of this
was ever audible, but fixing it is still cleaner.
2013-12-14 11:07:13 -05:00
Jean-Marc Valin
4a168eb343
Remove useless code in alloc_trim_analysis()
2013-12-11 01:34:06 -05:00
Jean-Marc Valin
5752d659fd
Minor fixed-point accuracy improvements that were completely free
2013-12-11 00:21:38 -05:00
Jean-Marc Valin
91f8010108
Removing indirections
2013-12-10 22:09:33 -05:00
Jean-Marc Valin
5607d5d1c8
Annotating pointer arguments with OPUS_RESTRICT and const
2013-12-10 22:09:29 -05:00
Jean-Marc Valin
32ada84b5b
Fixes code that was doing arithmetic on a void pointer.
...
Thanks to Kevin O'Connor for reporting this.
2013-12-10 16:43:14 -05:00
Jean-Marc Valin
122971b8cc
More NaN hardening in the analysis code
2013-12-10 13:56:38 -05:00
Timothy B. Terriberry
fa85e3bf28
Add a reminder to bump the version.mk version.
...
We released 1.1 with 1.1-beta as the hard-coded version.
Hopefully this only affects people doing their own windows builds
without the git tools available.
Thanks to Ron Lee for the report.
2013-12-10 08:16:51 -08:00
Jean-Marc Valin
d5553e8aca
Using OPUS_COPY()/OPUS_CLEAR() in the decoder too
2013-12-10 02:32:26 -05:00
Jean-Marc Valin
15edb78b3e
Making NaN detection more robust to -ffast-math.
2013-12-09 21:56:21 -05:00
Jean-Marc Valin
4fda6b0142
Using celt_inner_prod() in compute_band_energies()
2013-12-09 18:06:34 -05:00
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
Pedro Becerra
a9b7def9f5
s/MAX16/MAX32/ in transient_analysis()
...
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-12-09 16:08:29 -05:00
Jean-Marc Valin
66b7fe0a5c
Using celt_inner_prod() for input sanity check.
2013-12-09 15:27:13 -05:00
Jean-Marc Valin
57cd849cf7
Defining celt_inner_prod() and using it instead of explicit loops.
...
Also adds an SSE-optimized celt_inner_prod().
2013-12-09 15:26:58 -05:00
Jean-Marc Valin
ff072009fe
Replaces inline copies and initialization with OPUS_*() macros.
...
This is a bit faster at -O2 because memcpy()/memmove()/memset() are
vectorized. The code is also cleaner.
2013-12-09 15:26:52 -05:00
Jean-Marc Valin
0f869cba0f
Changes ABS16() and ABS32() to use fabs() in the float build
...
gcc is better at optimizing it than the ?: version
2013-12-09 15:26:43 -05:00
Jean-Marc Valin
c94e4bb103
Optimizes encoder NaN detection and clipping by only running them when needed
...
NaN detection should now be able to catch values that would create NaNs
further down.
2013-12-09 15:26:03 -05:00
Jean-Marc Valin
5626908ec3
Fixed-point fast-path for normal 48 kHz encoding in celt_preemphasis()
2013-12-05 16:40:59 -05:00
Jean-Marc Valin
aed1009df9
Turns a 16x32 multiply into a 16x16 one in celt_preemphasis().
2013-12-05 13:36:48 -05:00
Jean-Marc Valin
65471dd567
Bump soname
2013-12-04 18:26:45 -05:00
Ralph Giles
6fb9855158
Mention updating the website examples.
2013-12-04 15:18:41 -08:00
Ralph Giles
6dc50f48e7
Start a release checklist.
2013-12-04 15:16:46 -08:00
Jean-Marc Valin
17dcb27026
Revert "Disables assembly optimizations by default because of several problems reported"
...
This reverts commit 2446445b15
.
2013-12-03 13:31:24 -05:00
Jean-Marc Valin
2446445b15
Disables assembly optimizations by default because of several problems reported
2013-12-02 22:17:58 -05:00
Jean-Marc Valin
96408b6295
Fixes Opus-custom preemphasis
...
Also adds denorm avoidance for non-48 kHz rates
2013-12-02 20:02:37 -05:00
Jean-Marc Valin
086ea7c7e5
Whoa! This fixes a pretty bad fixed-point stereo regression
2013-11-29 16:47:52 -05:00
Jean-Marc Valin
35a44c6100
Fixes OPUS_SET_GAIN (was a bug in MULT16_32_P16())
2013-11-29 12:21:34 -05:00
Timothy B. Terriberry
c16a96b458
Minor speedups to celt_pitch_xcorr_edsp().
...
This moves some stuff out of the main loop for the unaligned case.
2013-11-27 11:08:33 -08:00
Ron
a1740d9ad1
Drop the use of --always to git-describe
...
This is a partial revert of c435f06b30
,
since it didn't actually fix the original problem with shallow clones.
It returns just a hash, not something we (currently) can extract as a
version string in the form things are expecting.
2013-11-28 04:18:45 +10:30
Timothy B. Terriberry
a8fa0cb629
Remove the celt_pitch_xcorr() test code.
...
Revision control will remember it for us forever.
2013-11-26 23:47:25 -08:00
Timothy B. Terriberry
e98816e9c1
Actually use my NEON code.
...
I'd commented out mine and stuck azanelli's code in for testing,
and then accidentally committed it like that.
2013-11-26 23:47:10 -08:00
Timothy B. Terriberry
5c02c5ffb5
Make celt_pitch_xcorr_edsp() work on ARMv5TE.
...
We were assuming that LDR, LDRD, and STRD could be used on
unaligned addresses, but this turns out not to be true on really
old hardware.
2013-11-26 21:58:35 -08:00
Timothy B. Terriberry
aa8ff201b5
Clean up celt_pitch_xcorr() test code.
...
This will be removed shortly, but at least it should be correct
before it goes.
Makes the code get used unconditionally (when uncommented), and
actually frees the buffer it allocates (now using the libopus
allocation functions).
2013-11-26 21:58:32 -08:00
Jean-Marc Valin
d6eb9c468f
Silences a warning in fixed-point
2013-11-25 22:33:43 -05:00
Jean-Marc Valin
2924af4db0
Merges surround and stereo intensity stereo thresholds again.
...
The different results for surround were mostly due to a bug in squishyball.
2013-11-25 21:24:30 -05:00
Jean-Marc Valin
93e1096093
Makes SILK surround masking a bit more aggressive in both directions
...
This also splits the rate adjustment between SILK and CELT (previous
code only changed SILK)
2013-11-25 01:52:08 -05:00
Jean-Marc Valin
a47d6f308f
Intensity stereo update, partially based on Monty's listening
...
Intensity stereo is now based on equiv_rate and should no longer oscillate
in hybrid mode. Also, there is now a separate set of thresholds for
surround tuned by Monty. The non-surround thresholds were also updated at
low bitrate to be closer to what Monty found for surround.
2013-11-25 00:03:31 -05:00
Gregory Maxwell
f4d2c034a6
Put custom_encoder_init decl behind CUSTOM_MODES. More softclip tests.
...
This removes an unused definition warning when compiling without
custom modes.
2013-11-24 06:49:01 -08:00