Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 14th August 2019, 08:50   #1  |  Link
szabi
Registered User
 
Join Date: Nov 2004
Posts: 251
Restoring old VHS video by Avisynth

Hi

My old VHS casette was digitalized and now I have 720×576@25fps, DV AVI files on my PC.
I want to improve the quality by avisynth including deinterlace.
I did it a few years ago however now I did search by google: vhs restore avisynth to see any improvement since I did last.

This one is the original with crop and resize:
Code:
AVISource("D:\wedding\tdk vhsc.avi")
AssumeFPS(25,1)
ConvertBits(8)
ConvertToYV12()
crop(10, 2, -10, -2)
LanczosResize(696,520)


The following was suggested by megui after running the analysis:
Code:
AVISource("D:\wedding\tdk vhsc.avi")
AssumeFPS(25,1)
AssumeBFF()
ConvertBits(8)
ConvertToYV12()
Yadifmod2(order=0)
crop(10, 2, -10, -2)
LanczosResize(696,520)


Next one which I used years ago:
Code:
AVISource("D:\wedding\tdk vhsc.avi")
AssumeFPS(25,1)
AssumeBFF()
ConvertBits(8)
ConvertToYV12(interlaced=true)
QTGMC( Preset="Slow", EdiThreads=2, EZDenoise=1.2, TR2=2, Rep2=2, Sharpness=0.8, SLMode=1 )
SelectEven()
Tweak(hue=0, sat=1.0, bright=-1, cont=1.0, dither=true, coring=false)
crop(10, 2, -10, -2)
LanczosResize(696,520)



Following is from here: Video restoration newbie
Code:
AVISource("D:\wedding\tdk vhsc.avi")
AssumeBFF()
SeparateFields()
HDRagc(coef_gain=1.3,corrector=0.5,protect=1)
FixVHSOversharp(20,16,12)
FixVHSOversharp(20,8,12)
Weave()
ConvertToYV12(interlaced=true)
QTGMC(preset="faster",EZDenoise=4,denoiser="dfttest",sharpness=0.8)
SelectEven()
SMoothUV()
ColorYUV(cont_v=-50,cont_u=30)
Levels(16,1.0,255,16,240,coring=false,dither=true)
MergeChroma(awarpsharp2(depth=20))
LimitedSharpenFaster(edgemode=2)
crop(10, 2, -10, -2)
LanczosResize(696,520)
return last

It does some process I like so should be mixed with others.

Next I found was on digitalfaq forum: Comparing JVC VCR settings?
Code:
AVISource("D:\wedding\tdk vhsc.avi")
AssumeFPS(25,1)
AssumeBFF()
ConvertBits(8)
ConvertToYV12(interlaced=true)
SeparateFields().HQDering().HQDering().DeHalo_Alpha()
Weave()
QTGMC(preset="medium",EZDenoise=4,denoiser="dfttest",sharpness=0.7,ChromaMotion=true,border=true,ChromaNoise=true,DenoiseMC=true)
SelectEven()
Tweak(cont=1.2,dither=true,coring=false)
Levels(16,0.95,255,12,235,dither=true,coring=false)
vInverse()
RemoveDirtMC_SE(gpu=false)
LimitedSharpenFaster(edgemode=2)
AddGrainC(1.5,1.5)
crop(10, 2, -10, -2)
LanczosResize(696,520)
The picture quality is really strange, so I guess I should not use it.


Last I did try was found on same site in different topic: Found more VHS tapes, best Avisynth scripts to restore?
From the 5 sample script I did try to use the C version:
Code:
AVISource("D:\wedding\tdk vhsc.avi")
ColorYUV(off_y=-3,cont_y=15,gain_y=20)
Levels(16,1.0,255,16,235,coring=false,dither=true)
ConvertToYV12(interlaced=true)
AssumeBFF()
SeparateFields().HQDering().FixChromaBleeding().Weave()
QTGMC(preset="medium",FPSDivisor=2,ChromaMotion=true,ChromaNoise=true,DenoiseMC=true,GrainRestore=0.6,border=true,ShutterBlur=1, ShutterAngleSrc=30, ShutterAngleOut=360)
FixChromaBleeding()
Santiag(2,2)
EdgeCleaner()
SmoothUV()
LimitedSharpenFaster(edgemode=2)
gradfun3()
ConvertToYV12(interlaced=false)
RemoveDirtMC_SE(gpu=false)
grainfactory3(g1str=1, g2str=1, g3str=1)
AddGrainC(1.25,1.25)
crop(10, 2, -10, -2)
Spline36Resize(696,520)
ConvertToRGB32(interlaced=false,matrix="Rec601")
return last
With this I failed because too much plugins are missing (Santiag, EdgeCleaner, SmoothUV, gradfun3,grainfactory3).

