[MPlayer-dev-eng] Re: PATCH 4/5: substract surround from front in pl_surround

Stephen Davies steve at daviesfam.org
Mon Dec 10 21:41:52 CET 2001


Hi Tobias,

Thanks for your effort and thought on this.


On Mon, 10 Dec 2001, Tobias Diedrich wrote:

> Now this would mean we have downgraded front to mono :-(
> But remembering that Surround is supposed to be low-pass filtered,
> this is not really true, as mostly the high frequency carry
> directional information, whereas you can't locate very low
> frequencies.

Surround should be filtered to 7kHz.  That's hardly "non directional very
low frequencies"...

> But unless you can convince me otherwise, at least this part of the
> patch should be applied:
> 
>      out[2] = pl_surround.delaybuf[pl_surround.delaybuf_ptr];
> -    out[3] = -out[2];
> +    out[3] = out[2];
> 
> Or alternatively (inverted sourround output):
> 
> -    out[2] = pl_surround.delaybuf[pl_surround.delaybuf_ptr];
> +    out[2] = -pl_surround.delaybuf[pl_surround.delaybuf_ptr];
> -    out[3] = -out[2];
> +    out[3] = out[2];
> 
> Otherwise you output surround to both rear-speakers and one is in
> anti-phase to the other, so low frequencies will cancel out each other...

My code drives the two rear channels in anti-phase deliberately.  In this
I followed the Dolby Surround documents from Dolby, which recommend this
to create a "diffuse, non-localizable" sound at the rear.

Remember - this is not a Pro Logic style active decoder.  In the Pro-Logic
case you would drive the speakers in-phase.  The adaptive matrix would
steer the sound to attempt to localize it.

If you drive the rear in-phase with a passive decoder, rear sounds
localize always in the rear centre.  For ambient sounds, reverb and such
typical surround sounds you want the diffuse effect.

Perhaps this should be configurable.  I did listen to both ways - and I
think the out of phase sounds better.

Steve





More information about the MPlayer-dev-eng mailing list