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

Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
Old 14th June 2017, 15:46   #21  |  Link
Registered User
Join Date: Sep 2007
Posts: 4,389
Originally Posted by StainlessS View Post

EDIT: I trust that below format will work with whatever the RX script is
10  14
210 215
Sorry I should have posted the details. The OP couldn't post for some reason early on and we had a discussion in PM

It's just an mvtools2 interpolation function, to interpolate over bad frames. It allows for runs of more than single frames, but the problem is it requires manual identification of frame ranges. If you could ID them "automatically" with some degree of accuracy it might be a good option. It's certainly "cleaner" than QTGMC in this case, and fixes the aliasing . But we all know that's only because this example scene was "simple" - mvtools2 interpolation can make a big mess of things on more complex scenes/motion

Here is the PM

Originally Posted by poisondeathray
In this zip file there are 2 versions, one done with avisynth "rx.mp4", and another with motion tracking guided replace "tracking.mp4" . No other filtering, just replacing

"rx" is a function I wrote a long time ago (with big help from gavino) for replacing frames using adjacent "good" frames . You write the frame number, and the number of frames to replace. For example (10,2) would replace frames 10,11 using frames 9 and 12 as guidance

If you look critically at the 2 examples, you will notice the avisynth version has a bit of slight "wobbling" or "warping" in the repaired frames . You might be able to fix by playing with blocksize or other mvtools2 settings.

The motion tracked repair is more "stable" , but motion tracked repairs are only suitable for some types of scenes. If there was other types of motion, more foreground object movement etc... you might have to resort to other types of approaches.

Global filtering (e.g. QTMGC) on all frames is a last resort IMO, because you damage all the frames. But on the other hand , it's "easier" and faster. Or another approach is you could replace select frames with QTMGC (or other filtered) . e.g. using clipclop or replaceframes functions

MPEG2Source("VTS_02_1.demuxed.d2v", cpu=0)

function RX(clip Source, int N, int X)
# N is number of the 1st frame in Source that needs replacing.
# X is total number of frames to replace
#e.g. RX(101, 5) would replace 101,102,103,104,105 , by using 100 and 106 as reference points for mflowfps interpolation

start=Source.trim(N-1,-1) #one good frame before, used for interpolation reference point
end=Source.trim(N+X,-1) #one good frame after, used for interpolation reference point

AssumeFPS(1) #temporarily FPS=1 to use mflowfps

super = MSuper()
backward_vec = MAnalyse(super, isb = true)
forward_vec = MAnalyse(super, isb = false)
MFlowFps(super, backward_vec, forward_vec, blend=false, num=X+1, den=1) #num=X+1
AssumeFPS(FrameRate(Source)) #return back to normal source framerate for joining
Trim(1, framecount-1) #trim ends, leaving replacement frames

Source.trim(0,-N) ++ last ++ Source.trim(N+X+1,0)
poisondeathray is offline   Reply With Quote

deinterlace, ivtc, qtgmc

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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

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