There were an other search result: the most complex one (VHS restore script review)
Due to the complexity it was not tested yet.

Also I was thinking to use the latest script from restoring old 8mm films thread
The latest script was modded even for image processing not for movie, that I am confused how to mod it back.
Unfortunately I had to realise what I could do 5 years ago I do not understand at this time.
Did anyone try to use this script to enhance VHS digit?

Should I still searching for another solution to achive better quality?
Do you have any suggestion how to mix together all the above mentioned to get outstanding result?

EDIT: Sample video from source: wedding.

Regards
szabi

Last edited by szabi; 14th August 2019 at 09:45. Reason: sample added
szabi is offline   Reply With Quote
Old 14th August 2019, 09:15   #2  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
You're using scripts from all over, developed for different VHS captures than your own, and expect them to perform miracles on your captures? One size does not fit all.

I expect each tape should be treated differently. And since pictures are next to useless, better would be for you to upload 10 seconds or so from your captures. Untouched, unreencoded, no YouTube garbage.
manono is offline   Reply With Quote
Old 14th August 2019, 09:45   #3  |  Link
szabi
Registered User
 
Join Date: Nov 2004
Posts: 251
I am not avisynth guru.
Most of case I can use which was developed already but a few times when it complex I can not.
If I could do it by own I would not ask.
Pointing to my weakness does not help much just break my enthusiasm.
Original post edited and sample video added.
szabi is offline   Reply With Quote
Old 14th August 2019, 14:09   #4  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Szabi,
Manono was not "having a go" at you [just stating fact], you are being a little too sensitive I think.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 14th August 2019 at 14:42.
StainlessS is offline   Reply With Quote
Old 14th August 2019, 18:24   #5  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,869
I'm at work and I had very limited time and resources to play with your sample and I can only encode an XDCAM file as output (sadly), but would something like this be enough for you?

Original 1:



Encoded 1:



Original 2:



Encoded 2:



Original 3:



Encoded 3:




On a positive side, there are no spots or scratches in your recording, which is good 'cause doing despot and de-scratch doesn't always fix each and every one of them.
There's also no significant issues with the interlace: it's just a truly interlaced footage which can be bobbed to 50fps progressive without issues, except for the aliasing that it's created, which is annoying, but we can take care of that.
As to the luma, the footage itself is overshoot, which basically means that luma is out of range as you can see here:



There's no way to bring that wall back as the values are out of range, but even trying to bring it back to legal range, there's no detail anymore as it's been clipped out in the original source (you can see that by taking a look at the waveform).
As to the chroma, there's some work to do, but thankfully StainlessS made a very good filter that has become a "must use" whenever you wanna restore old sources: GamMac. (And I thank him every time I use it).
Unfortunately, there isn't much detail on your source, but there's dynamic noise and a bit of grain as well, so it really comes down to what you wanna do in this case: taking care of it at the expense of the details (not that there are many anyway) or leaving it as it is and accepting dynamic noise and grain in your source.

Please note that this is just a draft and I'm at work, so I have been forced to output an interlaced FULL HD XDCAM file with 8 PCM mono audio tracks out of your source, but this should give you an idea of what can be done with very little time:

Code:
#Indexing

video=FFVideoSource("tdk vhsc-sample.avi")
audiook=FFAudioSource("tdk vhsc-sample.avi")
audio=MergeChannels(audiook, audiook, audiook, audiook)
AudioDub(video, audio)



#Bob-deinterlace 25i to 50fps progressive

tdeint(mode=1, order=-1, field=-1, mthreshL=6, mthreshC=6, map=0, type=2, debug=false, mtnmode=1, sharp=true, cthresh=6, blockx=16, blocky=16, chroma=true, MI=64, tryWeave=true, link=1, denoise=true, slow=2, opt=4)


#Cropping out inactive lines of your SD source (overscan)
Crop(10, 4, -10, -4)

#Converting from yv12 to RGB, keeping BT601

