View Full Version : Blending and Chroma Ghosting
Blackout_Out
13th November 2021, 18:01
Hi all,
I'm working with a laserdisc scan of an old anime with bad blending and what seems to me to be random chroma ghosting: https://drive.google.com/file/d/1JVoz6QBIJrnvdzYeWsnvBVbbzwANpFbL/view
For the blending, for days (maybe weeks in total) I've experimented with Srestore using various settings, but the results either leave some blended frames when Srestore is not aggressive enough, decimates or duplicates frames in panning shots (causing notable jerkiness) when Srestore is used too aggressively, or (and most frequently) some combination of both.
For the chroma ghosting, it just seems like sporadically the chroma is 1 frame/field offset from the luma. I've been unable to find a plugin that can detect these offsets and automatically bring the chroma back into alignment.
If any of the experts on here can take even a quick jab at the blending and/or recommend a resolution to the chroma ghosting (if that is even the correct term for the issue), that would be incredibly appreciated! I don't expect the issues to ever be perfectly resolved, but I hope they can be resolved farther than I've been able to achieve on my own.
Thank you for any help in advanced!
StainlessS
13th November 2021, 18:36
[I aint gonna download 1.7GB sample]
Maybe try Google
("chroma" NEAR ( "blend" OR "ghost" )) AND Laserdisc site:forum.doom9.org
ie,
https://www.google.co.uk/search?q=%28%22chroma%22+NEAR+%28+%22blend%22+OR+%22ghost%22+%29%29+AND+Laserdisc+site%3Aforum.doom9.org&biw=1760&bih=833&ei=aPmPYd-jCND4gQaCj7nABw&oq=%28%22chroma%22+NEAR+%28+%22blend%22+OR+%22ghost%22+%29%29+AND+Laserdisc+site%3Aforum.doom9.org&gs_lcp=Cgdnd3Mtd2l6EANKBAhBGAFQvApYsR5g2yBoAXAAeACAAc0BiAG1ApIBBTAuMS4xmAEAoAEBwAEB&sclient=gws-wiz&ved=0ahUKEwjf95T78ZX0AhVQfMAKHYJHDngQ4dUDCA0&uact=5
Above 81 hits, remove the "AND Laserdisk" gets 3000 hits.
real.finder
13th November 2021, 19:42
what is the Chroma Ghosting? I didn't note any, better post your script
also why the video is 10bit 444? did you recorded it like this or did you scale it later?
Blackout_Out
13th November 2021, 20:03
[I aint gonna download 1.7GB sample]
Maybe try Google
("chroma" NEAR ( "blend" OR "ghost" )) AND Laserdisc site:forum.doom9.org
ie,
https://www.google.co.uk/search?q=%28%22chroma%22+NEAR+%28+%22blend%22+OR+%22ghost%22+%29%29+AND+Laserdisc+site%3Aforum.doom9.org&biw=1760&bih=833&ei=aPmPYd-jCND4gQaCj7nABw&oq=%28%22chroma%22+NEAR+%28+%22blend%22+OR+%22ghost%22+%29%29+AND+Laserdisc+site%3Aforum.doom9.org&gs_lcp=Cgdnd3Mtd2l6EANKBAhBGAFQvApYsR5g2yBoAXAAeACAAc0BiAG1ApIBBTAuMS4xmAEAoAEBwAEB&sclient=gws-wiz&ved=0ahUKEwjf95T78ZX0AhVQfMAKHYJHDngQ4dUDCA0&uact=5
Above 81 hits, remove the "AND Laserdisk" gets 3000 hits.
Ty! I'll see what I can find.
Blackout_Out
13th November 2021, 20:12
what is the Chroma Ghosting? I didn't note any, better post your script
also why the video is 10bit 444? did you recorded it like this or did you scale it later?
I am experimenting with various scripts, but this is what I'm referring to by chroma ghosting:
https://i.imgur.com/ZPTyhXp.png
I'm working with someone else who does the scanning. I can ask him exactly what his process is, but he uses a device called the Doomsday Duplicator to scan the LD and then encodes that data into the MKV you and I have. Let me know if you need to know anything specific about that!
So far, my script is basically
AssumeTFF()
QTGMC(FPSDivisor=1, preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, Sharpness=0.0, InputType=0, TR2=3)
Srestore(frate=29.97, omode=6) #with many variations of each param
tdecimate(mode=1,hybrid=1)
real.finder
13th November 2021, 21:40
LWLibavVideoSource("logh_d2_ep5_clip.mkv")
AssumeTFF()
SeparateFields()
ConvertBits(8,dither=1)
Weave()
#~ stgmc (https://github.com/realfinder/AVS-Stuff/blob/Community/avs%202.6%20and%20up/STGMC.avsi)(tr0=-2,useEdiExt=1,EdiExt=sanimebob(useBWDIF=true),Sharpness=0,n16=true,tr2=5, Refinemotion=true)
stgmc(useEdiExt=2,EdiExt=sanimebob(useBWDIF=true),Sharpness=0,n16=true,tr2=2,ESearchP=true, Refinemotion=true)
sAnimeDeblend(hqbob=true)
https://www.solidfiles.com/v/786rd5X72rnRQ
edit: full clip https://www.solidfiles.com/v/2dQXq6wxBqKKX
this work in 8bit since eedi3 not work with HBD yet
edit: with some ideas from nnedi3_resize16, this work with any bitdepth (you can't trust it as real HBD but it better than 8bit)
LWLibavVideoSource("logh_d2_ep5_clip.mkv")
AssumeTFF()
#~ stgmc(tr0=-2,useEdiExt=1,EdiExt=sanimebob(useBWDIF=true, FastNnediHBD=true),Sharpness=0,tr2=5, Refinemotion=true, fastma=true)
stgmc(useEdiExt=2,EdiExt=sanimebob(useBWDIF=true, FastNnediHBD=true),Sharpness=0,tr2=2,ESearchP=true, Refinemotion=true, fastma=true)
sAnimeDeblend(hqbob=true)
anyway, the video need more work since it got many problems like ringing
Blackout_Out
14th November 2021, 13:34
LWLibavVideoSource("logh_d2_ep5_clip.mkv")
AssumeTFF()
SeparateFields()
ConvertBits(8,dither=1)
Weave()
#~ stgmc (https://github.com/realfinder/AVS-Stuff/blob/Community/avs%202.6%20and%20up/STGMC.avsi)(tr0=-2,useEdiExt=1,EdiExt=sanimebob(useBWDIF=true),Sharpness=0,n16=true,tr2=5, Refinemotion=true)
stgmc(useEdiExt=2,EdiExt=sanimebob(useBWDIF=true),Sharpness=0,n16=true,tr2=2,ESearchP=true, Refinemotion=true)
sAnimeDeblend(hqbob=true)
https://www.solidfiles.com/v/786rd5X72rnRQ
edit: full clip https://www.solidfiles.com/v/2dQXq6wxBqKKX
this work in 8bit since eedi3 not work with HBD yet
edit: with some ideas from nnedi3_resize16, this work with any bitdepth (you can't trust it as real HBD but it better than 8bit)
LWLibavVideoSource("logh_d2_ep5_clip.mkv")
AssumeTFF()
#~ stgmc(tr0=-2,useEdiExt=1,EdiExt=sanimebob(useBWDIF=true, FastNnediHBD=true),Sharpness=0,tr2=5, Refinemotion=true, fastma=true)
stgmc(useEdiExt=2,EdiExt=sanimebob(useBWDIF=true, FastNnediHBD=true),Sharpness=0,tr2=2,ESearchP=true, Refinemotion=true, fastma=true)
sAnimeDeblend(hqbob=true)
Wow, this script is miraculous; thank you so much!
I'm running it on my end and there are a few problems:
A)
SeparateFields()
ConvertBits(8,dither=1)
Weave()
stgmc(useEdiExt=2,EdiExt=sanimebob(useBWDIF=true),Sharpness=0,n16=true,tr2=2,ESearchP=true, Refinemotion=true)
When using this, one shot in particular gets very choppy (the frames just start duplicating inexplicably): https://drive.google.com/file/d/1U7BQ9NlESXDNLIeimvBWgV7GtefFc2Di/view?usp=sharing
B)
SeparateFields()
ConvertBits(8,dither=1)
Weave()
stgmc(tr0=-2,useEdiExt=1,EdiExt=sanimebob(useBWDIF=true, FastNnediHBD=true),Sharpness=0,tr2=5, Refinemotion=true, fastma=true)
When using this, it fixes that issue, but the motion in pans is not quite as smooth as with A).
C)
stgmc(tr0=-2,useEdiExt=1,EdiExt=sanimebob(useBWDIF=true, FastNnediHBD=true),Sharpness=0,tr2=5, Refinemotion=true, fastma=true)
D)
stgmc(useEdiExt=2,EdiExt=sanimebob(useBWDIF=true, FastNnediHBD=true),Sharpness=0,tr2=2,ESearchP=true, Refinemotion=true, fastma=true)
Both C) and D) give the error:
Script error:sanimebob does not have a named argument "FastNnediHBD"
I have tried downloading various plugins and avsi. scripts that usually resolve this type of issue, but I cannot figure out how to resolve this one.
Any additional assistance is tremendously appreciated, and thank you very much again for the script!
real.finder
14th November 2021, 14:05
update them from https://github.com/realfinder/AVS-Stuff
about the other problem, did you forget AssumeTFF()? anyway maybe it's from sAnimeDeblend/Srestore if it not AssumeTFF
and, as always, you should post the full script
Blackout_Out
14th November 2021, 20:48
update them from https://github.com/realfinder/AVS-Stuff
Done! This resolved the FastNnediHBD issue.
However, the frame duplication issue is still present. Here is my whole script:
LWLibavVideoSource("logh_d2_ep5_clip.mkv")
AssumeTFF()
SeparateFields()
ConvertBits(8,dither=1)
Weave()
stgmc(useEdiExt=2,EdiExt=sanimebob(useBWDIF=true, FastNnediHBD=true),Sharpness=0,tr2=2,ESearchP=true, Refinemotion=true, fastma=true)
sAnimeDeblend(hqbob=true)
Here is the result: https://drive.google.com/file/d/1K40XF_CEhHRI-c4foGQBeJfUHvS6j6Lr/view?usp=sharing
I have also used
LWLibavVideoSource("logh_d2_ep5_clip.mkv")
AssumeTFF()
SeparateFields()
ConvertBits(8,dither=1)
Weave()
stgmc(useEdiExt=2,EdiExt=sanimebob(useBWDIF=true, FastNnediHBD=true),Sharpness=0,tr2=2,ESearchP=true, Refinemotion=true, fastma=true)
sAnimeDeblend(hqbob=true)
which produces the same issue (as well as makes panning shots less smooth overall).
Finally, I've tried this one you suggested + many of the other filters I've been using to correct other issues
LWLibavVideoSource("logh_d2_ep5_clip.mkv")
AssumeTFF()
SeparateFields()
ConvertBits(8,dither=1)
Weave()
stgmc(tr0=-2,useEdiExt=1,EdiExt=sanimebob(useBWDIF=true, FastNnediHBD=true),Sharpness=0,tr2=5, Refinemotion=true, fastma=true)
sAnimeDeblend(hqbob=true)
FFT3DFilter(bt=1, plane=3)
dehalo_alpha_mt(rx=2.5, ry=2.5, BrightStr=0.4,DarkStr=0.0, highsens = 20)
dehalo_alpha_mt(BrightStr=0.0,DarkStr=0.4)
crop(8,4,-10,-2)
Spline64Resize(640, 480, src_left=0, src_top=0, src_width=0, src_height=0)and this has been the best so far, but the bottom third of the following shot suffers from the jerkiness issue instead:
https://drive.google.com/file/d/1B_H3VCNscoa3EPJNALllfk6sZujbcdO_/view?usp=sharing
Thank you for the tremendous help you've already given!
real.finder
14th November 2021, 21:02
first, you don't need
SeparateFields()
ConvertBits(8,dither=1)
Weave()
if you use FastNnediHBD method
Second, did you note the problem with my encode? https://www.solidfiles.com/v/2dQXq6wxBqKKX if yes then it can't be helped, you can't fix all problems in sources like this one, if no then you have some old plugin or avsi or problems in the autoload folder (Duplicate filters, for example)
Blackout_Out
16th November 2021, 11:28
first, you don't need
SeparateFields()
ConvertBits(8,dither=1)
Weave()
if you use FastNnediHBD method
Second, did you note the problem with my encode? https://www.solidfiles.com/v/2dQXq6wxBqKKX if yes then it can't be helped, you can't fix all problems in sources like this one, if no then you have some old plugin or avsi or problems in the autoload folder (Duplicate filters, for example)
Yes, your encode is perfect! I tried emptying my plugins folder and then adding 1) the scripts you linked to and then 2) one-by-one as I had need, but that did not work.
Either way, in the worst case, I can just replaced the bad shots will a non-deblended encode, so once again, you have my immense thank you for your help and the script!
real.finder
16th November 2021, 20:33
Yes, your encode is perfect! I tried emptying my plugins folder and then adding 1) the scripts you linked to and then 2) one-by-one as I had need, but that did not work.
Either way, in the worst case, I can just replaced the bad shots will a non-deblended encode, so once again, you have my immense thank you for your help and the script!
you can try my plugins packs https://forum.doom9.org/showthread.php?t=181989
Blackout_Out
18th November 2021, 03:39
you can try my plugins packs https://forum.doom9.org/showthread.php?t=181989
I will definitely check this out; thank you!
Blackout_Out
20th November 2021, 21:19
Unfortunately, I was unable to solve that particular issue. I think it'd be asking too much to request a copy of your entire Avisynth folder (especially given as much help as you've lended already). Either in the future I'll investigate the issue further once less fatigued, or in the worst case, I'll just patch up any problematic shots with a different encode with different settings.
I cannot thank you enough @real.finder for your help!
Terka
22nd November 2021, 15:17
isnt it just shifted chroma between frames?
separate luma and chroma and delete (or add) one frame on luma?
LigH
28th November 2021, 19:35
Has STGMC been introduced publicly somewhere?
poisondeathray
28th November 2021, 22:39
Has STGMC been introduced publicly somewhere?
https://github.com/realfinder/AVS-Stuff/blob/Community/avs%202.6%20and%20up/STGMC.avsi
LigH
29th November 2021, 00:23
Yes, there is the source.
But any documentation what is new, what is different compared to QTGMC?
So far I could only guess that it uses new features of AviSynth+ to avoid some plugins?
kedautinh12
29th November 2021, 03:44
Yes, there is the source.
But any documentation what is new, what is different compared to QTGMC?
So far I could only guess that it uses new features of AviSynth+ to avoid some plugins?
QTGMC of Dogway drop support avs 2.6. real.finder change name for still continue support avs 2.6
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.