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 3rd February 2022, 05:45   #1  |  Link
ABurns
Registered User
 
ABurns's Avatar
 
Join Date: Aug 2017
Posts: 56
Copying chroma at scene change?

I'm working with some VHS captures that have a couple of different problems at scene changes. The last frame before the scene change has a discoloration at the bottom that I think might be from the physical film print where it was glued, taped, or something similar. It doesn't happen on every change, but it's on a vast majority. See example below.



Then after the scene change, the chroma gets smeared (for lack of a better word) for the first 1-2 frames of the new scene. Sometimes there is a big difference in tint or saturation that clears up, and sometimes it's just smeared and nasty looking. Example below.



As far as I can tell, it's just the chroma that's affected. I really don't want to do frame replacement because that will create a noticeable stutter on action scenes, and I haven't been able to find anything that can interpolate new frames without having both a previous and next keyframe, which obviously doesn't work at a scene change. Then I started looking for a way to just copy the chroma from the adjacent frame because it should be close enough I can get away with it, something like MergeChroma(source frame, target frame) but that doesn't appear to exist either.

So I'm at a loss what to do with these frames. The luma is perfectly good and they should be salvageable, but I'm out of ideas. Any suggestions?
ABurns is offline   Reply With Quote
Old 3rd February 2022, 06:55   #2  |  Link
poisondeathray
Registered User
 
Join Date: Sep 2007
Posts: 5,377
Quote:
Originally Posted by ABurns View Post
As far as I can tell, it's just the chroma that's affected.

The problem affects Y channel too - You can check with ExtractY()
poisondeathray is offline   Reply With Quote
Old 3rd February 2022, 19:24   #3  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
You could try MCompensate. Re-create the frame using the next frame (or previous, depending on which side of the scene change you are). Then replace original chroma with the chroma of the re-created frame. It might work even if it's not perfect because our eyes are not very sensitive to small chroma deviations.
zorr is offline   Reply With Quote
Old 3rd February 2022, 20:18   #4  |  Link
ABurns
Registered User
 
ABurns's Avatar
 
Join Date: Aug 2017
Posts: 56
Quote:
Originally Posted by zorr View Post
You could try MCompensate. Re-create the frame using the next frame (or previous, depending on which side of the scene change you are). Then replace original chroma with the chroma of the re-created frame. It might work even if it's not perfect because our eyes are not very sensitive to small chroma deviations.
That sounds feasible if I can get it to work. I'm afraid MVTools is a bit above my pay grade, as I've never really understood its toolbox. What might that function look like?
ABurns is offline   Reply With Quote
Old 4th February 2022, 23:23   #5  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
Quote:
Originally Posted by ABurns View Post
That sounds feasible if I can get it to work. I'm afraid MVTools is a bit above my pay grade, as I've never really understood its toolbox. What might that function look like?
Here's a simple script to demonstrate the concept. It's taking the chroma from the next frame (use fwd1 in MCompensate instead of bak1 to get chroma from the previous frame). Final output has the original frame, mixed frame (luma from current and chroma from next frame) and the MCompensated frame.

This would still need the logic to only apply the correction after a scene change.

Note that the functions are used with default values so they are not in any way optimal, you can get much better MCompensated frames with the right settings. If you provide a short clip with typical motion (also those action scenes) I could try to find optimal settings with Zopti.

Code:
FFVideoSource("clip.avi")
src=last
pre=last

superfilt = MSuper(pre)
superR   = MSuper(src)
bak1 = MAnalyse(superfilt, isb=true,  delta=1)
fwd1 = MAnalyse(superfilt, isb=false, delta=1)

MCompensate(superR, bak1, scbehavior=false, thSCD1=10000)
mix = MergeChroma(src, last)
return Interleave(src, mix, last)
zorr is offline   Reply With Quote
Old 5th February 2022, 00:37   #6  |  Link
ABurns
Registered User
 
ABurns's Avatar
 
Join Date: Aug 2017
Posts: 56
Here are a couple of clips in prores422.

https://www.dropbox.com/s/vuli5oz7il...ample.mov?dl=0

https://www.dropbox.com/s/f2bvp8f4es...mple2.mov?dl=0
ABurns is offline   Reply With Quote
Old 6th February 2022, 23:03   #7  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
Quote:
Originally Posted by ABurns View Post
Here are a couple of clips in prores422.
Thanks, I have started a test run using the first clip. The second one has some frames with bad chroma data (spider man's red outfit is shown over pillars even though he's behind them). The night scenes however are a good test case as they may require different set of optimal paramers. I'll do a second test for the night scene as well, sections with bad chroma removed.
zorr is offline   Reply With Quote
Old 7th February 2022, 06:16   #8  |  Link
ABurns
Registered User
 