ConverttoRGB(matrix="Rec601")


#Color correction

GamMac(dither=true, LockChan=-3, Scale=2, RedMul=1.0, GrnMul=1.0, BluMul=1.0, loTh=0.0, hiTh=0.0, LockVal=128, RngLim=12, GamMax=10.0, omin=16, omax=235, Show=false, Coords=false)


#Converting from RGB to yv16, keeping BT601

Converttoyv16(matrix="Rec601")


#Going from BT601 to BT709

Matrix(from=601, to=709, rg=1.0, gg=1.0, bg=1.0, a=16, b=235, ao=16, bo=235, bitdepth=8)


#Losslessly converting from yv16 to YUY2 (4:2:2 planar to 4:2:2 interleave)

ConverttoYUY2()


#Deflickering

antiflicker(window=25)


#Denoise

AdaptiveMedian(maxgrid=9)

PeachSmoother(NoiseReduction=40, Stability=30, DoSpatial=true, Spatial=110, Dot=false, Readout=false, ShowMotion=false, Debug=false)


#Antialiasing

AAA(Xres=700, Yres=568, Xshrp=20, Yshrp=0, Us=1, Ds=2, Chroma=true)


#Final degrain

xNLMeans()


#Adding borders to go to 1.33 PB (16:9)

AddBorders(154, 0, 154, 0)


#Upscale

nnedi3_rpow2(cshift="Spline64ResizeMT", rfactor=2, fwidth=1920, fheight=1080, nsize=4, nns=4, qual=1, etype=0, pscrn=2, threads=0, csresize=true, mpeg2=true, threads_rs=0, logicalCores_rs=true, MaxPhysCore_rs=true, SetAffinity_rs=false, opt=3)


#Clipping

Limiter(min_luma=16, max_luma=235, min_chroma=16, max_chroma=240)


#Loudness Correction

ResampleAudio(48000)
Normalize(0.22)
ConvertAudioTo24bit()


#Re-interlacing (50fps progressive to 25i)

assumeTFF()
separatefields()
selectevery(4,0,3)
weave()
Converttoyv16(matrix="Rec709", interlaced=true)

This is the result (encoded file): https://we.tl/t-ydUgXgNaep

Please beware that the reason why I didn't make much denoise is that it can really make everything look blurry and make details disappear.
This is what I mean by that:

Extreme Denoise + Highlights compression example (brutally encoded file): https://we.tl/t-tgH1ADGLRE

Please note that I did all this in legacy Avisynth 2.6.1 as you didn't specify whether you are using Avisynth+ or legacy Avisynth. If you are actually using the legacy Avisynth, I strongly suggest you to update, though. As to the upscale and re-interlace part, you could actually avoid it, as the only reason why I did it is that at work I gotta encode everything in XDCAM and I'm not sitting at my home personal computer (and team viewer is blocked of course for obvious reasons). As a matter of fact, I'm replying to you in a break between a program and another. :P

By the way, I'm not an expert in restoring old sources and there are people like videofred who do this kind of stuff on a daily basis, so hopefully they're gonna help you more than I did, but anyway, my script is just an example of what could be potentially done.

Cheers,
Frank.

Last edited by FranceBB; 14th August 2019 at 18:39.
FranceBB is offline   Reply With Quote
Old 14th August 2019, 19:15   #6  |  Link
szabi
Registered User
 
Join Date: Nov 2004
Posts: 251
Without any suggestion I use this with adding 5 sec blankclip:
Code:
AVISource("D:\wedding\tdk vhsc.avi")
AssumeFPS(25,1)
AssumeBFF()
ConvertBits(8)
ConvertToYV12(interlaced=true)
QTGMC( Preset="Slow", EdiThreads=2, EZDenoise=1.2, TR2=2, Rep2=2, Sharpness=0.8, SLMode=1 )
SelectEven()
Tweak(hue=0, sat=1.0, bright=-1, cont=1.0, dither=true, coring=false)
Levels(8, 0.995, 255, 8, 248,dither=true,coring=false)
crop(10, 2, -10, -2)
LanczosResize(696,520)
FadeIO(25, color=$000000, fps=25.0)
video1=last
BlankClip(length=125, width=696, height=520, pixel_type="YV12", fps=25, fps_denominator=1, audio_rate=48000, channels=2, sample_type="24bit", color=$000000)
video2=last
video2+video1+video2
It is propably not the best available improvement however by own that is I can do.

