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

Reply
 
Thread Tools Search this Thread Display Modes
Old 27th September 2021, 19:38   #1  |  Link
markfilipak
Registered User
 
markfilipak's Avatar
 
Join Date: Jul 2016
Location: Mansfield, Ohio (formerly San Jose, California)
Posts: 280
Super(), Analyze(), and SmoothFps() details

Forgive me please if there's a detailed guide I've not found.

First, a metaquestion: Is this the place for on-the-edge development?

To the developers (or anyone who cares to burrow through and really understand the source code):
Code:
                     __________
                 __ |    __   5|
             __ |   |__   4|   |
         __ |    __ | 3|       |  Regarding block images:
     __ |    __   2||          |  Assume block 0 (in frame 'N') & block 5 (in frame 'N+1') form a search-found block pair in a 24fps source.
 ___|______   1|    |__________|  Blocks 1..4 are to be inserted for make a 120fps target.
|         0|             __|      Are 1..4 copies of 0, or do the block images warp: 0 > 1 > 2 > 3 > 4 > 5?
|          |         __|          If they warp, are the inserted blocks always interpolated between 0 & 5 by proportional parts as shown to the left, or
|          |     __|              are they incrementally interpolated as shown below?
|          | __|
|__________|         __________                   __________                   __________                   __________
                    |         5|                 |         5|                 |         5|              __ |    __   5|
                    |          |                 |          |          __     |__        |          ___|___|__   4|   |
                    |          |      __      __ |          |      ___|______ | 3|       |         |         3|       |
     __      __     |          |  ___|______   2||          |     |         2||          |         |          |       |
 ___|______   1|    |__________| |         1|    |__________|     |          ||__________|         |          |_______|
|         0|                     |          |                     |          |                     |          | __|
|          |                     |          |                     |          | __|                 |__________|
|          |                     |          | __|                 |__________|
|          | __|                 |__________|                                    __________
|__________|                                                         __      __ |        10|
                                                         __      __ |         9||          |
                                             __      __ |         8|            |          |
                                 __      __ |         7|                        |          |
                     __________ |         6|                                    |__________|
                 __ |    __   5|                                    |__      __|              Regarding interpolated block positions:
             __ |   |__   4|   |                        |__      __|                          Are interpolated blocks positioned linearly as shown to the left, or
         __ |    __ | 3|       |            |__      __|                                      are they spline positioned based on 'ballistics' as shown below?
     __ |    __   2||          ||__      __|
 ___|______   1|    |__________|                                                 __________
|         0|             __|                            __      __              |        10|
|          |         __|                 __      __    |         9|             |          |
|          |     __|             __     |__       8|                            |          |
|          | __|           __   |  __     7|                                    |          |
|__________|         _____|____     6|                                          |__________|
                __  |  __     5|                       |__      __|
           __  |   __    4|    |        |__      __|
       __ |    __   3|         ||__      __|
    __|     __  2|  |          |   __|
 __|_______  1|     |__________|
|         0|            __|
|          |       __|
|          |   __|
|          |__|
|__________|
Is this important?
For frustrating, trial-&-error diddling of Super(), Analyze(), and SmoothFps()? Probably not.
For intellengently interpreting experimental results visually? I think so.
markfilipak is offline   Reply With Quote
Old 28th September 2021, 12:31   #2  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
See all of this thread:- https://forum.doom9.org/showthread.php?t=175373
this one too:- https://forum.doom9.org/showthread.p...23#post1789723
(also take a peek at all links in both threads)
Code:
              50%
               |
          <--------->
          |         |
          v         v
G1   G2   G3   B4   G5   G6
          n    n+1  n+2

delta=2
Frame n synth frame created using bidirectional vectors between n and n+delta(2),
however, frame requiring fixing is n+1 (B4, 50% between n and n+2) and so requires shift over. Frames are synthesised
from point of view of the synth frames not the bad frame.
Synth frame to fix B4 @ 50% is generated still at frame n (reqires shift forward 1 frame replacing n+1)


              33%   66%
               |     |
          <--------------->
          |               |
          v               v
G1   G2   G3   B4   B5    G6   G7
          n    n+1  n+2   n+3

