git.videolan.org Git - ffmpeg.git/rss log

FFmpeg git repo

http://git.videolan.org/?p=ffmpeg.git;a=summary

Les articles publiés sur le site

  • aacenc : remove ANMR coder

    8 février, par Lynne
    aacenc: remove ANMR coder
    
    If there's ever a rework of the AAC encoder, it won't start from here.
    The codec, with all its oddities and tweaks needed to acheive good quality
    has strayed far from the academic work upon which this coder was based on.
    Its been 20 years since this paper was released, and no known existing
    implementations, open-source or proprietary that we know of, are based on it.
    
    • [DH] libavcodec/aaccoder.c
    • [DH] libavcodec/aacenc.c
    • [DH] libavcodec/aacenc.h
  • aacenc : remove support for AAC LTP profile

    8 février, par Lynne
    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.
    
    • [DH] libavcodec/Makefile
    • [DH] libavcodec/aaccoder.c
    • [DH] libavcodec/aacenc.c
    • [DH] libavcodec/aacenc.h
    • [DH] libavcodec/aacenc_ltp.c
    • [DH] libavcodec/aacenc_ltp.h
    • [DH] libavcodec/aacenctab.h
  • aacenc : remove support for AAC Main profile

    8 février, par Lynne
    aacenc: remove support for AAC Main profile
    
    The Main profile of AAC is... terrible.
    It enables the use of delta coding across coefficients of two frames
    to try to increase compression, and it enabled one more pole for TNS
    filters.
    
    What the AAC authors failed to take into account were basic
    mathematics, as MDCT leakage (e.g. the spread of each frequency when
    represented in a discrete spectrum) is significant in most audio codecs.
    This leads to huge variations between each frame, basically rendering
    prediction completely pointless.
    
    In fact, enabling AAC-Main prediction does not, in general, even recoup
    the metadata losses from signalling the profile and prediction properties
    in the first place. So you lose efficiency by using AAC Main.
    
    The rumor is that it was put in the AAC spec for patent reasons, though
    patent-wise, it has about as much use as a patent for a bicycle designed
    for use by snakes.
    
    The only other thing AAC Main changes is it permits 3-pole TNS filters.
    When AAC's bands are absolutely tiny, except for very high frequency bands,
    where you're likely to use PNS instead.
    
    Just get rid of it.
    
    • [DH] doc/encoders.texi
    • [DH] libavcodec/Makefile
    • [DH] libavcodec/aaccoder.c
    • [DH] libavcodec/aacenc.c
    • [DH] libavcodec/aacenc.h
    • [DH] libavcodec/aacenc_pred.c
    • [DH] libavcodec/aacenc_pred.h
    • [DH] libavcodec/aacenc_tns.c
    • [DH] libavcodec/aacenctab.h
    • [DH] tests/fate/aac.mak
  • avdevice/alsa : simplify passing ff_alsa_open a channel layout

    8 février, par James Almer
    avdevice/alsa: simplify passing ff_alsa_open a channel layout
    
    This also ensures the layout set during the indev init is used instead of the
    blank one in st->codecpar.
    
    Signed-off-by: James Almer <jamrial@gmail.com>
    
    • [DH] libavdevice/alsa.c
    • [DH] libavdevice/alsa.h
    • [DH] libavdevice/alsa_dec.c
    • [DH] libavdevice/alsa_enc.c
  • avformat/mov : check for tts_count before deferencing tts_data

    8 février, par James Almer
    avformat/mov: check for tts_count before deferencing tts_data
    
    Fixes ticket #11460.
    
    Signed-off-by: James Almer <jamrial@gmail.com>
    
    • [DH] libavformat/mov.c