If I do not google just asking I blamed, use search. If I do google search I blamed too.
I gathered all founded information in initial post to be useful anyone, not only one liner init post like "I need VHS restore help".
I spent time to do my best.
First answer post only points my weak knowledge, but provide no help.
I might be too sensitive but after all it fell badly.
Nevermind now.


My old machine work on this 40 minutes wedding video around 7 hours.

EDIT: FranceBB. You did post during I answer StainlessS.
I checked the sample you uploaded and I trying to figure out your script.
I did not mention it, "AviSynthPlus-MT-r2772.exe" is used.
Thanks for your help.
Regards
szabi

Last edited by szabi; 14th August 2019 at 19:38.
szabi is offline   Reply With Quote
Old 14th August 2019, 19:35   #7  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,869
@szabi...

Quote:
AVISource("D:\wedding\tdk vhsc.avi")
AssumeFPS(25,1)
AssumeBFF()
ConvertBits(8)
ConvertToYV12(interlaced=true)
Why the AssumeFPS? Your source it's already 25i, the indexer should report it correctly.
Why ConvertBits(8)? Your source is already 8bit planar, there's no need for it.
Why converttoyv12? Your source it's already 4:2:0 8bit planar.

Quote:
QTGMC( Preset="Slow", EdiThreads=2, EZDenoise=1.2, TR2=2, Rep2=2, Sharpness=0.8, SLMode=1 )
SelectEven()
Do you really wanna have a 25fps progressive out of it by discarding the Odd and keeping the Even?
Since your source it's 25i truly interlaced, QTGMC should have no problem outputting a regular 50fps progressive file which is way more smooth than 25fps progressive.
I would definitely bob-deinterlace it.
FranceBB is offline   Reply With Quote
Old 14th August 2019, 19:58   #8  |  Link
szabi
Registered User
 
Join Date: Nov 2004
Posts: 251
I did run analysis by MeGui and after it was completed AssumeFPS, ConvertBits() were added to the script.
Also the analysis stated field order is bottom first so I added AssumeBFF().
I accept what megui suggested and use in script.
I added ConvertToYV12 because qtgmc did not worked without it.

I mentioned I am not script expert.
When I search avisynth best deinterlace the top result always qtgmc, that is why I use it. That is the reason SelectEven() is in script, search result did give it.
I always return to original framerate, never considered anything else.
szabi is offline   Reply With Quote
Old 14th August 2019, 21:03   #9  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,869
Quote:
I did run analysis by MeGui and after it was completed AssumeFPS, ConvertBits() were added to the script.
I don't actually like MeGUI, as I do actually prefer to write the script myself using AVSPmod and then encode using x262 or x264 or x265 or ffmpeg.
You know, I like to know "what is doing what" and I don't really like when another software does something automatically for me and takes a decision on my behalf.

Quote:
I mentioned I am not script expert.
When I search avisynth best deinterlace the top result always qtgmc, that is why I use it. That is the reason SelectEven() is in script, search result did give it.
I always return to original framerate, never considered anything else.
QTGMC really is the best deinterlacer out there and it's better than tdeint and yadif, however it's really slow, that's why it took you 7 hours to encode it.
As to the original framerate, your source is 25i truly interlaced; think about it as the equivalent of 50fps progressive, so by using "SelectEven()" you are discarding half the temporal resolution and you're getting 25fps.
PAL is very simple, you basically have either 25fps progressive flagged as interlaced or 25i truly interlaced which is 50fps.
There are cases in which you have blended videos that are 25i but when you bob them you find out that they are blended, but that's not your case.
In your case, your file is 25i truly interlaced and I suggest you to bob-deinterlace it.
FranceBB is offline   Reply With Quote
Old 15th August 2019, 02:46   #10  |  Link
LemMotlow
Registered User
 
Join Date: Jul 2011
Location: Tennessee, USA
Posts: 266
Quote:
Originally Posted by szabi View Post
Hi

My old VHS casette was digitalized and now I have 720×576@25fps, DV AVI files on my PC.
Aw,m an, that's a SHAME! VHS to DV?

My condolen ces. I'd help, but who the hell wants to work themselves to death over DV damage that should have been avoided in the first place?

