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
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 24th December 2020, 00:51   #1  |  Link
baka1
baka1
 
Join Date: May 2020
Posts: 31
Rainbowing, Deblocking and Vertical Shimmering

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.
baka1 is offline   Reply With Quote
Old 24th December 2020, 03:08   #2  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,156
Can you test with ASTDR??
https://raw.githubusercontent.com/re...0up/ASTDR.avsi
kedautinh12 is offline   Reply With Quote
Old 24th December 2020, 07:35   #3  |  Link
baka1
baka1
 
Join Date: May 2020
Posts: 31
Quote:
Originally Posted by kedautinh12 View Post
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.
Attached Images
     

Last edited by baka1; 25th December 2020 at 23:04.
baka1 is offline   Reply With Quote
Old 16th May 2021, 02:38   #4  |  Link
baka1
baka1
 
Join Date: May 2020
Posts: 31
Two sets of examples with vertical shimmering. First set is evident on the lines of the table on bottom right.




Second set (extract here: https://mega.nz/folder/fHwAWJiK#CqfN.../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.


baka1 is offline   Reply With Quote
Old 16th May 2021, 04:45   #5  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,156
Quote:
Originally Posted by baka1 View Post
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/AviSynthPlu...bbyRain2_.avsi
kedautinh12 is offline   Reply With Quote
Old 16th May 2021, 04:46   #6  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,156
Where were you downloaded deStripe???
kedautinh12 is offline   Reply With Quote
Old 16th May 2021, 05:13   #7  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Destripe Script:- https://forum.doom9.org/showthread.p...76#post1408276

Destripe dll:
Japanese:- https://sites.google.com/site/anibinmidori/destripe
Google Translate:- https://translate.google.com/transla...idori/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/transla...idori/destripe

EDIT: The script with dll and source, with parts translated to Eng
Code:
#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.
__________________
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; 16th May 2021 at 05:30.
StainlessS is offline   Reply With Quote
Old 16th May 2021, 05:23   #8  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,156
Thanks, but can you have x64 ver??
kedautinh12 is offline   Reply With Quote
Old 16th May 2021, 05:34   #9  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
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)
__________________
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 ???
StainlessS is offline   Reply With Quote
Old 16th May 2021, 05:41   #10  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
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.p...15#post1689615
__________________
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; 16th May 2021 at 05:46.
StainlessS is offline   Reply With Quote
Old 16th May 2021, 05:58   #11  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,156
Thanks
kedautinh12 is offline   Reply With Quote
Old 16th May 2021, 06:05   #12  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,666
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.
Reel.Deel is offline   Reply With Quote
Old 16th May 2021, 06:14   #13  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Here is the text file from one of the zips, it previously resisted googles Online Translate,
but now it works.

Code:
------------------------------------------------------------------------

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
__________________
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 ???
StainlessS is offline   Reply With Quote
Old 16th May 2021, 07:05   #14  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,156
Quote:
Originally Posted by Reel.Deel View Post
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

Quote:
Originally Posted by baka1 View Post
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.

Last edited by kedautinh12; 16th May 2021 at 09:01.
kedautinh12 is offline   Reply With Quote
Old 16th May 2021, 07:07   #15  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,156
Quote:
Originally Posted by StainlessS View Post
Here is the text file from one of the zips, it previously resisted googles Online Translate,
but now it works.

Code:
------------------------------------------------------------------------

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
kedautinh12 is offline   Reply With Quote
Old 16th May 2021, 07:21   #16  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
Quote:
Originally Posted by baka1 View Post
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-St...RF_Shared.avsi

as I said before 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
Code:
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

Code:
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

Code:
SeparateFields()
LUTComb()
Weave()
qtgmc
Code:
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)
__________________
See My Avisynth Stuff

Last edited by real.finder; 16th May 2021 at 09:23.
real.finder is offline   Reply With Quote
Old 16th May 2021, 13:23   #17  |  Link
baka1
baka1
 
Join Date: May 2020
Posts: 31
Quote:
Originally Posted by real.finder View Post
Code:
scomb(ntsccombmask=true) #Spatio-Temporal fix
qtgmc
This make the script hang for some reason and forced to end session.

Code:
sdwcomp=DotKills(iterations=4).Rainbow_Smooth2(5,200)
Cannot find Rainbow_Smooth2
Code:
#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.

baka1 is offline   Reply With Quote
Old 16th May 2021, 13:49   #18  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,156
Rainbow_Smooth in here
https://github.com/Asd-g/AviSynthPlus-Scripts
kedautinh12 is offline   Reply With Quote
Old 16th May 2021, 16:49   #19  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
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

Code:
tcomb()
scomb(ntsccombmask=true)
qtgmc()
LUTComb()
DotKills(iterations=4)
Rainbow_Smooth2()
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Reply


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 04:26.


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