summaryrefslogtreecommitdiff
path: root/celt/mdct.c
Commit message (Collapse)AuthorAgeFilesLines
* Saturate MDCT output post-TDAC rather than pre-Jean-Marc Valin2016-07-241-4/+4
| | | | Gives us a tighter bound on the pitch postfilter input to avoid overflows
* saturate MDCT outputJean-Marc Valin2016-07-221-4/+4
|
* silencing overflows in MDCT and FFTJean-Marc Valin2016-07-221-8/+8
|
* armv7(float): Optimize decode usecase using NE10 libraryViswanath Puttagunta2015-10-071-2/+3
| | | | | | | | | | | | Optimize opus decode (float only) use case using ARM NE10. Mainly effects opus_ifft and ctl_mdct_backward and related functions. Work based on previous Encode optimization using ARM NE10 library. See previous commit for details on how to enable this. Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
* armv7(float): Optimize encode usecase using NE10 libraryViswanath Puttagunta2015-10-071-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Optimize opus encode (float only) usecase using ARM NE10 library. Mainly effects opus_fft and ctl_mdct_forward and related functions. This optimization can be used for ARM CPUs that have NEON VFP unit. This patch only enables optimizations for ARMv7. Official ARM NE10 library page available at http://projectne10.github.io/Ne10/ To enable this optimization, use --enable-intrinsics --with-NE10=<install_prefix> or --enable-intrinsics --with-NE10-libraries=<NE10_lib_dir> --with-NE10-includes=<NE10_includes_dir> Compile time checks made during configure process to make sure optimization option available only when compiler supports NEON instrinsics. Runtime checks made to make sure optimized functions only called on appropriate hardware. Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
* MIPS optimizationsRhishikesh Agashe2014-06-191-0/+9
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fixes an aliasing bug in the MDCT when the frame size isn't a multiple of 4.Marcello Caramma (mcaramma)2014-02-241-2/+2
| | | | | | | In that case, the yp0 and yp1 ended up aliasing for the last element, despite being marked as restrict. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Unifying scaling of fixed-point and float FFTJean-Marc Valin2013-12-291-13/+3
|
* Fixes C89 issueJean-Marc Valin2013-12-291-2/+4
|
* Getting rid of some negationsJean-Marc Valin2013-12-281-10/+10
| | | | | Since we're doing two rotations, we can invert the sign on both. Also adding a few comments for optimizing the FFT.
* Slightly improving the accuracy of the fixed-point MDCT downscaleJean-Marc Valin2013-12-281-13/+9
| | | | Also simplifying the code
* Commit 99968ab was causing us to allocate too much stack in the MDCTJean-Marc Valin2013-12-271-1/+1
|
* Removes the separate 1/8N rotation in the (I)MDCT and unmerges the MDCT sizesJean-Marc Valin2013-12-271-62/+66
| | | | Undoes commits f7547a4e and 72513f3c
* Inverse MDCT no longer requires any scratch spaceJean-Marc Valin2013-12-231-14/+10
|
* Merges the FFT scaling with the MDCT pre-rotateJean-Marc Valin2013-12-211-7/+14
|
* Getting rid of the inverse FFT entirelyJean-Marc Valin2013-12-211-8/+11
| | | | IMDCT now uses the forward FFT.
* Moving bitrev step to forward MDCT tooJean-Marc Valin2013-12-211-11/+31
|
* Moves the bitrev step to the IMDCT pre-rotationJean-Marc Valin2013-12-201-12/+15
|
* Do imdct post-rotate and deshuffle in-place.Nils Wallménius2012-12-031-15/+28
| | | | | | Gets rid of one stack buffer. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Fixes forward MDCT for overlaps that aren't a multiple of 4Jean-Marc Valin2012-12-031-2/+2
| | | | Adds more sizes to test_unit_mdct.c
* Place output of imdct post-rotate and deshuffle in out buffer to avoid ↵Nils Wallménius2012-12-011-28/+8
| | | | | | copying and simplify the code. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Window both sides of overlap when adding them.Nils Wallménius2012-12-011-12/+5
| | | | Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
* Merge inverse mdct post-rotate and de-shuffle loopsNils Wallménius2012-10-211-18/+9
| | | | | | Saves some memory access and gives a tiny speedup Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
* Merge branch 'exp_analysis7'Jean-Marc Valin2012-10-091-2/+4
|\ | | | | | | | | | | | | | | Conflicts: celt/celt.c celt/mdct.c include/opus_defines.h src/opus_encoder.c
| * Adds a 3 Hz high-pass filter and boost allocation on leakageJean-Marc Valin2012-07-131-2/+4
| | | | | | | | | | | | | | Fixes two leakage problems on the wood blocks sample - Removes DC which causes leakage with no masking - Detect leakage by comparing short-MDCT energy to long-MDCT energy and boost allocation for bands with leakage
* | Replace C99 restrict keyword with OPUS_RESTRICT.Gregory Maxwell2012-07-181-29/+29
|/ | | | | | | We had previously advised people to -Drestrict on non-C99 compilers, but this creates problems for some of the MSVC headers. Instead this just uses a macro and defines it sanely.
* s/FOUNDATION/COPYRIGHT OWNER/ in CELT code and "glue code"Jean-Marc Valin2012-04-201-2/+2
| | | | Also added 3rd clause to "master" COPYING file
* renames the libcelt/ directory to celt/Jean-Marc Valin2011-09-131-0/+332
|
* Moved all SILK source code to the silk/ directoryJean-Marc Valin2011-04-281-6/+0
|
* Loss rate adaptation for the CELT layerJean-Marc Valin2011-04-251-5/+5
|
* draft updateJean-Marc Valin2011-03-311-5/+5
|
* Build fixesJean-Marc Valin2011-03-231-5/+5
|
* Making mode switching use the same window as CELT (squared)Jean-Marc Valin2011-03-211-5/+5
|
* CELT updateJean-Marc Valin2011-03-181-5/+5
| | | | With minor fixes
* More project files updateJean-Marc Valin2011-03-181-5/+5
|
* Fixes a few PLC/DTX bugs due to the recent decode API changeJean-Marc Valin2011-03-161-5/+5
|
* Adding constrained VBR modeJean-Marc Valin2011-03-141-5/+5
|
* Draft update (allocationGregory Maxwell2011-03-141-5/+5
|
* Disable newly introduced CELT signallingJean-Marc Valin2011-03-111-5/+5
|
* Nothing to see hereJean-Marc Valin2011-03-101-5/+5
|
* CELT updateJean-Marc Valin2011-03-091-18/+5
|
* Support for glitchles mode switchingJean-Marc Valin2011-03-071-5/+18
| | | | | | Uses a 5ms redundant CELT frame embedded into the SILK or hybrid packet to handle the switching. It's still possible to use the PLC-based method when no redundant packet is included.
* SILK/CELT updateJean-Marc Valin2011-02-281-5/+5
|
* preparing the next versionJean-Marc Valin2011-02-141-5/+5
|
* missing filesJean-Marc Valin2011-02-141-10/+5
|
* SILK and CELT updatesJean-Marc Valin2011-02-141-5/+10
|
* Update for in-band FECKoen Vos2011-02-141-5/+5
|
* draft dateJean-Marc Valin2011-02-041-0/+6
|
* CELT updateJean-Marc Valin2011-02-041-6/+0
|
* Tuning the hybrid bit-rate splitKoen Vos2011-02-041-24/+5
|