[FFmpeg-devel] AAC ALS (lossless) and SLS (scalable lossless)

Alex Converse alex.converse
Sun May 10 02:27:29 CEST 2009

On Sat, May 9, 2009 at 12:48 PM, Emmanuel Ravelli
<ravelli.emmanuel at gmail.com> wrote:
> On 2009-03-20 03:56, Alex Converse wrote:
> > On Thu, Mar 19, 2009 at 5:29 PM, Justin Ruggles
> > <justin.ruggles@???> wrote:
> > > Alex Converse wrote:
> > >> On Wed, Mar 18, 2009 at 9:49 AM, Alex Converse <alex.converse@???> wrote:
> > >>> On Tue, Mar 17, 2009 at 10:09 PM, Jethro Walters
> > >>> <turkeyman121@???> wrote:
> > >>>> Hey guys.
> > >>>>
> > >>>> Was doing a little research on both AAC ALS and SLS. ALS is the official lossless format for AAC, and a completely separate codec to AAC. SLS is the extension to AAC that adds a lossless reproduction layer on top of the lossy AAC file, sort-of like WavPack's Hybrid lossy/lossless mode.
> > >>>>
> > >>>> Is there any plan to implement these formats in ffmpeg / libavcodec? I feel that having one or both in ffmpeg would give them more chance of moving more into the mainstream, but there seems to be little information around about both formats. Anybody know anything further? Before you ask, no I'm not volunteering to code these, as my coding skills are in dire need of improvement.
> > >>>>
> > >>>> Regards,
> > >>>>
> > >>>> Jethro Walters
> > >>>>
> > >>> At this point ALS has picked up very little steam in the wild and
> > >>> probably won't be seen in FFmpeg anytime soon. A subset of SLS is
> > >>> currently getting a push under the name HD-AAC. I imagine if it takes
> > >>> off FFmpeg will get support for it. Right now we can play the LC core
> > >>> of SLS files.
> > >>>
> > >>
> > >> To expand on my previous answer a little bit since you were talking
> > >> about helping to popularize the formats...
> > >>
> > >> ALS doesn't do anything particularly interesting in my opinion. It's
> > >> seems to be a result of NIH syndrome. There is nothing it does that
> > >> couldn't be solved by a FLAC mapping for MP4 (well except for the fact
> > >> that FLAC probably doesn't use nearly as many patents owned by the
> > >> interests that run MPEG). There seems to be no good reason to push to
> > >> popularize ALS. Though if someone really takes interest in it, there
> > >> is no format too obscure for FFmpeg.
> > >
> > > I don't understand why a FLAC mapping for MP4 would do anything like
> > > what ALS does? ?While ALS does have many random optional features, it
> > > gives better compression than FLAC even with only the subset of features
> > > that are similar to FLAC. ?When you add block switching and arithmetic
> > > coding it can be competitive with the higher compression lossless codecs
> > > out there.
> > >
> > > I've given up on "popularization" as a motivation for FFmpeg
> > > development. ?Now I just want us to implement everything we can. :) ?And
> > > I like ALS more from a theoretical point-of-view rather than wanting to
> > > see it gain ground as a popular lossless codec.
> > >
> >
> > Looking at some comparisons it does show a lot of promise. Just don't
> > be too disappointed if it never gains a commercial foothold. But I
> > suppose the beauty of a lossless codec is that there is no penalty for
> > transcoding down the road.
> >
> > >> SLS is a much more interesting format because of it's hybrid WavPack
> > >> like nature. Now I'm sure you are thinking ALS is like FLAC, SLS is
> > >> like WavPack what's makes SLS interesting? SLS is interesting because
> > >> it's lossy layer is already widely proliferated in the wild and there
> > >> are high quality tools for it. A file that can be quickly stripped to
> > >> AAC is far more useful on a number of players and devices than a .WV
> > >> WavPack lossy file.
> > >>
> > >> That is why recently I've started work on an HD-AAC (subset of SLS) decoder.
> > >
> > > I also think SLS is interesting. ?I just don't know as much about it as
> > > I do ALS. ?If more people want this to be a project proposal for GSoC, I
> > > would be willing to study up on it and volunteer to be a mentor unless
> > > someone who knows more about AAC would rather be mentor. ?Although work
> > > should not be duplicated if you're already working on a decoder...
> > >
> >
> > SLS has gotten a lot of buzz lately thanks to a big push from FhG
> > (showing it off at CES, getting Via to put together a licensing
> > scheme) the new HD-AAC profile.
> >
> > > Is there documentation somewhere on HD-AAC vs. SLS? ?What does HD-AAC
> > > leave out?
> > >
> >
> > http://www.itscj.ipsj.or.jp/sc29/open/29view/29n10159t.doc
> >
> > Basically it leaves out BSAC from the AAC layer and CBAC from the SLS
> > layer. It also leaves out pure lossless mode (which I'm writing anyway
> > for sanity/testing purposes).
> >
> > --Alex
> >
> I have just seen this thread and I would like to know if HD-AAC is now implemented in ffmpeg, or not?
> I am currently doing some research related to SLS and I know well SLS coding/decoding.
> I would be very interested in an open-source SLS decoder.
> If you need some help in developing/testing, just contact me, I would be happy to help.
> Regards,
> Emmanuel

Hi Emmanuel,

HD-AAC is not yet finished.

Right now it appears that there are come issues in the specification
in regard to bitstream formatting. [1] I've been waiting for a
corrigendum from MPEG in regard to that, especially since some other
things seemed off to me. What I really should do is make a list of
them and send them in and not trust FhG to catch them on their own in
relation to this. I'm also waiting in the official 4th edition of
14496-3 whch should significantly streamline the documentation. In
addition to that, I am also waiting on ISO to make the new corrigendum
3 reference software publicly available. [WG11 N10393; SC29 N10178]
I've been trying to become involved with my national delegation to
MPEG to streamline access to some of these things, but even that
process is covered in red tape and financially expensive for someone
doing this without a big corporate/university backing. Recently I've
become distracted by the FFmpeg AAC encoder that is under development.
Under the revelation that FAAC is in fact non-free, this has become an
increasingly important task. I've implemented TNS for it but to
sufficiently test/tune TNS, I need the rest of the encoder to behave

To best help with SLS development I would recommend starting with the
IntIMDCT and IntTNS tools and we can meet somewhere in the middle.If
you are more interested/have more expertise in the actual bitstream
front end, I can shelve my front end (which is barely gets anything
right at the moment) and begin work in the integerized decoding tools.

[1] http://lists.mpegif.org/pipermail/mp4-tech/2009-March/008772.html

Alex Converse

More information about the ffmpeg-devel mailing list