Good luck. That DV mistake will never look better than it does right now. You might fix the color a bit, but it's a losing proposition from here on.
LemMotlow is offline   Reply With Quote
Old 15th August 2019, 03:38   #11  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,685
szabi, you can completely ignore the pointless and unhelpful rant about DV. The artifacts from DV are infinitesimally minor compare to all the noise and garbage that you get with any VHS capture. This is especially true since you are capturing to PAL DV which has a much more robust colorspace than NTSC DV.
johnmeyer is online now   Reply With Quote
Old 15th August 2019, 06:47   #12  |  Link
szabi
Registered User
 
Join Date: Nov 2004
Posts: 251
Hi

I do not have any equipment to digitalize VHS. I did not want to buy any to do so.
Cheap equipment has poor quality with several other problem and I have no buisness with digit so I did not want to invest to the expensive one.
Also I do not have TBC VHS player.
So I had to find someone to digit. Most of the buisness who deal with digit only provide DVD as output.
I wanted to edit the video and do any post-process, so DVD is not good for me.
I found one person who willing to do such an output format I can edit, not only DVD.
Due to post-process the output need to be easily edited, that is why I ask to provide DV-AVI.
If you check the sample video fourcc=cdvc, so digit was done a canopus device, which I consider to be good choise.
I do not know whether any other option is available for me as digit result from a canopus device.
Editing the dv-avi (cdvc) Grass Valley HQX Codec had to be installed.
Finally I had to tell, digit is not free for me I had to pay for it.
That is the story of my input source I have no influence on it.

I did not mention, my final encode will be x264 in mkv.
Wedding was encoded yesterday, today I deal with an other family event, overall I have 15hrs dv-avi which need to be processed-encoded.
I see script of FranceBB there are so much color convert, which I did never deal before.
I always leave the colour as it was, now I need to read what is what.
Also there is upscaling the resolution to 1080p.
Since I deal with encoding one of the basic rules I kept was to never magnify the video over original resolution.
Which provide the better look? Keep original resoultion and lcd-tv perform upscale or do it by avisynth?

Regards
szabi
szabi is offline   Reply With Quote
Old 15th August 2019, 17:41   #13  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,869
Quote:
Also there is upscaling the resolution to 1080p.
That's only because I had to output an XDCAM since I was at work, which is why I upscaled it.

Quote:
Since I deal with encoding one of the basic rules I kept was to never magnify the video over original resolution.
Which provide the better look? Keep original resoultion and lcd-tv perform upscale or do it by avisynth?
Well, it depends. You are absolutely free to leave it as it is and it's gonna be a good encode, no doubt about it.
As I said, the reason why I had to upscale it was that whenever I'm at work I can't encode anything but an XDCAM FULL HD 8bit 25i or an XAVC Intra Class 300 UHD 10bit 50p.
I generally leave the source as it is on my personal encode, but at work I'm forced to upscale.
Since you are dealing with these kind of things, let me diverge a little bit and let me talk about resizing kernels.
As you may know, there are many resizing kernel; the most famous ones are PointResize, BilinearResize, LanczosResize and Spline-based resize.
There are other resizing kernels, but I'm not gonna talk about them.
PointResize is the most basic resizing kernel you can get and of course, you should never use it unless it's for quick and dirt preview for whatever reason, but never to encode! Do not encode with it.

For this example I'm gonna use an 128x68 1.77 FF footage, yv12 4:2:0 planar 8bit and I'm gonna upscale it to 848x480.

Original Footage:



PointResize Upscale:



Bilinear Upscale:



Bicubic Upscale:



Lanczos Upscale:



Spline64Resize Upscale:



NNEDI3 SplineResize Upscale with a useless mind blowing 128 taps:



Think about this as a sort of extreme upscale example.
PointResize is a very simple resize and it's never used in real life scenarios.
Bilinear and Bicubic are for historical reasons the most used in the industry; this is because back in the days everything was done not via software but via hardware.
In other words, in order to, let's say, downscale an HDCAM SR to a BetaCAM, the first HD VTR was going to be routed to a matrix; using the matrix, the signal was going to be routed in an hardware downscaler (sometimes called "CONV" or "XCONV"; I remember Everts producing those kind of things) and then the resulting downscaled signal was going to be routed to the SD VTR which was going to record in BetaCAM.
If you are not familiar with them, this is a VTR:



This is a matrix:





