Age | Commit message (Collapse) | Author |
|
Based on two dense layers with a GRU layer in the middle
|
|
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.
|
|
|
|
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.
|
|
That experiment never actually worked
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
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.
|
|
|
|
Should fix delayed decision on surround, but not well tested.
|
|
Code is still float, but at least tonality esitmation seems to work.
Speech/music analysis is still disabled.
|
|
I checked that it's not *completely* busted, but it probably needs more testing.
|
|
|
|
This should prevent errors in the bandwidth detection from affecting quality
when we have enough bits to be close to transparent.
|
|
This is done using an adaptive beta and an estimate of the speech
and music detection confidence
|
|
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.
|
|
|
|
|
|
Can now work up to full-band and uses lsb_depth to fix the noise issue.
|
|
|