View Single Post
Old 14th July 2020, 11:42   #12  |  Link
DTL
Registered User
 
Join Date: Jul 2018
Posts: 1,057
Quote:
Originally Posted by cork_OS View Post
Seems the secret of madshi's non-ringing Lanczos has revealed.
I think there was not very the same task. It looks they try to use Lancsoz (sinc-based) resampler on 'non-conditioned' input data for upsample. That definetly will cause ringing effect (even in samples-space without signal/image restoring for viewing as required). Also in that thread users post about requirement of co-operative adjusting 2 or even 3 components of digital (discrete) workflow:
1. Samples source
2. Resampling engine
3. Restoring engine for image viewing

I assume current mature video (broadcasting) processing still based on the classical digital (discreete) processing of continious (analog) (image) data.
So 1. Samples sources (like video cameras, or digital/graphic data sources - CG systems, 3D- and 2D image 'renderers') must provide 'conditioned' samples arrays describing some continious/analog image. 'Conditioned' means if we check this data array on correct monitor (see 3.) it have (minimized or controlled by author/producer) ringing and over/under shooting (may also somewhere called 'peaking') in the state defined by image data authour/producer. As my practic shows different producers has its own opinion how 'sharp' must image looks in terms of over/under-shooting.
2. Resample engine (if we need for some reason change number of samples, spatial density) must keep the 'conditioning' of the output samples array. Or it may adjust 'sharpness' as person making resampling wants with ringing controlled to be as minimum as possible.
3. Restoring engine for image viewing must process input samples as described in Nyquist/Kotelnikov/etc theorem of restoring continious data from its sampled form. In math it is just Sinc-lowpass filtering with large enough taps (to better restore the highest still legal frequencies). I think its spirit still exists in typical documents for good quality video monitors like https://tech.ebu.ch/docs/tech/tech3320.pdf .

Here is a bit different tasks: The filter is designed for getting 'conditioned' samples output arrays for 'non'conditioned' sources (during operation like 'antialiasing', though it is a bit more complex because it is not only spectrum-limiting with simple 'ideal-low-pass filter', but also spectrum-conditioning in the legal low frequencies pass-range). For example buit-in avisynth font rasteriser gives badly conditioned for video samples data of glyphs and using down-resize we can enchance its 'conditioning' and adjust looking in terms of 'sharpness' while keeping aliasing and ringing in low (controlled) state.

And second typical task is down-resize of already formed 'conditioned' sources (2D samples array describing some continious image) because it is limiting-spectrum operation and must be performed with respect to correct math operation to get also 'conditioned' for video output result (2D samples array describing some continious image with lesser number of samples).

For up-sizing of good 'conditioned' video data we can simply use already working SincResize. It is typical operation on geometry video data processing for example for images overlay with float instead of integer coordinates. I hope somedays avisynth will be capable for geometry operations with float instead of integer coordinates. For example for better accuracy image positioning and smoother animations, smoother crawl/zoom effects etc.
DTL is offline   Reply With Quote