So... Bilinear is an old-fashioned resizing kernel which is still used nowadays 'cause many people were familiar with it back in the "hardware" days and it's then become the very first one to be included in software.
The good thing about Bilinear is that it doesn't create many artifacts, however it's very blurry...
Bicubic was created to overcome the blurriness of Bilinear and offer a sharper result and just like Bilinear, it was common in the hardware days.
I reckon that Omneon playout ports use a sort of FastBicubic whenever they have to upscale a legacy SD file to FULL HD, for instance.




The problem of Bicubic is that it's prone to create ringing.
Unfortunately, I cannot show it from the picture I choose but that's because I made a crappy example.
There are tons of examples of ringing artifacts caused by Bicubic on Doom9, so feel free to google them (I'm sorry about my crappy example).
As to Lanczos, well, it's been one of my favorite resizing kernel as it offers a pretty sharp upscale and downscale but with less artifacts than Bicubic, in my opinion.
As to the Spline resize based kernels, well, they offer a pretty good sharp result whenever you are upscaling, but they can't generally be used to downscale as the result would be too oversharped.
Let me put it in this way: they are very good to upscale, but when you downscale, you may like the result on nature, landscapes and so on, but if there are captions, or signs and so on it will definitely introduce a lot of aliasing; the same goes for the lines of, let's say, a building.
The number of taps is equivalent to the number of lobes used, but increasing them after a certain threshold doesn't really make a very noticeable difference.
For instance, the most used Spline Resize are Spline36 and Spine64, while some people like Katie Boundary are more prone to like Spline144Resize, but literally nobody would go over Spline144 'cause it doesn't just offer anything more to the resize.

Now... you have asked whether it makes sense to upscale or if it's better to let a TV upscale it...
Well, there's not a correct answer as TVs are not all the same.
Up until a few years ago, let's say... going back to 2008-2009 or so, when people began to get HD TVs, many TVs were using a sort of FastBilinear whenever they received an SD signal.
One of the things they were arguing about was that when they purchased the new TV, the SD was so much worse than how they were seeing it with their old TV.
The reason was that, most of the time, it was really poorly upscaled by the TV and therefore it was very blurry and people were complaining...
As result, back in the days, we had some HD channels, but we didn't really have many HD contents, so we had to upscale them.
Surprisingly, polls showed that some users were happier with upscaled HD contents compared to their original SD size, because their HD TVs were actually pretty bad in upscaling SD contents.
Fast-forward to 2019, the situation is much different now.
4K UHD TV are doing a much better job than the old TVs in upscaling SD, HD and FULL HD signals to 4K UHD.
This is because manufacturers learned from the past and nowadays our TVs are "Smart TVs" which means that they are literally powerful computers with the ability to compute way more complex operations than the ones of 2008-2009.
As result, upscaling techniques built-into the TVs improved a lot and some TVs are even capable of doing complicated things like motion-interpolation to go to 120fps and so on (although I would never turn it on as I don't like artifacts).

So the answer is... there isn't an unequivocally right or wrong answer. :P
I hope that this gives you an overview on resizing and I strongly invite you to read this Avisynth Wiki page as it's very well done: http://avisynth.nl/index.php/Resampling

Cheers,
Frank

Last edited by FranceBB; 15th August 2019 at 17:57.
FranceBB is offline   Reply With Quote
Old 15th August 2019, 21:40   #14  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,403
Thanks for the comparisons! More are always helpful when done well.

Quote:
Originally Posted by FranceBB View Post
As to Lanczos, well, it's been one of my favorite resizing kernel as it offers a pretty sharp upscale and downscale but with less artifacts than Bicubic, in my opinion.
As to the Spline resize based kernels, well, they offer a pretty good sharp result whenever you are upscaling, but they can't generally be used to downscale as the result would be too oversharped.
Lanczos is also a spline based resize kernel, Lanczos3 and Spline36 are very similar, with Spline36 sharpening very slightly less than Lanczos3. Lanczos4 is slightly sharper than Spline64 too. It seems weird to compare 3 tap Lanczos to 4 tap spline when you could use 3 tap spline and/or 4 tap Lanczos, they also have the same computational requirements at the same number of taps. Due to this your distinction between them seems backwards (though I do not think they are very different either).
__________________
madVR options explained
Asmodian is offline   Reply With Quote
Old 16th August 2019, 17:19   #15  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,869
Quote:
Originally Posted by Asmodian View Post
Lanczos is also a spline based resize kernel, Lanczos3 and Spline36 are very similar, with Spline36 sharpening very slightly less than Lanczos3. Lanczos4 is slightly sharper than Spline64 too. It seems weird to compare 3 tap Lanczos to 4 tap spline when you could use 3 tap spline and/or 4 tap Lanczos, they also have the same computational requirements at the same number of taps. Due to this your distinction between them seems backwards (though I do not think they are very different either).
That explains why I used to get aliasing on subtitles when I was downscaling HD to SD with Lanczos years ago, so... yes, you're right.
FranceBB is offline   Reply With Quote
Old 16th August 2019, 20:33   #16  |  Link
Emulgator
Big Bit Savings Now !
 
Emulgator's Avatar
 
Join Date: Feb 2007
Location: close to the wall
Posts: 1,531
Hi szabi !
Got the details of the portal back.
1280x720x50fps, MPEG-4 AVC + AAC.mkv, as preview.
https://www.sendspace.com/file/kekbk3
As h.264 +.ac3 muxed into .MTS would be ready for use on AVCHD / .m2ts on BD.
__________________
"To bypass shortcuts and find suffering...is called QUALity" (Die toten Augen von Friedrichshain)
"Data reduction ? Yep, Sir. We're that issue working on. Synce invntoin uf lingöage..."

Last edited by Emulgator; 16th August 2019 at 20:37.
Emulgator is offline   Reply With Quote
Old 17th August 2019, 23:44   #17  |  Link
LemMotlow
Registered User
 
Join Date: Jul 2011
Location: Tennessee, USA
Posts: 266
Post removed to save handing out a strike. Your earlier post was inflammatory; this one broke rules. You can play the curmudgeon all you like, but either clean up your act a bit or you're welcome to leave.

Last edited by manono; 18th August 2019 at 02:45.
LemMotlow is offline   Reply With Quote
Old 18th August 2019, 06:32   #18  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
I give it a fast try
Code:
LWLibavVideoSource("D:\Downloads\tdk vhsc-sample.avi")
QTGMC(tv_range=false)
edgesidebleed(0,0,0.01,0.1,-0.01,false).edgesidebleed(0,0,0.01,0.2,0.01)
YAHR3(depthV=0,lumaonly=true)
DeHalo_alpha(rx=2.0, ry=1)
last.sBlackerPixel(DeHalo_alpha_2BD(rx=3.0, ry=1),64)
AutoAdjust(input_tv=false,output_tv=false).SmoothLevels(preset="pc2tv")
#~ Prefetch(threads=8) #slower!
https://www34.zippyshare.com/v/iR6ho2Sz/file.html

not perfect but it's good start so you can play with filters parameters or add another filters
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 18th August 2019, 08:40   #19  |  Link
Taurus
Registered User
 
Taurus's Avatar
 
Join Date: Mar 2002
Location: Krautland
Posts: 903
Quote:
Originally Posted by real.finder View Post
I give it a fast try
Code:
LWLibavVideoSource("D:\Downloads\tdk vhsc-sample.avi")
QTGMC(tv_range=false)
edgesidebleed(0,0,0.01,0.1,-0.01,false).edgesidebleed(0,0,0.01,0.2,0.01)
YAHR3(depthV=0,lumaonly=true)
DeHalo_alpha(rx=2.0, ry=1)
last.sBlackerPixel(DeHalo_alpha_2BD(rx=3.0, ry=1),64)
AutoAdjust(input_tv=false,output_tv=false).SmoothLevels(preset="pc2tv")
#~ Prefetch(threads=8) #slower!
https://www34.zippyshare.com/v/iR6ho2Sz/file.html
not perfect but it's good start so you can play with filters parameters or add another filters
Your zippyshare link gives a "403 forbidden..."
Thanks for fixing this!
Taurus is offline   Reply With Quote
Old 18th August 2019, 09:10   #20  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
Zippyshare is blocked in germany und uk since april. Blocked by zippyshare itself...
You could try a random non german webproxy to download the file. https://www.proxysite.com/ worked for me.

And as always: Never use zippyshare without an adblocker
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database

Last edited by ChaosKing; 18th August 2019 at 09:14.
ChaosKing is offline   Reply With Quote
Reply

Tags
avisynth, repair, restore, restoring, vhs

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 03:55.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.