Martin Storsjo
a50eecf65b
Fix overflows in accumulation, fixing crashes
...
This fixes github issue #83 .
2018-05-04 12:47:17 +03:00
Martin Storsjo
5eb6f0db8c
Saturate additions in spectralChange
...
This fixes a crash.
2017-03-14 14:37:55 +02:00
Martin Storsjo
ebb66ffd4a
Avoid a warning about extra parentheses
...
This fixes the following warning:
libSBRenc/src/sbr_encoder.cpp:1942:14: warning: equality comparison
with extraneous parentheses [-Wparentheses-equality]
Change-Id: I2c833d19348574473c752076a4efff6642c0d653
2016-08-30 09:57:04 +03:00
Glenn Kasten
28099687b7
resolve merge conflicts of ad1e898
to nyc-dev-plus-aosp
...
Change-Id: If143807a233d47fb7fd269fd263a8a898109b060
2016-04-20 16:28:31 -07:00
Glenn Kasten
76b428d4b4
Remove redundant parentheses around == comparison operator
...
Bug: 28026175
Change-Id: I8ff9d8d1dd73933dc181f2745292a0a3398a2479
2016-04-18 16:10:57 -07:00
Jean-Michel Trivi
46ba3676b8
AAC/SBR encoder improvements
...
* AAC-Encoder
- AAC-ELD core encoder audio quality tuning. Update tuning tables, configure
bitreservoir size and adapt afterburner iteration value.
Modified file(s):
libAACenc/src/aacenc.h
libAACenc/src/aacenc_lib.cpp
libAACenc/src/adj_thr.cpp
libAACenc/src/adj_thr.h
libAACenc/src/adj_thr_data.h
libAACenc/src/bandwidth.cpp
libAACenc/src/pnsparam.cpp
libAACenc/src/qc_main.cpp
- Introduze dead zone quantizer for ELD to improve audio quality at certain
configurations.
Modified file(s):
libAACenc/src/aacenc_lib.cpp
libAACenc/src/adj_thr.cpp
libAACenc/src/adj_thr.h
libAACenc/src/qc_data.h
libAACenc/src/qc_main.cpp
libAACenc/src/quantize.cpp
libAACenc/src/quantize.h
libAACenc/src/sf_estim.cpp
libAACenc/src/sf_estim.h
- Revise TNS module to improve ELD audio quality.
- Use new window function and separate prediction gain according TNS filters.
- Add missing memory initilization to TNS configuration.
Modified file(s):
libAACenc/src/aacenc_lib.cpp
libAACenc/src/aacenc_tns.cpp
libAACenc/src/aacenc_tns.h
libAACenc/src/psy_main.cpp
libAACenc/src/tns_func.h
* SBR-Encoder
- Revise frequency resolution calculation and handle differently depending
on number of envelopes and split frames decision.
- Add and adjust ELD SBR tuning tables.
Modified file(s):
libSBRenc/include/sbr_encoder.h
libSBRenc/src/bit_sbr.h
libSBRenc/src/env_est.cpp
libSBRenc/src/fram_gen.cpp
libSBRenc/src/fram_gen.h
libSBRenc/src/mh_det.cpp
libSBRenc/src/sbr_def.h
libSBRenc/src/sbr_encoder.cpp
libSBRenc/src/sbr_rom.cpp
libSBRenc/src/tran_det.cpp
- Replace ELD transient detector with fast implementation.
Modified file(s):
libSBRenc/src/env_est.cpp
libSBRenc/src/env_est.h
libSBRenc/src/fram_gen.cpp
libSBRenc/src/sbr_def.h
libSBRenc/src/sbr_encoder.cpp
libSBRenc/src/tran_det.cpp
libSBRenc/src/tran_det.h
* FDK-Library
- Introduce generic compare function in tools library.
Modified file(s):
libFDK/include/fixpoint_math.h
libFDK/src/FDK_core.cpp
* SBR-Encoder
- Revise ELD frame splitter to improve bit distribution.
Modified file(s):
libSBRenc/include/sbr_encoder.h
libSBRenc/src/bit_sbr.h
libSBRenc/src/env_est.cpp
libSBRenc/src/fram_gen.cpp
libSBRenc/src/fram_gen.h
libSBRenc/src/sbr_encoder.cpp
libSBRenc/src/tran_det.cpp
libSBRenc/src/tran_det.h
- Configure amplitude resolution according the tonality of the audio signal.
Modified file(s):
libSBRenc/include/sbr_encoder.h
libSBRenc/src/bit_sbr.h
libSBRenc/src/env_est.cpp
libSBRenc/src/nf_est.cpp
libSBRenc/src/nf_est.h
libSBRenc/src/sbr_def.h
libSBRenc/src/sbr_encoder.cpp
libSBRenc/src/ton_corr.cpp
libSBRenc/src/ton_corr.h
libSBRenc/src/tran_det.cpp
libSBRenc/src/tran_det.h
Change-Id: Ie0672b989a06ee63b50240616b8d1d4b790b6cb2
2016-04-08 10:52:42 -07:00
Jean-Michel Trivi
e1c78ed73f
SBR/AAC encoder updates, code clean up
...
* SBR-Encoder
- Prevent noise level overflow in noise floor detection.
- Saturate threshold calculation in transient detection.
Modified file(s):
libSBRenc/src/nf_est.cpp
libSBRenc/src/sbr_encoder.cpp
libSBRenc/src/tran_det.cpp
* AAC-Encoder
- Expand input data range of GetInvInt() function. There was an encoder
assert observed in non-default bitrate configuration.
Modified file(s):
libAACenc/src/aacenc_lib.cpp
libAACenc/src/intensity.cpp
libFDK/include/fixpoint_math.h
libFDK/src/FDK_core.cpp
libFDK/src/FDK_tools_rom.cpp
- Make sure that the encoder is stable with regard to very low audio bandwidth
confguration parameter value.
- Fix lowdelay blending for low audio bandwidth.
Modified file(s):
libAACenc/src/aacenc.cpp
libAACenc/src/aacenc_lib.cpp
libAACenc/src/adj_thr.cpp
libAACenc/src/psy_configuration.cpp
libAACenc/src/psy_main.cpp
- Disable pseudo surround flag in case metadata matrix mixdown index is
present in program config element.
Modified file(s):
libAACenc/src/aacenc_lib.cpp
- Enable variable bitrate mode in encoder api.
- Add AACENC_PEAK_BITRATE parameter to encoder api.
- Add AACENC_AUDIOMUXVER parameter to encoder api.
Modified file(s):
libAACenc/include/aacenc_lib.h
libAACenc/src/aacenc.cpp
libAACenc/src/aacenc.h
libAACenc/src/aacenc_lib.cpp
libAACenc/src/qc_main.cpp
libMpegTPEnc/src/tpenc_latm.cpp
libMpegTPEnc/src/version
* FDK-Sources
- Code clean up. Remove unneeded pseudo audio object types and transport types.
Modified file(s):
libAACdec/src/aacdecoder.cpp
libAACdec/src/aacdecoder_lib.cpp
libAACenc/include/aacenc_lib.h
libAACenc/src/aacenc.cpp
libAACenc/src/aacenc_lib.cpp
libFDK/src/FDK_tools_rom.cpp
libMpegTPDec/src/tpdec_lib.cpp
libMpegTPDec/src/version
libMpegTPEnc/src/tpenc_latm.cpp
libMpegTPEnc/src/version
libSBRdec/src/sbrdecoder.cpp
libSBRenc/src/sbr_encoder.cpp
libSYS/include/FDK_audio.h
libSYS/src/genericStds.cpp
Change-Id: I807a53cb7f48c9ee7563cb8da1d0c52221576ca6
2016-04-04 17:25:36 -07:00
Jean-Michel Trivi
ef30836651
Remove compiler warnings, revised ARM QMF encoder
...
Bug 8493170
Change-Id: I64d19a8a8059c5a96386b1eaac297fd2469515f8
2016-04-04 15:03:26 -07:00
Dan Willemsen
6e8330732f
Remove __DATE__/__TIME__
...
Building __DATE__/__TIME__ into the binaries means that every build will
create different binaries, even if all the sources are identical. This
also means that any libraries including this one will need to be patched
during every OTA.
Nothing appears to use the build_date/build_time fields, so just replace
them with empty strings.
Bug: 24204119
Change-Id: I9543eb388a1e8ab9284df9035a62fc8942cdc082
2015-10-23 09:48:27 -07:00
Jean-Michel Trivi
fa3eba1644
Encoder 7.1 support
...
* AAC-Encoder
- Add 7.1 rear surround and 7.1 front center support to supported encoder
channel modes. Change max channels from 6 to 8 and add 7.1 configuration
to bandwidth and channel mapping functions.
Modified file(s):
libAACenc\include\aacenc_lib.h
libAACenc\src\aacEnc_ram.cpp
libAACenc\src\aacEnc_ram.h
libAACenc\src\aacenc.cpp
libAACenc\src\aacenc.h
libAACenc\src\aacenc_lib.cpp
libAACenc\src\adj_thr.cpp
libAACenc\src\adj_thr.h
libAACenc\src\adj_thr_data.h
libAACenc\src\bandwidth.cpp
libAACenc\src\bitenc.cpp
libAACenc\src\channel_map.cpp
libAACenc\src\interface.h
libAACenc\src\metadata_compressor.cpp
libAACenc\src\psy_main.cpp
libAACenc\src\psy_main.h
libAACenc\src\qc_data.h
libAACenc\src\qc_main.cpp
libAACenc\src\qc_main.h
* SBR-Encoder
- Support up to 7.1 audio channels. Changed max channels from 6 to 8.
Modified file(s):
libSBRenc\include\sbr_encoder.h
libSBRenc\src\sbr.h
libSBRenc\src\sbr_encoder.cpp
libSBRenc\src\sbr_ram.cpp
* Transport-Encoder
- Add 7.1 channel configuration to audio specific config writer in
transport encoder library.
Modified file(s):
libMpegTPEnc\src\tpenc_asc.cpp
libMpegTPEnc\src\version
* SYS-Library
- Add 7.1 channel modes to CHANNEL_MODE description.
Modified file(s):
libSYS\include\FDK_audio.h
libSYS\src\genericStds.cpp
Bug 9428126
Change-Id: Ide53583aa8e03df4537b98db80740dfe0e7a9e0f
2013-09-03 14:19:38 -07:00
Jean-Michel Trivi
3aec97e388
Encoder downsampled SBR
...
* AAC-Encoder
- Introduce optional AACENC_SBR_RATIO encoder API parameter to configure
dualrate or downsampled SBR explicitely. ELD makes use of downsampled SBR
in default configuration.
Modified file(s):
documentation\aacEncoder.pdf
libAACenc\include\aacenc_lib.h
libAACenc\src\aacenc.h
libAACenc\src\aacenc_lib.cpp
* SBR-Encoder
- Implement downsampled SBR feature.
- Revise sbr tuning parameter selection.
Modified file(s):
libSBRenc\include\sbr_encoder.h
libSBRenc\src\bit_sbr.h
libSBRenc\src\env_est.cpp
libSBRenc\src\mh_det.cpp
libSBRenc\src\nf_est.cpp
libSBRenc\src\ps_main.cpp
libSBRenc\src\sbr.h
libSBRenc\src\sbr_def.h
libSBRenc\src\sbr_encoder.cpp
libSBRenc\src\sbr_rom.cpp
libSBRenc\src\sbr_rom.h
libSBRenc\src\sbrenc_freq_sca.cpp
libSBRenc\src\sbrenc_freq_sca.h
libSBRenc\src\ton_corr.cpp
Bug 9428126
Change-Id: I731720a10829272acaaf70b84525df00a09ff3d2
2013-08-29 12:24:04 -07:00
Jean-Michel Trivi
a84864deb7
SBR header period
...
AAC encoder: Connect SBR and PS header repetition rate with AACENC_HEADER_PERIOD
parameter of the encoder API.
Bug 9428126
Change-Id: Ia1ab965de9eaa2ac229d0c395a337cbd4d20cba1
2013-08-20 15:30:07 -07:00
Jean-Michel Trivi
fc4d7b0e73
SBR encoder improvement
...
SBR encoder: Introduce coupling energy ratio limitation to prevent undesirable SBR band
amplification while decoding.
Bug 9428126
Change-Id: I18a77cd1a178fff7531b490779a29a0df7d993af
2013-08-20 15:05:08 -07:00
Jean-Michel Trivi
4f0d97057c
Disclaimer update, lib version increment
...
- Update disclaimer in all source files.
- Increment library version in each FDK sub-module.
Bug 9428126
Change-Id: I490b96d4ee472246b01483202b0bb4f1e9c2a5d7
2013-08-20 14:38:55 -07:00
Jean-Michel Trivi
381d69840a
Bug fixes in AAC decoder, AAC encoder, FDK library
...
Latest code drop from Fraunhofer:
* AAC-Decoder
- Expanded AAC-LD/ELD decoder TNS max band tables to avoid wrong data
access for sampling rates <22kHz and >48kHz.
Modified file(s):
libAACdec\src\aacdec_tns.cpp
libAACdec\src\aac_rom.h
libAACdec\src\aac_rom.cpp
- Fixed ELD synthesis QMF filterbank scaling for downsampled SBR.
Modified file(s):
libFDK\src\qmf.cpp
* AAC-Encoder
- Fixed bit rate limiting for lower limit as introduced in the Delivery 2012-05-11.
Modified file(s):
libAACenc\include\aacenc_lib.h
libAACenc\src\aacenc.h
libAACenc\src\aacenc.cpp
libSBRenc\src\sbr_rom.h
libSBRenc\src\sbr_rom.cpp
- Allow negative prediction gain as meaning that there is no coding gain.
Make use of scaleValueSaturate in gauss window calculation.
Modified file(s):
libAACenc\src\aacenc_tns.cpp
- Added energy saturation to prevent overflow in short blocks.
Modified file(s):
libAACenc\src\grp_data.cpp
- Perform scalefactor adaption in case quantized lines are out of valid range.
Modified file(s):
libAACenc\src\quantize.cpp
- Interrupt quantization loop when no spectral data is available.
Adjustments in bitreservoir adaption.
Modified file(s):
libAACenc\src\qc_main.cpp
- Indroduced dynamic scaling in none missing harmonic energy lowering compensation.
Modified file(s):
libSBRenc\src\env_est.cpp
* FDK-Library
- Fixed saturation for negative values in scaleValueSaturate.
Modified file(s):
libFDK\include\scale.h
Change-Id: If830ea65caef6b5554281e4b7a77a8b2e08825ce
2012-09-09 11:52:09 -07:00
The Android Open Source Project
2228e36059
Snapshot 2bda038c16
...
Change-Id: If584e579464f28b97d50e51fc76ba654a5536c54
2012-07-11 10:15:24 -07:00