[opendtv] Re: Math of oversampling

  • From: Jeroen Stessen <jeroen.stessen@xxxxxxxxxxx>
  • To: opendtv@xxxxxxxxxxxxx
  • Date: Tue, 26 Apr 2005 09:18:55 +0200


I wrote to Don Munsil: 
>> That is not a good filter for down-sampling ! 
>> (...) 
>> Better to use a polyphase filter with lookup tables.

Don Munsil: 
> Well, I beg to differ on the first point. If you like, you could use a
> two-lobe windowed sinc, but for all intents and purposes, Catmull-Rom is
> equivalent to two-lobe Lanczos-windowed sinc. The two curves overlay 
> perfectly. 

You can't judge a filter like that... You should judge the 
flatness of the passband and the deepness of the stopband, 
which can only be done in the frequency domain. Even a tiny 
variation in the time or place domain can give a huge 
difference in the stopband. A good filter should be designed 
by looking in the frequency domain in the first place. By just 
windowing some "perfect" filter in the time domain, especially 
if the window length is too short, you get inferior filters. 

> Given that the calculation of the filter kernels is a tiny 
> portion of the whole scaling operation, it's a false economy, 

Exactly, because typically we store the impulse response of the 
filter in a lookup table. Then a good design is equally expensive 
as a bad design. 

> but I just don't see any reason to switch to windowed sinc. 

But if you can have a hand-tuned optimal filter instead... ?! 
Windowing is a crude operation, with not enough freedom to 
get an optimal result. Designing a filter from scratch will 
usually work better. Even Parks-McClellan can be better than 
a windowed sinc. But handwork is better. 

It depends also on a trade-off between sharpness, ringing and 
aliasing artefacts. There is obviously no single best filter. 
Like if you want to cascade down-sampling and up-sampling, as 
in the original subject of this thread, you might want to use 
two filters with a bit too much bandwidth each. 

> And yes, I agree completely that you need quite a few taps 
> and a polyphase filter to get acceptable results. The current 
> scaler I'm working on uses as many taps and phases as are 
> mathematically necessary, as it's not intended to be real-time. 

We do build real-time scalers, with optimal filters. Earlier 
this year my colleague Guido Volleberg has presented a paper 
on the ICCE, about a high-quality versatile scaler. Years ago 
a paper on the transposable sample-rate converter was presented 
by Johan Janssen, with my name as a co-author on it. I have 
distributed a copy among readers of OpenDTV. Feel free to ask. 
And Ad van den Enden has written an entire PhD thesis on the 
subject of re-sampling and multi-rate filtering (for audio). 
(He gives a nice solution for avoiding huge lookup tables.) 
Quality and complexity are no longer an issue anymore. 

We do seem to agree, I just wanted to point out that there is 
some gain to be had from designing good scalers and filters. 

Best regards, 
-- Jeroen 

| From:     Jeroen H. Stessen   | E-mail:  Jeroen.Stessen@xxxxxxxxxxx |
| Building: SFJ-5.22 Eindhoven  | Deptmt.: Philips Applied Technologies |
| Phone:    ++31.40.2732739     | Visiting & mail address: Glaslaan 2 |
| Mobile:   ++31.6.44680021     | NL 5616 LW Eindhoven, the Netherlands |
| Pager:    ++31.6.65133818     | Website: http://www.apptech.philips.com/ 

You can UNSUBSCRIBE from the OpenDTV list in two ways:

- Using the UNSUBSCRIBE command in your user configuration settings at 

- By sending a message to: opendtv-request@xxxxxxxxxxxxx with the word 
unsubscribe in the subject line.

Other related posts: