View Full Version : Rainbowing, Deblocking and Vertical Shimmering
baka1
24th December 2020, 00:51
https://mega.nz/folder/fHwAWJiK#CqfNEtjtRPo1BgqikTn5aQ
In the first two clips - there are rainbowing effects on the roof and the man's suit.
I tried using DFMDeRainbow but it doesn't seem to work even with settings cranked up.
For the third clip - the blue files holder seems to have a vertical shimmering affect - that stays there even after deinterlacing (a video can't be both deinterlaced horizontally and vertically right?)
Maybe it's the age of the video - I'm still finding blockiness on edges especially (people's faces and shirt collars) and Deblock doesn't seem to help smooth it out.
kedautinh12
24th December 2020, 03:08
Can you test with ASTDR??
https://raw.githubusercontent.com/realfinder/AVS-Stuff/master/avs%202.5%20and%20up/ASTDR.avsi
baka1
24th December 2020, 07:35
Can you test with ASTDR??
https://raw.githubusercontent.com/realfinder/AVS-Stuff/master/avs%202.5%20and%20up/ASTDR.avsi
Yep - tho one of the functions called for sneo_FFT3D filter - had to remove the s to make it work. Removed in line 28 - apparently it's also in line 70 - but cannot find the reference to it in the MC-version.
I've uploaded 3 sets of images to the original folder. So ASTDR works pretty well in removing most of the rainbowing - but in the scene where a beach ball is thrown around - it creates ghost images of the ball. I guess it'd have to be selectively used.
Yet to solve for vertical shimmering.
Edit: ADSTR doesn't seem to work very well with scene changes - see the 5 new images uploaded.
baka1
16th May 2021, 02:38
Two sets of examples with vertical shimmering. First set is evident on the lines of the table on bottom right.
https://i.slow.pics/vQlBX2lj.pnghttps://i.slow.pics/v7UghzWb.png
https://i.slow.pics/Vl10wfJf.pnghttps://i.slow.pics/3MfoTvZ0.png
Second set (extract here: https://mega.nz/folder/fHwAWJiK#CqfNEtjtRPo1BgqikTn5aQ/file/3Gxg2LbQ) - I first notice it on the folders - bit it seems to plague every horizontal line with alternating vertical jitters.
I don't get the underlying cause of these jitters so I can't figure out what script to use to fix it. Last pic is frame 37274 with DeStripe applied. Although it does remove the jitters on the pages on the bottom right - it seems like a softening filter has been applied throughout.
https://i.slow.pics/TbRvbyk0.pnghttps://i.slow.pics/MWtfJTSN.png
https://i.slow.pics/8f0jX7Qs.pnghttps://i.slow.pics/gLwOIwwh.png
https://i.slow.pics/8sCcof9m.png
kedautinh12
16th May 2021, 04:45
Yep - tho one of the functions called for sneo_FFT3D filter - had to remove the s to make it work. Removed in line 28 - apparently it's also in line 70 - but cannot find the reference to it in the MC-version.
I've uploaded 3 sets of images to the original folder. So ASTDR works pretty well in removing most of the rainbowing - but in the scene where a beach ball is thrown around - it creates ghost images of the ball. I guess it'd have to be selectively used.
Yet to solve for vertical shimmering.
Edit: ADSTR doesn't seem to work very well with scene changes - see the 5 new images uploaded.
You can test Chubbyrain2 for derainbow
https://github.com/Asd-g/AviSynthPlus-Scripts/blob/master/ChubbyRain2_.avsi
kedautinh12
16th May 2021, 04:46
Where were you downloaded deStripe???
StainlessS
16th May 2021, 05:13
Destripe Script:- https://forum.doom9.org/showthread.php?p=1408276#post1408276
Destripe dll:
Japanese:- https://sites.google.com/site/anibinmidori/destripe
Google Translate:- https://translate.google.com/translate?tl=en-GB&u=https://sites.google.com/site/anibinmidori/destripe
1st link at above page.
Destripe_03nod.zip has just dll [CullResize.dll]
2nd link,
has dll, destripe script and source code. [script not same as first link at top of post]
And also txt file in Japanese.
Article linked by above Japanese link:- https://translate.google.com/translate?tl=en-GB&u=https://sites.google.com/site/anibinmidori/destripe
EDIT: The script with dll and source, with parts translated to Eng
#With DLL Destripe ver 0.3
Need to be fixed if # Destripe.avs (this file) and CullResize.dll are placed in different locations
LoadPlugin ("CullResize.dll")
function Destripe (clip clip, int "hh", int "rt", int "sft1", int "sft2", int "addb", int "mode") {
addb = default (addb, 0)
mode = default (mode, 1)
Assert (hh> = 1 && hh <= 2048, "hh is 1 to 2048")
Assert (rt> = 1 && rt <= 64, "rt is 1-64")
Assert (sft1> = (-rt * 4) && sft1 <= (rt * 4), "sft1 range error")
Assert (sft2> = (-rt * 4) && sft2 <= (rt * 4), "sft2 range error")
Assert (addb> = 0 && addb <= 256 && (addb% 2) == 0, "addb is an even number between 0 and 256")
Assert (mode> =-158 && mode <= 100, "mode is -158-100")
w = clip.width ()
c = ((addb == 0)? clip: clip.AddBorders (0, 0, 0, addb)). Separatefields ()
ve = c.SelectEven ()
vo = c.SelectOdd ()
ve = (mode == 0)? ve.CullBicubicResize (w, hh, scale = rt, phase = -rt + sft1) :(
\ (mode == 1)? ve.CullSpline36Resize (w, hh, scale = rt, phase = -rt + sft1) :(
\ ve.blur (0,-(float (mode) / 100.0)). CullSpline36Resize (w, hh, scale = rt, phase = -rt + sft1)))
vo = (mode == 0)? vo.CullBicubicResize (w, hh, scale = rt, phase = -rt + sft2) :(
\ (mode == 1)? vo.CullSpline36Resize (w, hh, scale = rt, phase = -rt + sft2) :(
\ vo.blur (0,-(float (mode) / 100.0)). CullSpline36Resize (w, hh, scale = rt, phase = -rt + sft2)))
return Interleave (ve, vo). Weave ()
}
function TestDestripe(clip clip, int "hh", int "rt", int "sft1", int "sft2", int "addb", int "mode") {
addb = default(addb, 0)
mode = default(mode, 1)
setinfo = String(hh)+" "+String(rt)+" "+String(sft1)+" "+String(sft2)
setinfo = (addb != 0) ? (setinfo + " +" + String(addb)) : setinfo
setinfo = (mode != 1) ? (setinfo + " m" + String(mode)) : setinfo
return Interleave(
\ clip.AddBorders(0, 0, 0, addb).
\ SubTitle("Original", size=32, align=5),
\ clip.Destripe(hh, rt, sft1, sft2, addb, mode).
\ Lanczos4Resize(clip.Width(), clip.Height() + addb).
\ SubTitle("Destripe " + setinfo, size=32, align=5))
}
function Zoom2(clip clip) {
w = clip.Width()
h = clip.Height()
return clip.PointResize(w, h, w / 4, h / 4, w / 2, h / 2)
}
EDIT: The text file resists google tranlate.
kedautinh12
16th May 2021, 05:23
Thanks, but can you have x64 ver??
StainlessS
16th May 2021, 05:34
If you're talking about the dll code, it has lots of assembler in it, so I cant do it.
(if that is the destripe that baka1 uses)
StainlessS
16th May 2021, 05:41
CullResize-0.1.7z on SendSpace [see my sig below this post].
x86 and x64
(the earlier link was for v0.3, x86 only)
EDIT: Seems that Reel.Deel has used this plugin, maybe he has found more recent x64 version.
https://forum.doom9.org/showthread.php?p=1689615#post1689615
kedautinh12
16th May 2021, 05:58
Thanks
Reel.Deel
16th May 2021, 06:05
x64 CullResize is here: https://github.com/DJATOM/CullResize
But, I'm not sure why kedautinh12 is suggesting that. CullResize is for a particular cross-conversion issue that baka's sample does not have. Baka's sample contains both rainbows and dotcrawl, since the footage is interlaced, running it thru QTGMC does a decent job with the dotcrawl and helps a bit with the rainbow. I think a better result can be attained if QTGMC is provided with a pre-filtered clip, either as the input or via the EdiExt option. There's also a few plugins for dealing with dotcrawl and rainbows listed on the wiki, try processing the clip with said tools before feeding it to QTGMC.
StainlessS
16th May 2021, 06:14
Here is the text file from one of the zips, it previously resisted googles Online Translate,
but now it works.
------------------------------------------------------------------------
Destripe package (test version)
Distribution URL
http://sites.google.com/site/anibinmidori/destripe
------------------------------------------------------------------------
This package is
CullResize.dll
Destripe.avs
Destripe.txt
src.zip
resample.cpp
resample_functions.cpp
resample.h
resample_functions.h
It consists of.
The files included in src.zip are 4 files in the source of avisynth 2.5.8 main body.
It is a modified version with the same name.
In dll creation, another SplineResize_v01 file is used.
------------------------------------------------------------------------
Installation
-Copy CullResize.dll to the plugin folder
-Copy Destripe.avs to an appropriate folder
-Added the folder where CullResize.dll is placed to LoadPlugin of Destripe.avs.
-Import Destripe.avs with import ("location \ Destripe.avs")
Or copy and paste only the necessary part in Destripe.avs etc.
Feel free to change it according to the actual environment.
Other required files
msvcr80.dll
For the msvcr80.dll unnecessary version (large size), only the dll is distributed separately.
------------------------------------------------------------------------
Destripe about
For the functions and settings, see the article on measures against stripes on the bottle.
http://anibin.blogspot.com/search/label/%E7%B8%9E%E7%B8%9E%E5%AF%BE%E7%AD%96
------------------------------------------------------------------------
CullResize.dll about
Destripe processing can be realized only by combining avisynth's internal filters,
If rt = 10 is specified, it will be expanded to a huge size.
Calculate for pixels 10 times the target size and discard 90% of the data
It is a wasteful process.
The filter in CullResize.dll eliminates the waste and calculates only the necessary part.
This is a modified version of avisynth's built-in resizing filter to achieve the same result.
The explanation about the filter in the dll will be described when the next version or later is released.
------------------------------------------------------------------------
change history
v0.3 (11/17/2009) Public test first edition
kedautinh12
16th May 2021, 07:05
x64 CullResize is here: https://github.com/DJATOM/CullResize
But, I'm not sure why kedautinh12 is suggesting that. CullResize is for a particular cross-conversion issue that baka's sample does not have.
I don't suggesting that and baka1's last pic used DeStripe script. I don't have it so i asked him link download
Last pic is frame 37274 with DeStripe applied. Although it does remove the jitters on the pages on the bottom right - it seems like a softening filter has been applied throughout.
kedautinh12
16th May 2021, 07:07
Here is the text file from one of the zips, it previously resisted googles Online Translate,
but now it works.
------------------------------------------------------------------------
Destripe package (test version)
Distribution URL
http://sites.google.com/site/anibinmidori/destripe
------------------------------------------------------------------------
This package is
CullResize.dll
Destripe.avs
Destripe.txt
src.zip
resample.cpp
resample_functions.cpp
resample.h
resample_functions.h
It consists of.
The files included in src.zip are 4 files in the source of avisynth 2.5.8 main body.
It is a modified version with the same name.
In dll creation, another SplineResize_v01 file is used.
------------------------------------------------------------------------
Installation
-Copy CullResize.dll to the plugin folder
-Copy Destripe.avs to an appropriate folder
-Added the folder where CullResize.dll is placed to LoadPlugin of Destripe.avs.
-Import Destripe.avs with import ("location \ Destripe.avs")
Or copy and paste only the necessary part in Destripe.avs etc.
Feel free to change it according to the actual environment.
Other required files
msvcr80.dll
For the msvcr80.dll unnecessary version (large size), only the dll is distributed separately.
------------------------------------------------------------------------
Destripe about
For the functions and settings, see the article on measures against stripes on the bottle.
http://anibin.blogspot.com/search/label/%E7%B8%9E%E7%B8%9E%E5%AF%BE%E7%AD%96
------------------------------------------------------------------------
CullResize.dll about
Destripe processing can be realized only by combining avisynth's internal filters,
If rt = 10 is specified, it will be expanded to a huge size.
Calculate for pixels 10 times the target size and discard 90% of the data
It is a wasteful process.
The filter in CullResize.dll eliminates the waste and calculates only the necessary part.
This is a modified version of avisynth's built-in resizing filter to achieve the same result.
The explanation about the filter in the dll will be described when the next version or later is released.
------------------------------------------------------------------------
change history
v0.3 (11/17/2009) Public test first edition
Thank StainlessS
real.finder
16th May 2021, 07:21
Yep - tho one of the functions called for sneo_FFT3D filter - had to remove the s to make it work. Removed in line 28
you need https://github.com/realfinder/AVS-Stuff/blob/master/avs%202.5%20and%20up/Zs_RF_Shared.avsi
as I said before (https://forum.doom9.org/showpost.php?p=1665492&postcount=27) ASTDR default values may be high, ASTDR(3,15,2,FluxStv=30,edgem=true) should be enough and without noticeable artifacts or use ASTDRmc
anyway for even more less Temporal artifacts if you don't mind some blur and low speed
scomb(ntsccombmask=true) #Spatio-Temporal fix
qtgmc
as said qtgmc can help in Rainbow & Dot Crawl Removal, if you don't like use qtgmc then you can try SMDegrain after deinterlacer
sdwcomp=DotKills(iterations=4).Rainbow_Smooth2(5,200)
smdc=SMDegrain(1,1000,1000,true, mfilter=sdwcomp,subpixel=3,amp=2,prefilter=sdwcomp.expr("x 0.5 * 0.125 x x[0,-1] - abs 32 scaleb > x x[0,-1] > x 32 scaleb + x 32 scaleb - ? x[0,-1] ? * + 0.125 x x[0,1] - abs 32 scaleb > x x[0,1] > x 32 scaleb + x 32 scaleb - ? x[0,1] ? * + 0.125 x x[-2,0] - abs 32 scaleb > x x[-2,0] > x 32 scaleb + x 32 scaleb - ? x[-2,0] ? * + 0.125 x x[2,0] - abs 32 scaleb > x x[2,0] > x 32 scaleb + x 32 scaleb - ? x[2,0] ? * +").sGConvolution("-1 2 -1 2 0 2 -1 2 -1",chroma=true)) #expr line made as imitation to https://web.archive.org/web/20150602063631/http://home.earthlink.net/~tacosalad/video/dotcrawl.html and sGConvolution from https://forum.doom9.org/showpost.php?p=1751654&postcount=5
mt_merge(last,smdc,scombmask,u=3,v=3)
mt_merge(last,smdc,scombmask,u=3,v=3)
or for pure Temporal fix try one of
SeparateFields()
LUTComb()
Weave()
qtgmc
qtgmc
LUTComb()
but they can make some Temporal artifacts
also there are many new things and updates for Rainbow & Dot Crawl Removal filters here https://github.com/Asd-g?tab=repositories (as side note: vsCnr2 can be used for remove Rainbow)
baka1
16th May 2021, 13:23
scomb(ntsccombmask=true) #Spatio-Temporal fix
qtgmc
This make the script hang for some reason and forced to end session.
sdwcomp=DotKills(iterations=4).Rainbow_Smooth2(5,200)
Cannot find Rainbow_Smooth2
#scomb(ntsccombmask=true) #Spatio-Temporal fix
#~ SeparateFields()
#~ LUTComb()
#~ Weave()
Yadifmod2()
#DotKills(iterations=4)
sdwcomp=DotKills(iterations=4)
smdc=SMDegrain(1,1000,1000,true, mfilter=sdwcomp,subpixel=3,amp=2,prefilter=sdwcomp.expr("x 0.5 * 0.125 x x[0,-1] - abs 32 scaleb > x x[0,-1] > x 32 scaleb + x 32 scaleb - ? x[0,-1] ? * + 0.125 x x[0,1] - abs 32 scaleb > x x[0,1] > x 32 scaleb + x 32 scaleb - ? x[0,1] ? * + 0.125 x x[-2,0] - abs 32 scaleb > x x[-2,0] > x 32 scaleb + x 32 scaleb - ? x[-2,0] ? * + 0.125 x x[2,0] - abs 32 scaleb > x x[2,0] > x 32 scaleb + x 32 scaleb - ? x[2,0] ? * +").sGConvolution("-1 2 -1 2 0 2 -1 2 -1",chroma=true)) #expr line made as imitation to https://web.archive.org/web/20150602063631/http://home.earthlink.net/~tacosalad/video/dotcrawl.html and sGConvolution from https://forum.doom9.org/showpost.php?p=1751654&postcount=5
mt_merge(last,smdc,scombmask,u=3,v=3)
mt_merge(last,smdc,scombmask,u=3,v=3)
srestore(23.976)
Top pic is everything above + uncommented LUTComb - bottom is LUTComb removed - the only real difference I could see is extra dots on top of the blue folder holder removed.
https://i.slow.pics/ZFPaXe1w.png
https://i.slow.pics/VIln1xRz.png
kedautinh12
16th May 2021, 13:49
Rainbow_Smooth in here
https://github.com/Asd-g/AviSynthPlus-Scripts
real.finder
16th May 2021, 16:49
make sure that you are uptodate and don't have old Duplicate plugins or scripts
also your source are 60i, why use srestore?
you can also try
tcomb()
scomb(ntsccombmask=true)
qtgmc()
LUTComb()
DotKills(iterations=4)
Rainbow_Smooth2()
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.