DSPRelated.com
Forums

Specification and design of image pixel interpolation filters?

Started by Chris Bore December 5, 2008
I want to design interpolation filters for a grid of 3D data.
I need to interpolate new voxels at varying positions between original
voxels.
(The original data are from 3D ultrasound where voxels are uniformly
spaced out along the spokes of a fan-shaped grid, and my new pixels
are to be uniform on a rectangular cartesian grid. But I dont have a
problem handling this aspect, I'm interested in how to specify and
design the interpolation filters.)

Computation time is precious. I have been using a scheme that takes
account of the nearest 5x5x5 (=125) nearest neighbour pixels. I have
tried linear, various simple weightings, and FIR low-pass filtering.

I would like to know a method to design suitable interpolation
filters, according to specified criteria (I don't know what these
might be, but for instance assumptions about 3D spatial frequency
content, smoothing, etc), with minimal number of nearest neighbours.

I can start from a simplified 1D case.
Suppose my new sample requires me to re-sample to 5x the original
sample rate.
Then I can design a low pass filter with cutoff at 0.2 of the original
sample rate.
For instance:
  (original) sample frequency:  1
  passband:                           0.1
  stopband                             0.2
  passband ripple                   0.3 dB
  stopband attenuation           3 dB

this requires 11 coefficients for a Kaiser window, 9 for a rectangle,
11 for equiripple. That is more than I can afford. I want to use maybe
3, possibly 5. More to the point, I want to know how to make sensible
choices of the filter specification based on the fact that I am
dealing with image data (actually, ultrasound data).

My questions:

1) is there a good reference that discusses these issues of specifying
and designing image interpolation filters?

2) can anyone suggest sensible ways to specify the compromises I must
make to achieve computability?

Thanks,

Chris
===================
Chris Bore
BORES Signal Processing
www.bores.com
chris@bores.com
On Dec 5, 6:05&#4294967295;am, Chris Bore <chris.b...@gmail.com> wrote:
> I want to design interpolation filters for a grid of 3D data. > I need to interpolate new voxels at varying positions between original > voxels. > (The original data are from 3D ultrasound where voxels are uniformly > spaced out along the spokes of a fan-shaped grid, and my new pixels > are to be uniform on a rectangular cartesian grid. But I dont have a > problem handling this aspect, I'm interested in how to specify and > design the interpolation filters.) > > Computation time is precious. I have been using a scheme that takes > account of the nearest 5x5x5 (=125) nearest neighbour pixels. I have > tried linear, various simple weightings, and FIR low-pass filtering. > > I would like to know a method to design suitable interpolation > filters, according to specified criteria (I don't know what these > might be, but for instance assumptions about 3D spatial frequency > content, smoothing, etc), with minimal number of nearest neighbours. > > I can start from a simplified 1D case. > Suppose my new sample requires me to re-sample to 5x the original > sample rate. > Then I can design a low pass filter with cutoff at 0.2 of the original > sample rate. > For instance: > &#4294967295; (original) sample frequency: &#4294967295;1 > &#4294967295; passband: &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; 0.1 > &#4294967295; stopband &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; 0.2 > &#4294967295; passband ripple &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; 0.3 dB > &#4294967295; stopband attenuation &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; 3 dB > > this requires 11 coefficients for a Kaiser window, 9 for a rectangle, > 11 for equiripple. That is more than I can afford. I want to use maybe > 3, possibly 5. More to the point, I want to know how to make sensible > choices of the filter specification based on the fact that I am > dealing with image data (actually, ultrasound data). > > My questions: > > 1) is there a good reference that discusses these issues of specifying > and designing image interpolation filters? > > 2) can anyone suggest sensible ways to specify the compromises I must > make to achieve computability? > > Thanks, > > Chris > =================== > Chris Bore > BORES Signal Processingwww.bores.com > ch...@bores.com
Hey Chris, You have an interesting problem. Assuming your coordinate system is cartesian, then we know the ideal reconstruction filter in separable, where you can use a sync function along each axis. But we know that function has long reaching tails so won't be practical. But you can use a window function resampled in the time domain so as to make it cover the spectrum of interest. This of course means you need some oversampling in your original data capture. A raised cosine function actually works well for this type of thing. But you can use higher order windows if needed. If you are 3 or 5 times oversampled, then your window only needs to have its flattop (portion with nearly unity frequency response) extend over 1/3 or 1/5 of the spectrum. You can find a balance point with the passband width, transition width and oversampling rate to give short length interpolation filters. IHTH, Clay