View Full Version : enhance VHS Anime Quality recorded from TV
FlaShow
2nd June 2012, 16:43
Hello,
I now there is a limit to enhance such a bade. This anime only produce in VHS quality & it is rare in the internet. It's too bade there is no DVD quality for it :( . I want to provide the quality a little, this video need denoiser and adjust color filter any suggestions which filter i have to use and the it is settings ?! I do some test with VirtualDub & This is the result i got
Before:
http://img829.imageshack.us/img829/9798/80602652.jpg
http://img804.imageshack.us/img804/162/77636899.jpg
http://img32.imageshack.us/img32/5104/80129293.jpg
After:
http://img265.imageshack.us/img265/2545/89689269.jpg
http://img207.imageshack.us/img207/1338/69493242.jpg
http://img442.imageshack.us/img442/8726/10233136.jpg
Original video:
http://www.mediafire.com/?9lxbqd49mwmldz1
Filtered video:
http://www.mediafire.com/?1i5n4zgvhs776c2
Best Regards,
FlaShow
Bloax
2nd June 2012, 16:52
Dehaloing would definitely be a good idea. [/suggestion]
But since I have no idea what to do with such sources, that's about all I can say.
Lyris
2nd June 2012, 16:57
There's not a lot you can do with that. Fortunately it's quite untextured so FFT3DFilter / FFT3DGPU to reduce the appearance of the compression artefacts shouldn't chomp through many genuine details.
FlaShow
2nd June 2012, 18:33
Thanks for the help...
Ok, I'm using the script below and display error massage:
Script:
Avisource("oSerendipity.avi")
FFT3DFilter(sigma=2, sharpen=0.3, interlaced=true)
Error Massage:
Avisynth error: YV12 images for output must have a width divisible by 4 (use crop)!
How to fix this error. please ?!
Lyris
2nd June 2012, 21:35
The frame size is 768 x 576, and it needs to be divisible by 4. So before FFT3D I would add:
bilinearResize(720,576)
Normally I don't like the idea of scaling, but this looks like it's been horizontally rescaled anyway, and scaling isn't really going to do any damage to this.
You might also want to have a look for SremoveDirtMC and add that in after FFT3D to take care of the dirt and scratches. The animation is quite limited so I doubt it will do harm to genuine details.
FlaShow
2nd June 2012, 21:48
Thanks Lyris. Is it possible to provide a link for SremoveDirtMC filter. please ?!
Mounir
2nd June 2012, 22:36
Have a look here FlaShow : http://forum.doom9.org/showthread.php?t=134078
StainlessS
3rd June 2012, 04:32
@FlaShow,
There is a search option at the top of the page (on sky blue bar) but it cannot find text in code sections,
but the below would even find it in code via google:
SremoveDirtMC Site:forum.doom9.org
FlaShow
3rd June 2012, 05:55
Thanks StainlessS for the info & the only thing i found is RemoveDirt filter...?!
StainlessS
3rd June 2012, 08:43
http://forum.ixbt.com/post.cgi?id=print:29:9331&page=16
EDIT: You par Ruski (In a Sean Connery accent).
EDIT: Funny, google did not find this link, removeDirt, but see script in 2nd post.
http://forum.doom9.org/showthread.php?p=793467
Gavino
3rd June 2012, 08:56
There is a search option at the top of the page (on sky blue bar) but it cannot find text in code sections
Yes it can.
StainlessS
3rd June 2012, 09:02
Did not used to do it (i've had trouble in past where it would not find in code, maybe they fixed it).
(can you take a look at ColorYUV2, just posted please).
FlaShow
3rd June 2012, 09:21
Thanks StainlessS,
I put the script to an avsi file with the name of SRemoveDirtMC.avsi but when i call it with SRemoveDirtMC() it display
Script error: Invalid arguments to function "SRemoveDirtMC"
How should to call this function ?!
Best Regards,
FlaShow
StainlessS
3rd June 2012, 09:26
Put Double quotes around "limit" in function definition.
EDIT:
As it is, 'limit' is not optional, but inside the function, it treats it as if optional, ie
uses 'Default(limit,6)'
EDIT: Same for RemoveDirt function arg 'limit'.
FlaShow
3rd June 2012, 10:40
Put Double quotes around "limit" in function definition.
EDIT:
As it is, 'limit' is not optional, but inside the function, it treats it as if optional, ie
uses 'Default(limit,6)'
EDIT: Same for RemoveDirt function arg 'limit'.
:thanks:
AVISynth open failure: Script Error: MVAnalyse does not have a named argument "truemotion":
Bloax
3rd June 2012, 12:08
AFAIK It's on by default, so you can probably remove the "***,truemotion=true,***" parts.
Didée
3rd June 2012, 13:12
Not good advice. The message about truemotion means that he (resp. that Avisynth) is using a stoneage version of MVTools (http://avisynth.org.ru/mvtools/mvtools2.html). (Link leads to actual version...)
Bloax
3rd June 2012, 14:18
I should sleep less in the middle of the day I guess. :devil:
FlaShow
3rd June 2012, 18:47
Thanks guys it is work fine now and i got the best result with this script:
Avisource("oSerendipity.avi")
bilinearResize(720,576)
Deblock()
dfttest()
FastLineDarken()
deen("a3d",4,8,9)
Spline36Resize(last.width*2,last.height*2)
AddBorders(4, 0, 4, 0)
aWarpSharp(depth=12,blurlevel=4,thresh=0.2,cm=1)
FastLineDarken()
aWarpSharp(depth=6,blurlevel=4,thresh=0.7,cm=1)
Crop(14,10,-14,-10)
FastLineDarken()
DeHalo_Alpha()
fft3dgpu(bt=3,sigma=8,sharpen=1.3)
Spline36Resize(640,480)
Tweak(sat=1.1, bright=0.0, cont=1.1)
Dup(threshold=4)
Best Regards,
FlaShow
Chainmax
6th June 2012, 14:11
Seems like too much filtering, particularly the excessive repeats of aWarpSharp and FastLineDarken. The picture itself does not look that awful. Like others have said, I would recommend halo removal (Dehalo_Alpha and maybe EdgeCleaner too). I would also add line thinning (aWarpSharp, which can also remove minor haloing) and some judicious light denoising (MDegrain if you're up to it, DFTTest if you prefer something simpler but quite effective too).
You might want to have a look at this thread (http://forum.doom9.org/showthread.php?t=149919) for filter sugestions on a variety of situations.
Mounir
6th June 2012, 16:32
The following code work great for anime (chroma bleeding), change the depth according to your needs
chromavid = awarpsharp2(depth=28, chroma=4) # chroma 4 makes the diff for animes
mergechroma(chromavid,1.0)
and i agree with chainmax seems accessive for your source me believe
FlaShow
9th June 2012, 21:13
Thanks guys the best result i get is using the code provided. I know there is repeats of aWarpSharp and FastLineDarken but the result too good :).
I have one question to ask. there some noise on the video can remove on reduce it or not & the video brightness too high in some point can i reduce it a little without damage video in other point...?!
Result video:
http://www.mediafire.com/?oofsf8sr7248pfa
Regards,
FlaShow
Chainmax
10th June 2012, 00:58
The before shots do not show that much noise, and the insanely excessive denoising you are already doing (dfttest and deen are denoisers, and both dehalo_alpha and deblock can wipe out small details and do away with some noise) should have removed everything already. Supersampling by 2x using Spline36Resize is also a terrible way to do it: depending on what you need, EEDI2 or NNEDI3 are much better alternatives. As for varying brightness levels, think about it: do you really want us to recommend something without having any idea what the problem looks like?
The best thing you can do right now is provide us with an unprocessed source sample so we can have a go at it. Until then, we can scarcely help you any more than we have, which has been little, since you dismissed everything so far, mind you.
mikeytown2
10th June 2012, 09:34
Try the script (1st post) from this old thread. It's the benchmark IMHO.
http://forum.doom9.org/showthread.php?t=134078
FlaShow
10th June 2012, 09:45
Thanks Chainmax. This is the original video
http://www.mediafire.com/?ezyb759u1fmsbx3
Chainmax
11th June 2012, 03:07
I got in a quick first try, but mediafire seems to need subscription to upload stuff now. Any idea of an alternative?
LemMotlow
11th June 2012, 04:45
d l t d
Bloax
11th June 2012, 06:11
I got in a quick first try, but mediafire seems to need subscription to upload stuff now. Any idea of an alternative?
That's weird, unless you mean that you have to register.
If that's the case, you might want to try GuerillaMail (http://www.guerrillamail.com/). (Haha)
At least then you won't be bothered by those pesky emails stuffing your actual inbox. (Because your "new" email is suddenly gone after an hour. Oopsie.)
Ghitulescu
11th June 2012, 08:09
I got in a quick first try, but mediafire seems to need subscription to upload stuff now. Any idea of an alternative?
More and more file transfer portals transform themselves, at the pressure of content industry, in cloud type services. That means you can download only what you uploaded (for how long, well, we'll see). 99.99% of the current files are under someone elses' copyright, anyway :).
FlaShow
11th June 2012, 13:05
What's going on in the upper right corner?
http://forum.doom9.org/attachment.php?attachmentid=12812&stc=1&d=1339386228
I used Logoaway to hide channel logo :D
Alternative link:
http://www.filefactory.com/file/5ykgs9g1q4dj/n/oSerendipity.avi
Chainmax
11th June 2012, 15:26
I refuse to create an account for a service I only use very sporadically.
FlaShow: thanks for the suggestion, here's my try: http://www.filefactory.com/file/1dcut5jtaizp/n/mytry_mp4
As you can see, I did nothing regarding the spots, black squiggles and horizontal white streaks, as I have extremely limited experience with that. You will have to do some reading abot DeSpot and VHS tracking-like artifact removal.
As for the logo removal was a quite bad job, and in my opinion distracted far more from the watching process than leaving the logo in would have done. Do consider leaving the logo in.
FlaShow
11th June 2012, 16:27
This is really a good job. If it possible can you provide the script for me. please ?!
For logo can i get better result if i use avisynth filter instead of using ViertualDub filters ?!
I will read about DeSpot & VHS tracking artifact removal for sure...
Best Regards,
FlaShow
manono
11th June 2012, 23:16
Thanks Chainmax. This is the original video
http://www.mediafire.com/?ezyb759u1fmsbx3
I used Logoaway to hide channel logo :D
Then it's not the original video, is it?
Chainmax
12th June 2012, 04:12
Here's the script I used:
LoadPlugin("X:\wherever\ffms2.dll")
LoadPlugin("X:\wherever\mt_masktools-26.dll")
LoadPlugin("X:\wherever\RepairSSE2.dll")
Import("X:\wherever\DeHalo_Alpha_MT2.avs")
LoadPlugin("X:\wherever\aWarpSharp.dll")
LoadPlugin("X:\wherever\RemoveGrainSSE2.dll")
LoadPlugin("X:\wherever\Deen.dll")
Import("X:\wherever\EdgeCleaner v1.03.avs")
LoadPlugin("X:\wherever\DGDecode.dll")
LoadPlugin("X:\wherever\DCTFilter.dll")
Import("X:\wherever\DeBlock_QED_MT2.avs")
LoadPlugin("X:\wherever\dfttest.dll")
LoadPlugin("X:\wherever\FFT3DFilter.dll")
LoadPlugin("X:\wherever\mvtools2.dll")
Import("X:\wherever\LimitedSharpenFaster.avs")
Import("X:\wherever\Soothe_MT2.avs")
LoadPlugin("X:\wherever\gradfun2db.dll")
Import("X:\wherever\GradFunkMirror.avs")
FFVideoSource("D:\oSerendipity.avi")
Crop(4,2,782,574,align=true)
Spline36Resize(768,576)
DeHalo_Alpha()
EdgeCleaner()
DeBlock_QED()
RemoveGrain(mode=5)
source=last
preNR=source.dfttest(sigma=1.25,tbsize=3).FFT3DFilter(sigma=6,plane=3,bw=32,bh=32,bt=3,ow=16,oh=16)
preNR_super=preNR.MSuper(pel=2, sharp=1)
source_super=source.MSuper(pel=2, sharp=1)
backward_vec3 = MAnalyse(preNR_super,isb = true, delta = 3, overlap=4)
backward_vec2 = MAnalyse(preNR_super,isb = true, delta = 2, overlap=4)
backward_vec1 = MAnalyse(preNR_super,isb = true, delta = 1, overlap=4)
forward_vec1 = MAnalyse(preNR_super,isb = false, delta = 1, overlap=4)
forward_vec2 = MAnalyse(preNR_super,isb = false, delta = 2, overlap=4)
forward_vec3 = MAnalyse(preNR_super,isb = false, delta = 3, overlap=4)
source.MDegrain3(source_super,backward_vec1,forward_vec1,backward_vec2,forward_vec2,backward_vec3,forward_vec3,thSAD=350)
RemoveGrain(mode=5)
aWarpSharp2(depth=16,chroma=4)
dull=last
sharp=last.LimitedSharpenFaster(SMode=4,Strength=150)
Soothe(sharp,dull,25)
Tweak(sat=1.1)
GradFunkMirror(1.51)
I could not pick up the video with AVISource, so I loaded it with the ffms2 plugin. If you go that route, you have to separate the audio, load it with FFAudioSource right after the FFVideoSource line, the AudioDub them together before doing the rest of the filtering. You can find the latest versions of each filter and function in the Avisynth Wiki (avisynth.org/mediawiki/).
FlaShow
12th June 2012, 06:39
Then it's not the original video, is it?
No.
Thanks Chainmax for your great work...
LemMotlow
12th June 2012, 21:52
d l t d
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.