Welcome Guest ( Log In | Register )


Important

The forums will be closing permanently the weekend of March 15th. Please see the notice in the announcements forum for details.

 
Center Cut Audio Filter, horrible clicks & pops
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
S_O
Posted: Feb 28 2003, 02:09 PM


Vdubmod Alpha Testing Team


Group: Vdubmod Alpha Testing Team
Posts: 102
Member No.: 57
Joined: 25-July 02



I just the saw the great new featue of having audio filters in VirtualDub, when I saw the list of already internal filters, wow.
I tested first the "Center Cut Filter" to remove the center channel from a Dolby Surround Pro Logic (not ProLogic 2!) encoded wav.
Original it´s 60 seconds wav with 6 channels, first 10 seconds are only Front L, then C, Front R, Surround L, Surround R, LFE. Downmixed to DPL1 the first 10 seconds are only L, then R, then both identicall sound (veryfied in hexeditor: both channels are bit-identicall!), then 20 seconds L and R is agin the same, just that R is inverted. Theoretically it should remove seconds 10 to 20, but here are the results (spectral view from CoolEdit [gif compression is much better than PNG for this kind of picture!]):
Normal:
user posted image
After Center Cut:
user posted image

As you see the are many clicks and pops and the center channel is not removed correctly. This should be defintly improved until it is useable.
 
     Top
phaeron
Posted: Mar 1 2003, 04:38 AM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



"Center cut" is not designed to handle ProLogic encoding, or any 3+-into-2 encoding in particular -- it is designed to attempt to separate any arbitrary audio encoded in stereo. It uses overlapping FFTs and will never give you perfect cancellation because the 0 and f/2 frequencies are always zeroed in the center channel (these do not have imaginary components and thus cannot be separated by the algorithm). Since the window size is 4096, this translates to a lower bound of ~10Hz at 44KHz sampling rate.

The main reason for the spectral leakage, however, is that there is an anti-divide-by-zero epsilon constant in the algorithm that is too large, at around 10^-7. Due to the presence of a square root in the process that error balloons to 3*10^-3, resulting in the leak.

 
    Top
fccHandler
Posted: Mar 1 2003, 07:31 AM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



ohmy.gif Overlapping FFT?
huh.gif Spectral leakage??
dry.gif Anti-divide-by-zero epsilon???

MPEG-2 was easy compared to this... laugh.gif

--------------------
May the FOURCC be with you...
 
     Top
phaeron
Posted: Mar 1 2003, 08:58 AM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



Spectral leakage and overlapping FFTs take a while to explain, but anti-divide-by-zero epsilons (a term I coined today, in fact), are also known as hacks:

CODE

result = x / (y + 0.0000001);

 
    Top
fccHandler
Posted: Mar 2 2003, 08:02 AM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



huh.gif "epsilon" isn't even in my dictionary...

QUOTE (phaeron @ Mar 1 2003, 04:58 AM)
result = x / (y + 0.0000001);

But aren't you still screwed if y == -0.0000001?

--------------------
May the FOURCC be with you...
 
     Top
phaeron
Posted: Mar 2 2003, 11:56 PM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



No, in the case of center cut "y" happens to be a squared magnitude (a vector dotted with itself). It can't be negative. The way center cut works is that, given two phase/magnitude vectors for the left and right channels (L and R), it computes a center channel C that pushes the stereo outputs to be orthogonal. That is, it picks C such that (L-C)*(R-C)=0. The top output gives you (L-C, R-C) and the bottom output gives C. Part of the computation involves projecting L and R onto each other: L*(L*R)/(L*L) and R*(L*R)/(R*R).




 
    Top
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:
5 replies since Feb 28 2003, 02:09 PM Track this topic | Email this topic | Print this topic

<< Back to Testing / Bug Reports