[FFmpeg-trac] #2686(avcodec:open): Native AAC encoder collapses at high bitrates on some samples

FFmpeg trac at avcodec.org
Fri Sep 20 07:10:44 CEST 2013


#2686: Native AAC encoder collapses at high bitrates on some samples
-------------------------------------+-------------------------------------
             Reporter:  Kamedo2      |                    Owner:
                 Type:  defect       |                   Status:  open
             Priority:  normal       |                Component:  avcodec
              Version:  git-master   |               Resolution:
             Keywords:  aac          |               Blocked By:
  regression                         |  Reproduced by developer:  1
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------

Comment (by klaussfreire):

 So, I attached a patch that moves in the right direction (I think).

 Most of the worse-performing samples, I noticed, had to do with hole
 avoidance being quickly violated when using low bit rates. So I re-did
 twoloop's RD improvement step to better respect hole avoidance, to be
 asymmetric in its scale manipulation (ie: to avoid adding all 1 or all 2,
 which would be quickly undone by the bitrate adjustment step), and
 everything seemed to work a lot better.

 However, on the "asymmetric" little word, there's a huge hack involved. I
 wouldn't want to waste your time without a warning: this hack can most
 assuredly be improved. But I don't think I'll waste time improving a hack,
 since the real solution is to implement a dynamic programming coder, which
 I intend to do in the future. So while hackish and probably suboptimal,
 I'll probably leave it as-is since it works well enough.

 I haven't tested VBR much. From what I tested, it seems mostly unharmed,
 but it still needs a better calibrated cutoff. That will take time (lets
 say it'll be v6).

 So, this patch should be good enough for ABR. VBR will need a v6, and some
 day (time permitting) I'll post '''the''' patch with the dynamic coder.

 I couldn't quite match FDK performance, but I suspect there's two reasons
 for this. First, M/S coding isn't as good as it should be. And 2, FDK
 probably uses a dynamic coder. So I think we'll catch FDK with the dynamic
 coder (which can also do the M/S part, so it'll fix both with one shot).

 However, I tested most of the samples in your session, and '''they've all
 improved'''. Some more than others, of course. So, if not all the samples,
 you might want to retest the worst offenders.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2686#comment:158>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list