delta=3
Synth frame to fix B4 (@ 33% of the way between n and n+3) is generated still at frame n (reqires shift forward 1 frames replacing n+1)
Synth frame to fix B5 (@ 66% of the way between n and n+3) is generated still at frame n (reqires shift forward 2 frames replacing n+2)
The 'between' percentage does NOT need to be directionally worked out by the user, it is looked after by MVTools
and governed again by isb, percentage is relative the synth frame n->n+delta.
EDIT:
also
Code:
            n   n+delta
            |    |
            <---- BV        Vectors used for eg MDegrain, vectors stored @ frame where arrowhead points (ie n).
     FV ---->               Pixels moved from frame at back end of arrow (n+/- delta), along vector to synth frame where arrowhead points.
        |
        n-delta


            n   n+delta
            |    |
            <---- BV        Vectors used for eg MFlowInter, Uses the next one along forward vector so that vectors used are from
            |    |          either side of the frame that will be synthesized (reason, only part of the vector distances are
        FVI ---->           used, based on Time arg).
            n    n+delta
                            For MFlowInter, the created vectors are exactly the same as for eg MDegrain, its just that it uses the
                            next forward vector so that backward and forward vectors straddle the predicted frame, MFlowInter
                            just uses the vectors in a slightly different way to MDegrain.
                            The synthesized frame lies logically somewhere between n and n + delta (based on Time arg), and is
                            physically created at frame n, and so needs to be relocated to the required bad frame position in clip.
__________________
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; 28th September 2021 at 13:05.
StainlessS is offline   Reply With Quote
Old 28th September 2021, 20:30   #3  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
Quote:
Originally Posted by StainlessS View Post
Ah, my first thread. Brings back memories... *snif*
zorr is offline   Reply With Quote
Old 29th September 2021, 01:48   #4  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Nah, a horrible nightmare... *snort*
__________________
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 29th September 2021, 06:17   #5  |  Link
markfilipak
Registered User
 
markfilipak's Avatar
 
Join Date: Jul 2016
Location: Mansfield, Ohio (formerly San Jose, California)
Posts: 280
Quote:
Originally Posted by StainlessS View Post
See all of this thread:- https://forum.doom9.org/showthread.php?t=175373
this one too:- https://forum.doom9.org/showthread.p...23#post1789723
(also take a peek at all links in both threads) ...
I didn't understand any of that stuff. Sorry. 'B', 'G' ? I couldn't tell which frames are original and which are interpolated -- too cryptic.
markfilipak is offline   Reply With Quote
Old 29th September 2021, 12:41   #6  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
I'm terrible at explaining things, now Zorr, he's the man that can
__________________
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 29th September 2021, 17:47   #7  |  Link
gispos
Registered User
 
Join Date: Oct 2018
Location: Germany
Posts: 1,002
Quote:
Originally Posted by StainlessS View Post
I'm terrible at explaining things, ...
I have to agree with you, if I understand it to 80%, after your explanations I only understand 50%

You have written so many useful Avishynth functions I do not always understand completely (or my English is too bad).
Seriously, sometimes I read and read and then I'm puzzling what the thing can do.
__________________
Live and let live
gispos is offline   Reply With Quote
Old 29th September 2021, 18:00   #8  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Well maybe Zorr could explain them too, then.
[ Anything that needs explanation PM Zorr about it, he's always happy to help ]

EDIT:
Quote:
If they warp, are the inserted blocks always interpolated between 0 & 5 by proportional parts ...
Yes.

Quote:
Are interpolated blocks positioned linearly ...
Yes.

Blocks are moved along the vectors proportional to the required time, if they dont match well in both directions [fwd/bkwrd] then some blurring will result.
EDIT: Ballistics, change in velocity (acceleration), change in acceleration (jerk), are not considered [linear only, I think].
__________________
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; 29th September 2021 at 18:33.
StainlessS is offline   Reply With Quote
Old 30th September 2021, 20:00   #9  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
Quote:
Originally Posted by StainlessS View Post
[ Anything that needs explanation PM Zorr about it, he's always happy to help ]
Yes, and if you want to ask about your local bus time tables, the latest mens swimsuit fashion trends or just some chitchat about the nature of reality PM StainlessS about it, he's always happy to talk about those.
zorr is offline   Reply With Quote
Old 30th September 2021, 20:16   #10  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
OK, you win, I'm sorry.
__________________
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 30th September 2021, 22:26   #11  |  Link
zorr
Registered User
 
Join Date: Mar 2018
Posts: 447
Quote:
Originally Posted by StainlessS View Post
OK, you win, I'm sorry.
Nah, no harm done. I do like to help people but most of my time these days is devoted to a completely new project (yes, AviSynth / VapourSynth related).
zorr is offline   Reply With Quote
Old 30th September 2021, 22:31   #12  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Evil, pure evil!
__________________
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 30th September 2021, 22:39   #13  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
Quote:
Originally Posted by zorr View Post
Nah, no harm done. I do like to help people but most of my time these days is devoted to a completely new project (yes, AviSynth / VapourSynth related).
Do I smell Zopti2?
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 1st October 2021, 00:09   #14  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,156
Quote:
Originally Posted by ChaosKing View Post
Do I smell Zopti2?
I think that DeltaRestore plugin
kedautinh12 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 00:37.


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