aboutsummaryrefslogtreecommitdiff
path: root/src/analysis.h
AgeCommit message (Collapse)Author
2017-10-05Add RNN for VAD and speech/music classificationJean-Marc Valin
Based on two dense layers with a GRU layer in the middle
2017-06-26Working around misdetected audio bandwidthJean-Marc Valin
The new detector for SWB vs FB is unreliable due to the hack that was required to get 24 kHz analysis working. We're now err on the side of FB just to make sure.
2017-06-04Initialize speech/music prob based on applicationJean-Marc Valin
2016-12-20Makes analysis run at 24 kHz, with 20-ms framesJean-Marc Valin
The change also makes the analysis run for sampling rates of 16 kHz and 24 kHz since the features are only computed on the 0-8 kHz band. The longer time window (20 ms instead of 10 ms) makes the tonality estimator more reliable for low-pitch harmonics.
2016-11-04Removes OPUS_FRAMESIZE_VARIABLEJean-Marc Valin
That experiment never actually worked
2015-12-31Add tonality_analysis_reset().Ralph Giles
Add a reset function for the TonalityAnalysisState struct and call it on encoder reset. Move the state struct above the clear line in OpusEncoder so reset doesn't clobber reusable fields. Currently this is only the arch field, which is moved to to top of the struct so we can use the same memset-to-the-end pattern as OpusEncoder. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-12-31Add an initializer for TonalityAnalysisState.Ralph Giles
This interns the asm flags parameter in the state struct so we don't need to pass it with every call. It can be expensive, so we don't want to query every run_analysis() call, but since this (private) api is used by webrtc code we need to provide a supportable interface for filling in the correct value. Note the initialization code is partially duplicated between opus_encoder_init and the OPUS_RESET_STATE switch case, so we must re-initialize it there. Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-10-07armv7(float): Optimize encode usecase using NE10 libraryViswanath Puttagunta
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>
2013-12-10More NaN hardening in the analysis codeJean-Marc Valin
2013-11-13Variable frame size fixes (still not exposed in the API)Jean-Marc Valin
This fixes an actual error in the downmix (using the float version even for the int API), as well as a bunch of conversion warnings.
2013-09-28run_analysis() doesn't need to return the frame size anymoreJean-Marc Valin
2013-09-16Moves frame size selection back out of opus_encode_native()Jean-Marc Valin
Should fix delayed decision on surround, but not well tested.
2013-09-06First pass at making the analysis code run with FIXED_POINTJean-Marc Valin
Code is still float, but at least tonality esitmation seems to work. Speech/music analysis is still disabled.
2013-09-05Moves the analysis back to opus_encode_native() to it runs for all streams.Jean-Marc Valin
I checked that it's not *completely* busted, but it probably needs more testing.
2013-07-01More speech/music detection comments (delayed decision)Jean-Marc Valin
2013-05-17Automatic bandwidth decisions get more conservative as rate increases.Jean-Marc Valin
This should prevent errors in the bandwidth detection from affecting quality when we have enough bits to be close to transparent.
2013-02-28Makes the speech/music probability estimation mode conservativeJean-Marc Valin
This is done using an adaptive beta and an estimate of the speech and music detection confidence
2013-02-20Adds support for delayed decisionJean-Marc Valin
Variable duration option renamed to OPUS_SET_EXPERT_FRAME_DURATION, with new API. Also moves up the analysis to avoid having to do int->float conversion on large buffers.
2013-02-10Makes analysis usable for all frame sizesJean-Marc Valin
2013-02-10Moves analysis to the beginning of opus_encode()Jean-Marc Valin
2012-12-21New bandwidth detection codeJean-Marc Valin
Can now work up to full-band and uses lsb_depth to fix the noise issue.
2012-07-13Builds the analysis files more cleanly than #including C filesJean-Marc Valin