| Printable Version of Topic
Click here to view this topic in its original format |
| Unofficial VirtualDub Support Forums > Testing / Bug Reports > Center Cut Audio Filter |
| Posted by: S_O Feb 28 2003, 02:09 PM |
| 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: ![]() After Center Cut: ![]() 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. |
| Posted by: phaeron Mar 1 2003, 04:38 AM |
| "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. |
| Posted by: fccHandler Mar 1 2003, 07:31 AM |
| MPEG-2 was easy compared to this... |
| Posted by: phaeron Mar 1 2003, 08:58 AM | ||
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:
|
| Posted by: fccHandler Mar 2 2003, 08:02 AM | ||
But aren't you still screwed if y == -0.0000001? |
| Posted by: phaeron Mar 2 2003, 11:56 PM |
| 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). |