[FFmpeg-devel] [PATCH 3/3] aaccoder: Improve IS phase rejection

Rostislav Pehlivanov atomnuker at gmail.com
Sat Jul 18 04:19:00 CEST 2015


>From my earlier testing, it's a bit too conservative, and if you make
>it even more conservative, it may end up reducing the effectiveness of
>I/S.
Yes, that's what I remember too from testing it too.

>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 thus
not use IS. So the phase isn't even very important. The whole point of the
phase check is to pick out the obviously wrong phases and save time by not
having to calculate the error of the spectral coefficients. And this works
better when you individually pick out a majority rather than just summing
them up and then doing the decisions.

Reverse the phase and you'll observe tons and tons of distortions. It's why
M/S is turned off when IS is used.

>The spike will be very audible though, and it should be ok if it
>dominates. I don't remember any case where it was mistaken when I was
>testing.
The spike is still audiable and dominates. Remember, the phase isn't even
half of the story. The energy still plays a role because it's in the
equation for setting the left channel's spectral coefficients and the
balance (encoded as a sf_idx).

On 18 July 2015 at 02:57, Claudio Freire <klaussfreire at gmail.com> wrote:

> On Fri, Jul 17, 2015 at 10:32 PM, Rostislav Pehlivanov
> <atomnuker at gmail.com> wrote:
> > That previous idea discriminated way too many bands for it to be actually
> > useful. And it would require special cases for coefficients which 'blow
> up'
> > and have an insane value.
> ...
> >> What happened to the idea of comparing the energies of the addition
> >> and diferrence and deciding on that?
> >>
> >> It looked better at rejecting these cases than this one when we talked
> >> about it.
>
> From my earlier testing, it's a bit too conservative, and if you make
> it even more conservative, it may end up reducing the effectiveness of
> I/S.
>
> 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.
>
> > This method is naive but it handles spikes better since a single spike in
> > one channel will only cause a single phase to switch among a reasonably
> > sized number of coefficients summed over.
>
> The spike will be very audible though, and it should be ok if it
> dominates. I don't remember any case where it was mistaken when I was
> testing.
>
> Do you have a sample that exhibits this?
>


More information about the ffmpeg-devel mailing list