History

aacenc: remove support for AAC LTP profile

The LTP profile of AAC is... terrible. It was an early 90's attempt at bridging the gap between speech codecs and general purpose codecs. It did so by trying to exploit the fact that most speech patterns are regular. Unfortunately, it went about it the same way as AAC Main, by taking the previous frame's samples, modifying them through an LPC filter, transforming them back using a forward MDCT, putting the output coefficients back into the current frame, and using delta coding. But once again, they ignored basic mathematics and MDCT leakage. Thankfully, because AAC LTP is meant to operate at very low bitrates, the extreme quantization results in most leakage being irrelevant. Unfortunately, the result is that the output sounds pretty much terrible regardless of whether LTP is enabled or not. This was the first attempt at trying to couple speech coding into AAC. No, the second attempt did not succeed either. Nnnneither did the third. Or fourth. For the fifth one, they literally just jammed a speech codec into AAC with USAC once they saw Opus do it. Just drop support for encoding AAC LTP. It was always experimental to begin with.

Lynne committed 1 year ago

Commit 93835331 parent 9b11fef7 files · +1 −355Browse files

Showing the changes to libavcodec/aaccoder.c (1 of 7 files). Show all

Unified · Split

libavcodec/aaccoder.c+0−16
@@ -47,7 +47,6 @@ · 46 unmodified lines
4747
4848 #include "aacenc_is.h"
4949 #include "aacenc_tns.h"
50−#include "aacenc_ltp.h"
5150
5251 #include "libavcodec/aaccoder_twoloop.h"
5352
@@ -1121,16 +1120,11 @@ const AACCoefficientsEncoder ff_aac_coders[AAC_CODER_NB] = { · 1067 unmodified lines
11211120 encode_window_bands_info,
11221121 quantize_and_encode_band,
11231122 ff_aac_encode_tns_info,
1124− ff_aac_encode_ltp_info,
1125− ff_aac_adjust_common_ltp,
11261123 ff_aac_apply_tns,
1127− ff_aac_update_ltp,
1128− ff_aac_ltp_insert_new_frame,
11291124 set_special_band_scalefactors,
11301125 search_for_pns,
11311126 mark_pns,
11321127 ff_aac_search_for_tns,
1133− ff_aac_search_for_ltp,
11341128 search_for_ms,
11351129 ff_aac_search_for_is,
11361130 },
@@ -1139,16 +1133,11 @@ const AACCoefficientsEncoder ff_aac_coders[AAC_CODER_NB] = { · 2 unmodified lines
11391133 codebook_trellis_rate,
11401134 quantize_and_encode_band,
11411135 ff_aac_encode_tns_info,
1142− ff_aac_encode_ltp_info,
1143− ff_aac_adjust_common_ltp,
11441136 ff_aac_apply_tns,
1145− ff_aac_update_ltp,
1146− ff_aac_ltp_insert_new_frame,
11471137 set_special_band_scalefactors,
11481138 search_for_pns,
11491139 mark_pns,
11501140 ff_aac_search_for_tns,
1151− ff_aac_search_for_ltp,
11521141 search_for_ms,
11531142 ff_aac_search_for_is,
11541143 },
@@ -1157,16 +1146,11 @@ const AACCoefficientsEncoder ff_aac_coders[AAC_CODER_NB] = { · 2 unmodified lines
11571146 codebook_trellis_rate,
11581147 quantize_and_encode_band,
11591148 ff_aac_encode_tns_info,
1160− ff_aac_encode_ltp_info,
1161− ff_aac_adjust_common_ltp,
11621149 ff_aac_apply_tns,
1163− ff_aac_update_ltp,
1164− ff_aac_ltp_insert_new_frame,
11651150 set_special_band_scalefactors,
11661151 search_for_pns,
11671152 mark_pns,
11681153 ff_aac_search_for_tns,
1169− ff_aac_search_for_ltp,
11701154 search_for_ms,
11711155 ff_aac_search_for_is,
11721156 },

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t