[FFmpeg-devel] [PATCH 3/3] aaccoder: Improve IS phase rejection
atomnuker at gmail.com
Tue Jul 21 06:36:17 CEST 2015
>An alternative technique that may be better in that regard, then,
>would be to measure distortion with both phases, and pick the phase
>that yields the lowest distortion?
That's a very good suggestion.
Since the main problem with M/S and IS was phasing this might be a way to
solve that too.
I'll give it a try.
On 21 July 2015 at 02:02, Claudio Freire <klaussfreire at gmail.com> wrote:
> On Fri, Jul 17, 2015 at 11:19 PM, Rostislav Pehlivanov
> <atomnuker at gmail.com> wrote:
> >>But even if not used for avoding I/S, it can be used to pick whether
> >>to invert the phases, where it was clearly more stable.
> > In case the phase is very clearly wrong then there will be an increase in
> > the distortion which should cause the dist2 <= dist1 check to fail and
> > not use IS. So the phase isn't even very important. The whole point of
> > phase check is to pick out the obviously wrong phases and save time by
> > having to calculate the error of the spectral coefficients. And this
> > better when you individually pick out a majority rather than just summing
> > them up and then doing the decisions.
> All the more reason to use energy then.
> If you use this sign-difference count, low-energy noise may change the
> count while being inaudible, yielding an incorrect phase value. After
> that, distortion will be huge and the band won't be I/S encoded, but
> it might if the phase value was otherwise.
> In general, this algorithm seems fragile (ie: not robust in the
> presence of noise).
> Why not forego the optimization and optimize efficiency instead? (it's
> the priority now, running time optimization should be done after
> exploiting the technique to increase quality as much as posibble).
> An alternative technique that may be better in that regard, then,
> would be to measure distortion with both phases, and pick the phase
> that yields the lowest distortion?
> Give it a try.
More information about the ffmpeg-devel