Log in

View Full Version : I'm thinking of switching religions


Katie Boundary
2nd May 2015, 23:06
I've traditionally abhorred ringing as the worst of all artifacts. Negative lobes make sense for resampling of waveforms because of the oscillating nature of waves. A resizing filter with no negative lobes will actually reduce the amplitude of a waveform to which it is applied, because while the interpolated samples can have values less than or equal to their neighbors, they can never have a greater amplitude than their neighbors. To keep the amplitude of the interpolated signal the same requires negative lobes. But such oscillation does not occur in images; ringing is the result of trying to restore the Gibbs phenomenon in a signal that never had it in the first place.

More recently, I realized that negative lobes actually do make sense for images, but for completely different reasons. In images, interpolation without negative lobes results in blurring for the same reason why they reduce the amplitude of waveforms. Thus, the negative lobes that produce "ringing" also help to mitigate this blurring.

So, while I've typically favored Hermite for being the resizer that most closely approximates pixel mixing at moderate scaling factors, I'm strongly considering a switch to Catrom. It catches my attention for both preserving linear gradients and being a no-op when the source and target resolutions are the same, and because its negative lobe is shallower than Lanczos, making it less likely to produce noticeable ringing.

luquinhas0021
12th May 2015, 22:27
According I've seen, both Hermite and Catmul-Rom are Spline's variations. Is there some practical advantage when use one or another of this methods?
I heard that interpolation is, almost case, done in frequency domain. For make it, first I have to apply the DCT and, then, the Fourier Transform. If i'm wrong, say me what is correct.
If I'm right, why not do the interpolation directly in pixel values (In RGB system)? And neither need put each component, because the RGB system has hexadecimal equivalents. Example: R: 119; G:136; B: 153 = #778899 (Hexadecimal) = 7833753 (Decimal). (http://www.w3schools.com/tags/ref_color_tryit.asp?hex=FFFFFF)

*.mp4 guy
27th May 2015, 20:35
For images and video, the typical implementation of a linear interpolator would employ a polyphase filterbank topology for efficiently computing multirate FIR filter output. For audio, since there is often a desire to use extremely large interpolation kernels, it is can be faster to compute FIR filters via the overlap-add fft method.

Personally I would describe a polyphase filterbank as being a hybrid spatial method, as the phases are essentially data-positions, and you do compute the output directly from the input pixels without any intervening transformations. Overlap-add is very much a frequency domain method, though I'm unfamiliar with the structures that are used to generalize it to work for non-integer scale factors in an efficient way akin to a polphase filterbank.