X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Faacenc_tns.h;h=f0e75569ae2ac8323df1c9e156713089ce9c9fb0;hb=cebe51a6255e04b8dcd15fcbab359ed00dbb3ab1;hp=72c91239a38f74e7032d4560d047e81fff69f82d;hpb=ea1061e147d33e33281570631cab7fdc1195e065;p=ffmpeg diff --git a/libavcodec/aacenc_tns.h b/libavcodec/aacenc_tns.h index 72c91239a38..f0e75569ae2 100644 --- a/libavcodec/aacenc_tns.h +++ b/libavcodec/aacenc_tns.h @@ -30,11 +30,23 @@ #include "aacenc.h" -/** Lower limit of TNS in SFBs **/ -#define TNS_LOW_LIMIT 24 +/* Could be set to 3 to save an additional bit at the cost of little quality */ +#define TNS_Q_BITS 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(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 */