Since the official FFmpeg twitter account already tweeted about it, I guess it is safe to spread the news here:
The LONG~ stagnated free AAC encoder in FFmpeg (not fdk-aac, the default free one) finally received some extensive update.
Original info here:Improvements to twoloop and RC logic are extensive.
The non-exhaustive list of twoloop improvments includes:
- Tweaks to distortion limits on the RD optimization phase of twoloop
- Deeper search in twoloop
- PNS information marking to let twoloop decide when to use it
(turned out having the decision made separately wasn't working)
- Tonal band detection and priorization
- Better band energy conservation rules
- Strict hole avoidance
For rate control:
- Use psymodel's bit allocation to allow proper use of the bit
reservoir. Don't work against the bit reservoir by moving lambda
in the opposite direction when psymodel decides to allocate more/less
bits to a frame.
- Retry the encode if the effective rate lies outside a reasonable
margin of psymodel's allocation or the selected ABR.
- Log average lambda at the end. Useful info for everyone, but especially
for tuning of the various encoder constants that relate to lambda
feedback.
Psy:
- Do not apply lowpass with a FIR filter, instead just let the coder
zero bands above the cutoff. The FIR filter induces group delay,
and while zeroing bands causes ripple, it's lost in the quantization
noise.
- Experimental VBR bit allocation code
- Tweak automatic lowpass filter threshold to maximize audio bandwidth
at all bitrates while still providing acceptable, stable quality.
I/S:
- Phase decision fixes. Unrelated to #2686, but the bugs only surfaced
when the merge was finalized. Measure I/S band energy accounting for
phase, and prevent I/S and M/S from being applied both.
PNS:
- Avoid marking short bands with PNS when they're part of a window
group in which there's a large variation of energy from one window
to the next. PNS can't preserve those and the effect is extremely
noticeable.
M/S:
- Implement BMLD protection similar to the specified in
ISO-IEC/13818:7-2003, Appendix C Section 6.1. Since M/S decision
doesn't conform to section 6.1, a different method had to be
implemented, but should provide equivalent protection.
- Move the decision logic closer to the method specified in
ISO-IEC/13818:7-2003, Appendix C Section 6.1. Specifically,
make sure M/S needs less bits than dual stereo.
- Don't apply M/S in bands that are using I/S
http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=01ecb7172b684f1c4b3e748f95c5a9a494ca36ec
Perhaps the reliance on propriety AAC encoder finally a thing of the past?
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 4 of 4
Thread
-
Stopping development until someone save me from poverty or get me out of Hong Kong...
Twitter @MaverickTse -
https://www.ffmpeg.org/index.html#news
AAC Encoder Improvements, mentee: Rostislav Pehlivanov, mentor: Claudio Freire
Rostislav Pehlivanov has implemented PNS, TNS, I/S coding and main prediction on the native AAC encoder. Of all those extensions, only TNS was left in a less-than-usable state, but the implementation has been pushed (disabled) anyway since it's a good basis for further improvements.
PNS replaces noisy bands with a single scalefactor representing the energy of that band, gaining in coding efficiency considerably, and the quality improvements on low bitrates are impressive for such a simple feature.
TNS still needs some polishing, but has the potential to reduce coding artifacts by applying noise shaping in the temporal domain (something that is a source of annoying, notable distortion on low-entropy bands).
Intensity Stereo coding (I/S) can double coding efficiency by exploiting strong correlation between stereo channels, most effective on pop-style tracks that employ panned mixing. The technique is not as effective on classic X-Y recordings though.
Finally, main prediction improves coding efficiency by exploiting correlation among successive frames. While the gains have not been huge at this point, Rostislav has remained active even after the GSoC, and is polishing both TNS and main prediction, as well as looking for further improvements to make.
In the process, the MIPS port of the encoder was broken a few times, something he's also working to fix.
Similar Threads
-
Looking for an AAC-LC encoder from Frauenhofer
By Vane in forum AudioReplies: 11Last Post: 1st Dec 2015, 19:02 -
FFmpeg's MP4 is not AAC?
By Djard in forum AudioReplies: 8Last Post: 20th Oct 2014, 19:53 -
ffmpeg aac help
By hss2293 in forum Video ConversionReplies: 19Last Post: 7th Jul 2014, 12:46 -
(FFMPEG) Muxing h264 and aac
By Simon_ in forum Video ConversionReplies: 5Last Post: 7th Sep 2013, 09:24 -
ffmpeg error when encoding 6 channel aac
By BrianAtVH in forum AudioReplies: 5Last Post: 14th Feb 2012, 14:52