ABurns's Avatar
 
Join Date: Aug 2017
Posts: 56
Quote:
Originally Posted by zorr View Post
Thanks, I have started a test run using the first clip. The second one has some frames with bad chroma data (spider man's red outfit is shown over pillars even though he's behind them). The night scenes however are a good test case as they may require different set of optimal paramers. I'll do a second test for the night scene as well, sections with bad chroma removed.
Thanks, much appreciated!
ABurns is offline   Reply With Quote
Old 12th February 2022, 00:25   #9  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
All right, got the results. I did a pretty comprehensive Zopti search with about 134k results (and a total of 58k results in three earlier script variations) using dynamic iteration count.

The result landscape looks like this. Here all results:



Zoomed to top 70% of results:



And finally the top 30%



Below the script with the best GMSD score which outputs the original frame and a fixed frame where chroma is taken from the MCompensated next frame. Note that this works for frames just after a scene change, for frames before scene change you need to take the chroma from the previous frame (just comment the line with # from next frame and uncomment the line with # from prev frame). Thanks to Dogway for the script template, I used his MDegrain script as the base.

Code:
FFVideoSource("sample.mov")
#FFVideoSource("sample2.mov")

#pre = FFVideoSource("mcompensate_prev-pre.avi")
frames = FrameCount()
#return last

src=last

thSADR = 50         # optimize thSADR = _n_ | 0..200 ; filter:x 10 % 0 == | thSADR
BlkSize = 16
BlkSizeR = 8
overlap = 4
overlapR = 4
pel = 1
sharp = 2            #NO optimize sharp = _n_ | 2 | sharp
scaleCSAD = 2
trymany = false
truemotion  = false  #NO optimize truemotion  = _n_ | true,false | truemotion
truemotionR = false  #NO optimize truemotionR = _n_ | false,true | truemotionR
temporal = false      # optimize temporal = _n_ | true,false | temporal


# Settings that depend on source noise
# lsad  the noisier the lower
# sigma the noisier the higher
# badSAD

# TRUEMOTION SETTINGS
lambda = 270         # optimize lambda = _n_ | 0..300 ; filter:x 10 % 0 == | lambda
# lambdaR normally optimizes between 1.6 and 2.0 times lambda
lambdaR = 0       # optimize lambdaR = _n_ | 0..200 ; filter:x 20 % 0 == | lambdaR
# pnew: Default is 0 for truemotion = false and 50 for truemotion = true.
pnew = 4           # optimize pnew = _n_ | 0..80 ; filter:x 2 % 0 == | pnew
pnewR = 0          # optimize pnewR = _n_ | 0..50 ; filter:x 2 % 0 == | pnewR
# lambda is not used when pzero is 0 (zero vector)
# there's a relationship between pzero and searchRangeR (and searchRangeR with searchRangeFinest)
pzero = 176          # optimize pzero = _n_ | 0..200 ; filter:x 2 % 0 == | pzero
lsad = 21          # optimize lsad = _n_ | 1..1000 ; filter:x 1 - 10 % 0 == | lsad
# plevel: Default is 0 for truemotion = false and 50 for truemotion = true
plevel = 59          # optimize plevel = _n_ | 1..200 ; filter:x 2 % 0 != | plevel
lvl = 1              # typically plevel is set same as level

# lambda is not used for global predictor
pglobal = 5          # optimize pglobal = _n_ | 0..40 | pglobal

badrange = 144         # optimize badrange = _n_ | 0..150 ; filter:x 2 % 0 == | badrange
badSAD = 0        # optimize badSAD = _n_ | 0..500 ; filter:x 50 % 0 == | badSAD
dct = 0              #NO optimize dct = _n_ | 0 | dct
dctre = 0            # optimize dctre = _n_ | 0,6,7,9 | dctre
rfilter = 3
searchAlgo = 1       #NO optimize searchAlgo = _n_ | 1 | searchAlgo
searchAlgoR = 5      # optimize searchAlgoR = _n_ | 0,1,2,4,5 | searchAlgoR
searchRange = 4     # optimize searchRange = _n_ | 1..20 | searchRange
searchRangeR = 60     # optimize searchRangeR = _n_ | 2..60 | searchRangeR
searchRangeFinest = 10# optimize searchRangeFinest = _n_ | 9..30 | searchRangeFinest
sglobal = true       # optimize sglobal = _n_ | true,false | sglobal


C=ConvertBits(16,fulls=false)
pre=C.ex_FluxSmoothST(2,2,255,0,false,UV=3).ex_Luma_Rebuild(s0=3,tv_range=true).ConvertBits(8,dither=-1,fulls=true)
#return pre

Recalculate=true


superfilt = MSuper(pre, hpad=16, vpad=16,             sharp=sharp, rfilter=rfilter, pel=pel, mt=false)
superR    = MSuper(C,   hpad=16, vpad=16, levels=lvl, sharp=sharp, rfilter=rfilter, pel=pel, mt=false, chroma=true)
superRe   = MSuper(pre, hpad=16, vpad=16, levels=lvl, sharp=sharp, rfilter=rfilter, pel=pel, mt=false)
bak1 =            MAnalyse(superfilt, isb=true,  delta=1, blksize=BlkSize, overlap = overlap, search=searchAlgo, searchparam=searchRange, pelsearch=searchRangeFinest, dct=dct, mt=false, scaleCSAD=scaleCSAD, pnew=pnew, pzero=pzero, truemotion=truemotion, badSAD=badSAD, badrange=badrange, temporal=temporal,lsad=lsad, lambda=lambda, pglobal=pglobal, plevel=plevel, trymany=trymany, global=sglobal)
fwd1 =            MAnalyse(superfilt, isb=false, delta=1, blksize=BlkSize, overlap = overlap, search=searchAlgo, searchparam=searchRange, pelsearch=searchRangeFinest, dct=dct, mt=false, scaleCSAD=scaleCSAD, pnew=pnew, pzero=pzero, truemotion=truemotion, badSAD=badSAD, badrange=badrange, temporal=temporal,lsad=lsad, lambda=lambda, pglobal=pglobal, plevel=plevel, trymany=trymany, global=sglobal)
bak1 = Recalculate ? MRecalculate(superRe,  bak1, blksize=BlkSizeR, overlap = overlapR, search=searchAlgoR, searchparam=searchRangeR, dct=dctre, mt=false, scaleCSAD=scaleCSAD,  pnew=pnewR, thSAD=thSADR, truemotion=truemotionR, lambda=lambdaR) : bak
fwd1 = Recalculate ? MRecalculate(superRe,  fwd1, blksize=BlkSizeR, overlap = overlapR, search=searchAlgoR, searchparam=searchRangeR, dct=dctre, mt=false, scaleCSAD=scaleCSAD, pnew=pnewR , thSAD=thSADR, truemotion=truemotionR, lambda=lambdaR) : fwd

C.MCompensate(superR, bak1, mt=false, thSCD1=10000) # from next frame
#C.MCompensate(superR, fwd1, mt=false, thSCD1=10000) # from prev frame

#mix = MergeChroma(C, last)
#return Interleave(C, mix, last).Histogram("levels")

output = last.ConvertBits(10,fulls=true)
mix = MergeChroma(src, output)
return Interleave(src, mix).Histogram("levels")
return Interleave(src, mix, output).Histogram("levels")
#return last

src = src.Trim(0,176) + src.Trim(180, 281) + src.Trim(286, frames-2)
Trim(0,176) + Trim(180, 281) + Trim(286, frames-2)

resultFile = "perFrameResults.txt"  # output out1="GMSD: MIN(float)" out2="time: MIN(time) ms" file="perFrameResults.txt"

# write the number of frames to tell the optimizer how many result lines to expect
WriteFileStart(resultFile, "FrameCount()")

GMSD(src.ConvertBits(32, fulls=false, fulld=true), ConvertBits(32, fulls=false, fulld=true), show=false)

global GMSD = 0.0
FrameEvaluate(last, """
           GMSD = propGetFloat("_PlaneGMSD")
    global GMSD = (GMSD == 0.0 ? 1.0 : GMSD)
""",local=false)

# measure runtime, plugin writes the value to global avstimer variable
global avstimer = 0.0
AvsTimer(frames=1, type=0, total=false, name="Optimizer")

# per frame logging (GMSD, time)
global delimiter = "; "
WriteFile(resultFile, "current_frame", "delimiter", "GMSD", "delimiter", "avstimer")

#Prefetch(4)
#return Interleave(src.ConvertBits(32, fulls=false, fulld=true), last, C.ConvertBits(32, fulls=false, fulld=true))
return last
More in the next post, this one can't fit more...
zorr is offline   Reply With Quote
Old 12th February 2022, 00:28   #10  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
Here's a list of the pareto front so you can test which settings give a reasonable quality / performance ratio. If you'd rather like to have these in scripts just ask and I'll provide a zip with the scripts.

Code:
  8.494275 47300 thSADR=50 temporal=false lambda=270 lambdaR=0 pnew=4 pnewR=0 pzero=176 lsad=21 plevel=59 pglobal=5 badrange=144 badSAD=0 dctre=0 searchAlgoR=5 searchRange=4 searchRangeR=60 searchRangeFinest=10 sglobal=true
  8.494284 39590 thSADR=50 temporal=false lambda=270 lambdaR=0 pnew=4 pnewR=0 pzero=172 lsad=21 plevel=25 pglobal=5 badrange=144 badSAD=0 dctre=0 searchAlgoR=5 searchRange=4 searchRangeR=60 searchRangeFinest=10 sglobal=true
  8.494494 38820 thSADR=50 temporal=false lambda=250 lambdaR=0 pnew=4 pnewR=0 pzero=168 lsad=21 plevel=33 pglobal=5 badrange=144 badSAD=0 dctre=0 searchAlgoR=5 searchRange=4 searchRangeR=60 searchRangeFinest=10 sglobal=true
  8.49506 37670 thSADR=60 temporal=false lambda=270 lambdaR=0 pnew=4 pnewR=0 pzero=186 lsad=21 plevel=15 pglobal=5 badrange=144 badSAD=0 dctre=0 searchAlgoR=5 searchRange=4 searchRangeR=60 searchRangeFinest=10 sglobal=true
  8.497724 37350 thSADR=60 temporal=false lambda=270 lambdaR=0 pnew=2 pnewR=0 pzero=186 lsad=21 plevel=5 pglobal=5 badrange=144 badSAD=0 dctre=0 searchAlgoR=5 searchRange=4 searchRangeR=60 searchRangeFinest=10 sglobal=true
  8.49956 27370 thSADR=60 temporal=false lambda=300 lambdaR=0 pnew=16 pnewR=0 pzero=166 lsad=21 plevel=43 pglobal=32 badrange=140 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.50107 27200 thSADR=60 temporal=false lambda=300 lambdaR=0 pnew=14 pnewR=0 pzero=170 lsad=21 plevel=71 pglobal=32 badrange=140 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.502786 26780 thSADR=60 temporal=false lambda=300 lambdaR=0 pnew=14 pnewR=0 pzero=150 lsad=21 plevel=89 pglobal=29 badrange=148 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.506109 26500 thSADR=60 temporal=false lambda=270 lambdaR=0 pnew=18 pnewR=0 pzero=150 lsad=21 plevel=93 pglobal=37 badrange=150 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.507681 26040 thSADR=70 temporal=false lambda=270 lambdaR=0 pnew=14 pnewR=0 pzero=146 lsad=21 plevel=101 pglobal=28 badrange=148 badSAD=50 dctre=0 searchAlgoR=5 searchRange=4 searchRangeR=60 searchRangeFinest=9 sglobal=false
  8.508547 24440 thSADR=70 temporal=false lambda=260 lambdaR=0 pnew=14 pnewR=0 pzero=182 lsad=31 plevel=165 pglobal=33 badrange=138 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=11 sglobal=false
  8.508664 24400 thSADR=70 temporal=false lambda=230 lambdaR=0 pnew=14 pnewR=0 pzero=162 lsad=31 plevel=139 pglobal=33 badrange=138 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=11 sglobal=false
  8.518777 22620 thSADR=80 temporal=false lambda=280 lambdaR=0 pnew=18 pnewR=0 pzero=108 lsad=31 plevel=111 pglobal=29 badrange=144 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.518974 22600 thSADR=80 temporal=false lambda=280 lambdaR=0 pnew=18 pnewR=0 pzero=104 lsad=31 plevel=115 pglobal=29 badrange=144 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.519289 22480 thSADR=80 temporal=false lambda=280 lambdaR=0 pnew=18 pnewR=0 pzero=92 lsad=31 plevel=141 pglobal=26 badrange=144 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.531926 22010 thSADR=80 temporal=false lambda=290 lambdaR=0 pnew=10 pnewR=0 pzero=96 lsad=31 plevel=95 pglobal=31 badrange=144 badSAD=200 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.531952 21860 thSADR=80 temporal=false lambda=290 lambdaR=0 pnew=10 pnewR=0 pzero=108 lsad=31 plevel=101 pglobal=31 badrange=144 badSAD=200 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.5332 21830 thSADR=80 temporal=false lambda=280 lambdaR=0 pnew=10 pnewR=0 pzero=96 lsad=31 plevel=105 pglobal=31 badrange=142 badSAD=200 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.5441675 21340 thSADR=90 temporal=false lambda=240 lambdaR=0 pnew=14 pnewR=0 pzero=114 lsad=31 plevel=163 pglobal=15 badrange=142 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=true
  8.545019 21330 thSADR=90 temporal=false lambda=240 lambdaR=0 pnew=14 pnewR=0 pzero=120 lsad=31 plevel=179 pglobal=13 badrange=142 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=true
  8.558075 20940 thSADR=90 temporal=false lambda=140 lambdaR=0 pnew=32 pnewR=0 pzero=130 lsad=11 plevel=49 pglobal=11 badrange=96 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=9 sglobal=false
  8.559597 20770 thSADR=90 temporal=false lambda=200 lambdaR=0 pnew=32 pnewR=4 pzero=154 lsad=111 plevel=147 pglobal=1 badrange=122 badSAD=50 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=60 searchRangeFinest=9 sglobal=false
  8.560876 20610 thSADR=90 temporal=false lambda=210 lambdaR=0 pnew=28 pnewR=4 pzero=164 lsad=101 plevel=147 pglobal=1 badrange=122 badSAD=50 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.564193 20580 thSADR=90 temporal=false lambda=160 lambdaR=0 pnew=20 pnewR=4 pzero=140 lsad=31 plevel=47 pglobal=30 badrange=128 badSAD=200 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.565287 20450 thSADR=90 temporal=false lambda=150 lambdaR=0 pnew=32 pnewR=4 pzero=136 lsad=81 plevel=101 pglobal=21 badrange=144 badSAD=300 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.572844 20370 thSADR=90 temporal=false lambda=140 lambdaR=0 pnew=34 pnewR=4 pzero=170 lsad=41 plevel=63 pglobal=17 badrange=98 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=58 searchRangeFinest=9 sglobal=false
  8.584916 20070 thSADR=100 temporal=false lambda=230 lambdaR=0 pnew=8 pnewR=0 pzero=88 lsad=71 plevel=185 pglobal=16 badrange=146 badSAD=50 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=60 searchRangeFinest=10 sglobal=true
  8.589039 19990 thSADR=100 temporal=false lambda=250 lambdaR=0 pnew=22 pnewR=0 pzero=110 lsad=61 plevel=129 pglobal=10 badrange=134 badSAD=50 dctre=0 searchAlgoR=5 searchRange=4 searchRangeR=60 searchRangeFinest=9 sglobal=true
  8.589318 19440 thSADR=90 temporal=false lambda=240 lambdaR=0 pnew=22 pnewR=0 pzero=90 lsad=31 plevel=163 pglobal=15 badrange=138 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=53 searchRangeFinest=10 sglobal=true
  8.594461 19140 thSADR=100 temporal=false lambda=220 lambdaR=0 pnew=4 pnewR=0 pzero=124 lsad=101 plevel=149 pglobal=10 badrange=134 badSAD=50 dctre=0 searchAlgoR=5 searchRange=4 searchRangeR=60 searchRangeFinest=10 sglobal=true
  8.598893 19070 thSADR=100 temporal=false lambda=260 lambdaR=0 pnew=8 pnewR=0 pzero=120 lsad=161 plevel=167 pglobal=25 badrange=98 badSAD=400 dctre=0 searchAlgoR=5 searchRange=4 searchRangeR=60 searchRangeFinest=11 sglobal=false
  8.606198 19030 thSADR=100 temporal=false lambda=210 lambdaR=0 pnew=8 pnewR=2 pzero=76 lsad=201 plevel=197 pglobal=20 badrange=118 badSAD=250 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=60 searchRangeFinest=12 sglobal=true
  8.606905 18830 thSADR=100 temporal=false lambda=190 lambdaR=0 pnew=8 pnewR=0 pzero=76 lsad=201 plevel=175 pglobal=20 badrange=118 badSAD=250 dctre=0 searchAlgoR=5 searchRange=3 searchRangeR=60 searchRangeFinest=12 sglobal=true
  8.6247225 18220 thSADR=110 temporal=false lambda=240 lambdaR=0 pnew=40 pnewR=4 pzero=184 lsad=111 plevel=153 pglobal=12 badrange=122 badSAD=50 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.632059 18210 thSADR=110 temporal=false lambda=150 lambdaR=0 pnew=14 pnewR=2 pzero=132 lsad=71 plevel=63 pglobal=31 badrange=138 badSAD=300 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.633964 17800 thSADR=110 temporal=false lambda=150 lambdaR=0 pnew=14 pnewR=2 pzero=126 lsad=71 plevel=91 pglobal=31 badrange=138 badSAD=300 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=60 searchRangeFinest=10 sglobal=false
  8.64795 17760 thSADR=110 temporal=false lambda=150 lambdaR=0 pnew=14 pnewR=2 pzero=130 lsad=71 plevel=77 pglobal=31 badrange=138 badSAD=300 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=59 searchRangeFinest=10 sglobal=false
  8.674747 17500 thSADR=110 temporal=false lambda=110 lambdaR=0 pnew=28 pnewR=4 pzero=68 lsad=511 plevel=51 pglobal=20 badrange=128 badSAD=200 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=59 searchRangeFinest=11 sglobal=true
  8.676711 17410 thSADR=110 temporal=false lambda=150 lambdaR=0 pnew=28 pnewR=4 pzero=68 lsad=511 plevel=73 pglobal=19 badrange=126 badSAD=200 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=59 searchRangeFinest=9 sglobal=true
  8.679672 17370 thSADR=110 temporal=false lambda=150 lambdaR=0 pnew=28 pnewR=4 pzero=62 lsad=511 plevel=57 pglobal=19 badrange=126 badSAD=150 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=59 searchRangeFinest=9 sglobal=true
  8.681949 17010 thSADR=110 temporal=false lambda=150 lambdaR=0 pnew=34 pnewR=0 pzero=82 lsad=751 plevel=55 pglobal=27 badrange=74 badSAD=50 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=59 searchRangeFinest=9 sglobal=true
  8.683073 16990 thSADR=100 temporal=false lambda=250 lambdaR=0 pnew=14 pnewR=4 pzero=122 lsad=291 plevel=131 pglobal=29 badrange=92 badSAD=50 dctre=0 searchAlgoR=5 searchRange=3 searchRangeR=45 searchRangeFinest=10 sglobal=false
  8.689949 16680 thSADR=100 temporal=false lambda=260 lambdaR=0 pnew=22 pnewR=4 pzero=130 lsad=221 plevel=91 pglobal=38 badrange=92 badSAD=400 dctre=0 searchAlgoR=5 searchRange=3 searchRangeR=45 searchRangeFinest=10 sglobal=false
  8.694224 16670 thSADR=100 temporal=false lambda=270 lambdaR=0 pnew=22 pnewR=6 pzero=116 lsad=221 plevel=91 pglobal=38 badrange=92 badSAD=400 dctre=0 searchAlgoR=5 searchRange=3 searchRangeR=45 searchRangeFinest=10 sglobal=false
  8.695517 16030 thSADR=100 temporal=false lambda=290 lambdaR=0 pnew=18 pnewR=4 pzero=130 lsad=221 plevel=91 pglobal=38 badrange=86 badSAD=400 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=45 searchRangeFinest=11 sglobal=false
  8.740955 15740 thSADR=110 temporal=false lambda=200 lambdaR=0 pnew=14 pnewR=6 pzero=62 lsad=211 plevel=139 pglobal=32 badrange=116 badSAD=500 dctre=0 searchAlgoR=5 searchRange=5 searchRangeR=46 searchRangeFinest=9 sglobal=false
  8.74767 15270 thSADR=110 temporal=false lambda=160 lambdaR=0 pnew=26 pnewR=2 pzero=86 lsad=751 plevel=23 pglobal=30 badrange=84 badSAD=350 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=45 searchRangeFinest=9 sglobal=true
  8.751364 15010 thSADR=110 temporal=false lambda=160 lambdaR=0 pnew=34 pnewR=2 pzero=82 lsad=751 plevel=1 pglobal=30 badrange=74 badSAD=350 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=45 searchRangeFinest=9 sglobal=true
  8.760698 14960 thSADR=110 temporal=false lambda=300 lambdaR=0 pnew=26 pnewR=10 pzero=198 lsad=161 plevel=133 pglobal=27 badrange=64 badSAD=400 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=45 searchRangeFinest=9 sglobal=false
  8.774267 14870 thSADR=110 temporal=false lambda=280 lambdaR=0 pnew=26 pnewR=10 pzero=198 lsad=161 plevel=95 pglobal=32 badrange=64 badSAD=500 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=45 searchRangeFinest=10 sglobal=false
  8.8078575 14800 thSADR=120 temporal=false lambda=230 lambdaR=0 pnew=16 pnewR=10 pzero=114 lsad=331 plevel=133 pglobal=34 badrange=142 badSAD=300 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=44 searchRangeFinest=9 sglobal=false
  8.809715 14620 thSADR=120 temporal=false lambda=200 lambdaR=0 pnew=14 pnewR=6 pzero=36 lsad=271 plevel=157 pglobal=40 badrange=116 badSAD=500 dctre=0 searchAlgoR=5 searchRange=5 searchRangeR=46 searchRangeFinest=9 sglobal=false
  8.809924 14070 thSADR=120 temporal=false lambda=260 lambdaR=0 pnew=16 pnewR=10 pzero=132 lsad=331 plevel=143 pglobal=31 badrange=142 badSAD=300 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=44 searchRangeFinest=9 sglobal=false
  8.87295 13950 thSADR=130 temporal=true lambda=160 lambdaR=0 pnew=20 pnewR=2 pzero=112 lsad=471 plevel=5 pglobal=27 badrange=90 badSAD=350 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=45 searchRangeFinest=9 sglobal=true
  8.885446 13170 thSADR=110 temporal=false lambda=250 lambdaR=0 pnew=32 pnewR=10 pzero=166 lsad=61 plevel=135 pglobal=27 badrange=122 badSAD=300 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=32 searchRangeFinest=10 sglobal=false
  8.938496 13100 thSADR=140 temporal=false lambda=260 lambdaR=0 pnew=26 pnewR=10 pzero=164 lsad=161 plevel=105 pglobal=27 badrange=64 badSAD=500 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=45 searchRangeFinest=9 sglobal=false
  8.94034 12670 thSADR=140 temporal=false lambda=220 lambdaR=0 pnew=26 pnewR=10 pzero=164 lsad=161 plevel=109 pglobal=35 badrange=64 badSAD=500 dctre=0 searchAlgoR=5 searchRange=2 searchRangeR=45 searchRangeFinest=9 sglobal=true
  9.066035 12370 thSADR=160 temporal=false lambda=250 lambdaR=0 pnew=16 pnewR=4 pzero=74 lsad=711 plevel=41 pglobal=36 badrange=108 badSAD=400 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=45 searchRangeFinest=12 sglobal=true
  9.087028 12260 thSADR=160 temporal=false lambda=160 lambdaR=0 pnew=24 pnewR=6 pzero=32 lsad=261 plevel=103 pglobal=19 badrange=136 badSAD=450 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=46 searchRangeFinest=9 sglobal=false
  9.11781 11970 thSADR=150 temporal=false lambda=260 lambdaR=0 pnew=32 pnewR=10 pzero=146 lsad=61 plevel=135 pglobal=20 badrange=118 badSAD=300 dctre=0 searchAlgoR=5 searchRange=1 searchRangeR=32 searchRangeFinest=12 sglobal=false
  9.138921 11800 thSADR=40 temporal=false lambda=240 lambdaR=20 pnew=2 pnewR=4 pzero=152 lsad=241 plevel=97 pglobal=37 badrange=122 badSAD=250 dctre=0 searchAlgoR=2 searchRange=1 searchRangeR=47 searchRangeFinest=12 sglobal=false
  9.15274 11250 thSADR=70 temporal=false lambda=160 lambdaR=20 pnew=16 pnewR=8 pzero=144 lsad=291 plevel=77 pglobal=21 badrange=132 badSAD=100 dctre=0 searchAlgoR=2 searchRange=2 searchRangeR=47 searchRangeFinest=12 sglobal=false
  9.175158 11100 thSADR=80 temporal=false lambda=240 lambdaR=20 pnew=18 pnewR=4 pzero=116 lsad=241 plevel=113 pglobal=30 badrange=138 badSAD=250 dctre=0 searchAlgoR=2 searchRange=1 searchRangeR=47 searchRangeFinest=12 sglobal=false
  9.176795 10650 thSADR=80 temporal=false lambda=260 lambdaR=20 pnew=18 pnewR=4 pzero=116 lsad=241 plevel=117 pglobal=30 badrange=138 badSAD=250 dctre=0 searchAlgoR=2 searchRange=1 searchRangeR=47 searchRangeFinest=12 sglobal=false
  9.177311 10520 thSADR=80 temporal=false lambda=260 lambdaR=20 pnew=18 pnewR=4 pzero=114 lsad=241 plevel=93 pglobal=30 badrange=136 badSAD=250 dctre=0 searchAlgoR=2 searchRange=1 searchRangeR=47 searchRangeFinest=12 sglobal=false
  9.183233 10370 thSADR=80 temporal=false lambda=280 lambdaR=20 pnew=18 pnewR=4 pzero=98 lsad=241 plevel=149 pglobal=30 badrange=114 badSAD=250 dctre=0 searchAlgoR=2 searchRange=1 searchRangeR=47 searchRangeFinest=12 sglobal=false
The rest is in the next post...
zorr is offline   Reply With Quote
Old 12th February 2022, 00:35   #11  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
The rest of the pareto front:

Code:
  9.192417 10120 thSADR=80 temporal=false lambda=290 lambdaR=20 pnew=24 pnewR=2 pzero=142 lsad=401 plevel=119 pglobal=33 badrange=128 badSAD=250 dctre=0 searchAlgoR=2 searchRange=4 searchRangeR=47 searchRangeFinest=9 sglobal=false
  9.197486 10030 thSADR=80 temporal=false lambda=240 lambdaR=20 pnew=18 pnewR=4 pzero=124 lsad=241 plevel=81 pglobal=30 badrange=138 badSAD=250 dctre=0 searchAlgoR=2 searchRange=1 searchRangeR=51 searchRangeFinest=12 sglobal=false
  9.268662 9810 thSADR=100 temporal=false lambda=210 lambdaR=20 pnew=22 pnewR=4 pzero=148 lsad=501 plevel=75 pglobal=31 badrange=150 badSAD=300 dctre=0 searchAlgoR=2 searchRange=1 searchRangeR=54 searchRangeFinest=14 sglobal=true
  9.284827 9460 thSADR=100 temporal=false lambda=250 lambdaR=20 pnew=14 pnewR=14 pzero=156 lsad=831 plevel=47 pglobal=35 badrange=120 badSAD=350 dctre=0 searchAlgoR=2 searchRange=4 searchRangeR=47 searchRangeFinest=10 sglobal=false
  9.346145 9080 thSADR=120 temporal=false lambda=240 lambdaR=0 pnew=24 pnewR=8 pzero=170 lsad=751 plevel=67 pglobal=30 badrange=134 badSAD=250 dctre=0 searchAlgoR=2 searchRange=1 searchRangeR=43 searchRangeFinest=11 sglobal=false
  9.657673 8870 thSADR=160 temporal=true lambda=280 lambdaR=20 pnew=54 pnewR=2 pzero=130 lsad=661 plevel=179 pglobal=38 badrange=114 badSAD=300 dctre=0 searchAlgoR=2 searchRange=2 searchRangeR=44 searchRangeFinest=13 sglobal=false
  9.66918 8780 thSADR=130 temporal=true lambda=240 lambdaR=60 pnew=40 pnewR=14 pzero=70 lsad=201 plevel=85 pglobal=14 badrange=10 badSAD=200 dctre=0 searchAlgoR=2 searchRange=1 searchRangeR=52 searchRangeFinest=9 sglobal=false
  9.777618 8510 thSADR=170 temporal=false lambda=210 lambdaR=40 pnew=54 pnewR=14 pzero=90 lsad=551 plevel=171 pglobal=20 badrange=90 badSAD=300 dctre=0 searchAlgoR=2 searchRange=1 searchRangeR=44 searchRangeFinest=11 sglobal=true
  9.8748665 8340 thSADR=160 temporal=true lambda=290 lambdaR=60 pnew=40 pnewR=14 pzero=42 lsad=201 plevel=85 pglobal=22 badrange=10 badSAD=200 dctre=0 searchAlgoR=2 searchRange=2 searchRangeR=52 searchRangeFinest=9 sglobal=false
  10.374562 8020 thSADR=140 temporal=true lambda=260 lambdaR=120 pnew=64 pnewR=24 pzero=176 lsad=91 plevel=75 pglobal=26 badrange=90 badSAD=350 dctre=0 searchAlgoR=0 searchRange=2 searchRangeR=26 searchRangeFinest=9 sglobal=true
  10.48557 7840 thSADR=160 temporal=true lambda=290 lambdaR=120 pnew=64 pnewR=24 pzero=196 lsad=91 plevel=75 pglobal=36 badrange=90 badSAD=350 dctre=0 searchAlgoR=0 searchRange=1 searchRangeR=26 searchRangeFinest=10 sglobal=true
  10.488921 7690 thSADR=160 temporal=true lambda=280 lambdaR=120 pnew=64 pnewR=24 pzero=190 lsad=91 plevel=85 pglobal=29 badrange=90 badSAD=350 dctre=0 searchAlgoR=0 searchRange=1 searchRangeR=26 searchRangeFinest=9 sglobal=true
Here's a couple of example frames with original and fixed chroma: (animated PNGs, hopefully your browser supports them)





As you can see it works pretty well. The other scene changes in the sample clip were already in a pretty good shape so the effect was harder to see.

I glanced how these settings work for the night scene clip and saw some problem frames so it appears these results are not directly applicable to that one. May have to do another search for the night scenes and see what are the differences in optimal settings.
zorr is offline   Reply With Quote
Old 12th February 2022, 02:59   #12  |  Link
ABurns
Registered User
 
ABurns's Avatar
 
Join Date: Aug 2017
Posts: 56
Good lord, that's fabulous stuff! I've been using avs for 20 years, but honestly some of this high end scripting seems almost like witchcraft sometimes. You're amazing, can't thank you enough.
ABurns 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 05:18.


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