X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Faacenc_tns.h;h=f0e75569ae2ac8323df1c9e156713089ce9c9fb0;hb=cebe51a6255e04b8dcd15fcbab359ed00dbb3ab1;hp=789e9a64fef4b4fa2d32fc26264fddbd3f44b82b;hpb=87ee98c89866696441f4c63dedc1323f52360902;p=ffmpeg diff --git a/libavcodec/aacenc_tns.h b/libavcodec/aacenc_tns.h index 789e9a64fef..f0e75569ae2 100644 --- a/libavcodec/aacenc_tns.h +++ b/libavcodec/aacenc_tns.h @@ -30,16 +30,23 @@ #include "aacenc.h" -/** Frequency in Hz for lower limit of TNS **/ -#define TNS_LOW_LIMIT 2150 +/* Could be set to 3 to save an additional bit at the cost of little quality */ +#define TNS_Q_BITS 4 -/** LPC settings */ -#define TNS_MIN_PRED_ORDER 0 -#define MAX_LPC_PRECISION 4 /* 4 bits ltp coeff precision */ -#define TNS_LPC_PASSES 2 -#define MAX_LPC_SHIFT 4 +/* TNS will only be used if the LPC gain is within these margins */ +#define TNS_GAIN_THRESHOLD_LOW 1.395f +#define TNS_GAIN_THRESHOLD_HIGH 11.19f + +/* If the energy ratio between the low SFBs vs the high SFBs is not between + * those two values, use 2 filters instead */ +#define TNS_E_RATIO_LOW 0.77 +#define TNS_E_RATIO_HIGH 1.23 + +/* Do not use TNS if the psy band spread is below this value */ +#define TNS_SPREAD_THRESHOLD 37.081512f void ff_aac_encode_tns_info(AACEncContext *s, SingleChannelElement *sce); +void ff_aac_apply_tns(AACEncContext *s, SingleChannelElement *sce); void ff_aac_search_for_tns(AACEncContext *s, SingleChannelElement *sce); #endif /* AVCODEC_AACENC_TNS_H */