mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-21 14:26:59 +00:00
aacenc: new default cutoff
Improves subjective quality Formula and testing by: kamedo2 <fujisakihir90@yahoo.co.jp> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
981d97f697
commit
72dabdfc58
@ -292,7 +292,7 @@ static av_cold int psy_3gpp_init(FFPsyContext *ctx) {
|
|||||||
int i, j, g, start;
|
int i, j, g, start;
|
||||||
float prev, minscale, minath, minsnr, pe_min;
|
float prev, minscale, minath, minsnr, pe_min;
|
||||||
const int chan_bitrate = ctx->avctx->bit_rate / ctx->avctx->channels;
|
const int chan_bitrate = ctx->avctx->bit_rate / ctx->avctx->channels;
|
||||||
const int bandwidth = ctx->avctx->cutoff ? ctx->avctx->cutoff : ctx->avctx->sample_rate / 2;
|
const int bandwidth = ctx->avctx->cutoff ? ctx->avctx->cutoff : AAC_CUTOFF(ctx->avctx);
|
||||||
const float num_bark = calc_bark((float)bandwidth);
|
const float num_bark = calc_bark((float)bandwidth);
|
||||||
|
|
||||||
ctx->model_priv_data = av_mallocz(sizeof(AacPsyContext));
|
ctx->model_priv_data = av_mallocz(sizeof(AacPsyContext));
|
||||||
|
@ -100,6 +100,9 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av
|
|||||||
if (avctx->cutoff > 0)
|
if (avctx->cutoff > 0)
|
||||||
cutoff_coeff = 2.0 * avctx->cutoff / avctx->sample_rate;
|
cutoff_coeff = 2.0 * avctx->cutoff / avctx->sample_rate;
|
||||||
|
|
||||||
|
if (!cutoff_coeff && avctx->codec_id == CODEC_ID_AAC)
|
||||||
|
cutoff_coeff = 2.0 * AAC_CUTOFF(avctx) / avctx->sample_rate;
|
||||||
|
|
||||||
if (cutoff_coeff)
|
if (cutoff_coeff)
|
||||||
ctx->fcoeffs = ff_iir_filter_init_coeffs(avctx, FF_FILTER_TYPE_BUTTERWORTH,
|
ctx->fcoeffs = ff_iir_filter_init_coeffs(avctx, FF_FILTER_TYPE_BUTTERWORTH,
|
||||||
FF_FILTER_MODE_LOWPASS, FILT_ORDER,
|
FF_FILTER_MODE_LOWPASS, FILT_ORDER,
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
/** maximum number of channels */
|
/** maximum number of channels */
|
||||||
#define PSY_MAX_CHANS 20
|
#define PSY_MAX_CHANS 20
|
||||||
|
|
||||||
|
#define AAC_CUTOFF(s) (s->bit_rate ? FFMIN3(4000 + s->bit_rate/8, 12000 + s->bit_rate/32, s->sample_rate / 2) : (s->sample_rate / 2))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* single band psychoacoustic information
|
* single band psychoacoustic information
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user