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.

Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 25th August 2009, 22:11   #1261  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,182
Almost similar for big best SAD - we do not know if match is wrong (local minimum instead of global) or this object was deformed.
May be we can store second (or more) best matches for every vector.
Other option may be somehow use SADs of coarser hierahical levels.
I do not have the working algo.
But i tried implement so call meander vector scan (left to right - right to left, end so on). Seems, it give more satble results for various left-right movements.

Released version 2.5.2

MSuper: separable width and height reducing with assembler iSSE optimization
MAnalyse: limit levels value

MAnalyse: Added meander parameter for blocks scan in rows from left to right and from right to left
Small optimization of YUY2 conversion

MSuper: More full size of sublevels
MAnalyse: Increased number of sublevels (for more long vectors)
MAnalyse: Replaced parameter name level by levels, changed meaning of its positive and negative values
MAnalyse: Disabled lambda for most coarse level
MAnalyse: Full search with large radius at smallest level

Note: These 2.5 changes have experimental (beta) status (now public beta), and may be removed in next versions (for example, it is hard to implement meander scan with variable block size).
Variable block size has also problem with overlap.
Insted of meander it is possible to get two vectors set for different scan directions, but it will be twice slower.
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick
I usually do not provide a technical support in private messages.
Fizick is offline   Reply With Quote
Old 26th August 2009, 09:06   #1262  |  Link
MfA
Registered User
 
Join Date: Mar 2002
Posts: 1,075
Quote:
Originally Posted by TSchniede View Post
This is an issue I have been thinking about myself. Right now we simply don't know if a low SAD means that the match is good or that there isn't much information anyway.
We would want some sort of metric that tells us how reliable our guess on the movement is.
I had hoped this could be an alternative approach for the movement analysis. but so far I haven't found a way to get the concept into a working algorithm. I'm not even sure it is possible to do it in a way that the produced vectors and computation time is better or at least equivalent.
Why doesn't the smoothness constraint take care of this?

Last edited by MfA; 26th August 2009 at 09:13.
MfA is offline   Reply With Quote
Old 26th August 2009, 12:47   #1263  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,407
For vector search stage, I agree it's a difficult case ... a labyrinth filled with cans of worms. It's hard to predict which theoretical means really would improve, and which are only pipe dreams.

However, for vector usage stage (e.g. in MDegrain), and in reply to the "make it and show proof" - retort in #1259 :

I already have given proof, long time ago.
It's in TempGaussMC, in the section commented with "Needed to later make MVDegrain work as expected ...the "SAD concept" doesn't fit to the realities -- so, let's tailor the realities to fit the darn concept ...".
Since SAD rating can't be modulated at the script level, it's done the reverse way: instead of rating SAD according to contrast, the contrast is altered to fit the uniformly-everywhere method.

Point is: without that effort, TGMC would not produce much usable. With it, it does. Period.

This' I consider a sufficient [practical] proof. (...for a relation so obvious that giving proof is almost superfluid.)


And BTW, this is pretty similar to the concept I once had proposed for "static-detection" in deinterlacing/bobbing. It's been decades that all deinterlacers only used primitive hard-thresholding for static detection: if a pixel differs by more than "x", it's not static.
At some point I was annoyed enough by that insufficient concept, and build the adaptive thresholding system found in MCBob. It worked better, which was expected, and in the meantime is known as TMM() plugin function.

And it's really the same idea: areas with strong signal need a different treatment than those with weak signal.

Nobody would expect the very poor people to pay the same taxes as the very rich. So, why should pixels?
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Old 26th September 2009, 20:45   #1264  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,836
I get an access violation with Avisynth 2.5.8 and the latest MVTools2 version with this script (VDub sometimes crashes, pointing to mvtools2.dll):

Code:
MPEG2Source("bamse.d2v")
Crop(16,4,-16,-4,true)
interleave(last,MCTemporalDenoise(chroma=true,flat=true))
AddBorders(0,0,16,8)
If I comment out the cropping and AddBorders, it works fine.

MCTemporalDenoise is the latest one (v1.3.0.0) from this thread: http://forum.doom9.org/showthread.php?t=139766
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 26th September 2009, 21:06   #1265  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,182
Boulder,
I do not support MCTemporalDenoise. I need in simple script to reproduce crash, as well as short sample video.
Anyway, how about older MVTools versions?
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick
I usually do not provide a technical support in private messages.
Fizick is offline   Reply With Quote
Old 26th September 2009, 22:47   #1266  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,836
I'll get you a sample in the next few days, and also try to reproduce it with a simple script.

Version 2.5.2 does crash, v2.4.7 does not. I couldn't find the two versions between those on your site.
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 26th September 2009, 23:57   #1267  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,182
I now added also v2.5.0 and 2.5.1 to my site.
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick
I usually do not provide a technical support in private messages.
Fizick is offline   Reply With Quote
Old 27th September 2009, 07:58   #1268  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,182
Some problem with SetMTMode(2) of MVTools v2.5.3 was reported by MAG79.
It seems, that temporal predictor mode is not compatible with multi-threading.

I released v2.5.4 - temporal problem is NOT resolved, but I set default temporal=false according to doc (it was wrongly =true in v2.5.3)
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick
I usually do not provide a technical support in private messages.

Last edited by Fizick; 27th September 2009 at 08:05.
Fizick is offline   Reply With Quote
Old 27th September 2009, 09:46   #1269  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,836
Here's a sample file: http://www.mediafire.com/?sharekey=9...db6fb9a8902bda

The highest MVTools2 version which works is v2.4.7. The 2.5 branch doesn't work with the script above and the sample clip. I'll post a link to this discussion in the MCTemporalDenoise thread, maybe LaTo has some ideas. The MCTemporalDenoise function uses MVTools2 function quite a lot so the problem could lie anywhere.
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 27th September 2009, 15:14   #1270  |  Link
LaTo
LaTo INV.
 
LaTo's Avatar
 
Join Date: Jun 2007
Location: France
Posts: 701
The crash occurs when hpad=0 & vpad=0 & chroma=true in MSuper... (tested only with v2.5.4)

I don't know why but:
Quote:
2.5.0 (01.08.2009 by Fizick)

* MSuper: More full size of sublevels
Maybe it is the problem...

Search all "hpad=0,vpad=0" in the script and delete them if you want to use v2.5.x with MCTD but it is sub-optimal (speed-wise)

Last edited by LaTo; 27th September 2009 at 15:32.
LaTo is offline   Reply With Quote
Old 27th September 2009, 18:27   #1271  |  Link
LaTo
LaTo INV.
 
LaTo's Avatar
 
Join Date: Jun 2007
Location: France
Posts: 701
I have checked a bit the source: all modifications in MVSuper.h (2.4.7->2.5.0) is about vpad/hpad and chroma
LaTo is offline   Reply With Quote
Old 28th September 2009, 20:03   #1272  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,182
Boulder, LaTo:
try v2.5.5

Anyway, padding=0 is not a very good. And I wil try improve padding handling in next version(s)
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick
I usually do not provide a technical support in private messages.
Fizick is offline   Reply With Quote
Old 28th September 2009, 20:38   #1273  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,836
Works fine, thanks
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 29th September 2009, 15:52   #1274  |  Link
LaTo
LaTo INV.
 
LaTo's Avatar
 
Join Date: Jun 2007
Location: France
Posts: 701
Great!
LaTo is offline   Reply With Quote
Old 19th October 2009, 16:16   #1275  |  Link
thewebchat
Advanced Blogging
 
Join Date: May 2009
Posts: 480
I see that we are now at 2.5.8 of MVTools. Is the 2.5 branch still considered experimental, or is it generally safe to use?
thewebchat is offline   Reply With Quote
Old 26th October 2009, 19:05   #1276  |  Link
Fizick
AviSynth plugger
 
Fizick's Avatar
 
Join Date: Nov 2003
Location: Russia
Posts: 2,182
v2.5.8.1 it is rather safe

"temporal" is the experimental feature, not compatible with SetMTMode (by one user report)
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick
I usually do not provide a technical support in private messages.
Fizick is offline   Reply With Quote
Old 26th October 2009, 19:57   #1277  |  Link
thewebchat
Advanced Blogging
 
Join Date: May 2009
Posts: 480
Actually, I do not remember reading anything about the "temporal" option in this thread, and the description of it on avisynth.org.ru is fairly limited. Could you explain what the goal of the "temporal" option is? Regardless, I will upgrade to 2.5.8.1 and test it later, since you have confirmed that it is stable.
thewebchat is offline   Reply With Quote
Old 31st October 2009, 14:34   #1278  |  Link
Redsandro
Unregistered User
 
Redsandro's Avatar
 
Join Date: Jul 2008
Location: Netherlands
Posts: 133
I was wondering if anyone is interested in bringing rolling shutter compensation to MVTools, or if something similar has already been attempted?

Example, so bad it cannot be repaired but it illustrates the problem perfectly:
http://www.youtube.com/watch?v=0qC0_nIUq9s

Excellent article illustrating the problem with CMOS sensors and the rolling shutter effect:
http://dvxuser.com/jason/CMOS-CCD/

Right now afaik the only available solution is using Rolling Shutter compensation option in Gunnar Thalin's DeShaker plugin for VirtualDub.
However the compensation is linear in nature (skew). It is very awesome, saves a lot of footage, but only half-descent for footage more complicated (speed changes, moving people etc) than just steady static pans.

Chia-Kai Liang's article on rolling shutter compensation:
http://mpac.ee.ntu.edu.tw/Exhibition...ng-shutter.php
Curved compensation can be better than linear compensation for nonsteady pans (speed changes within frame), but this implementation is commercial, hardware only and thus not available. Just food for thoughts. This curvy compensation is imo theoretically superior to DeShaker's compensation for incalculating horizontal speed changes within the frame, but not vertical speed changes.

TheFoundy working on a commercial motion compensated rolling shutter node for Nuke 6.
http://www.thefoundry.co.uk/blog.aspx#rollingshutter
They compensate motion from different moving objects. I think they themselves were inspired by watching failing divx movies or even MVTools itself.

In my imagination, a combination of the compensation from the DeShaker model, temporally motion compensated for objects moving independent from the camera and maybe spatially compensated for camera movement speed changes within one frame, is superior to all, and doable with the way MVTools detects motion and MFlow can realisticly (un)distort images. Not literally, but it seems like a lot of the work has already been done.
__________________
avi + m2t -> Vdub + DGIndex -> AE CS3 -> x264 -> Hell On Earth
Woop, woop! That's the sound of the police!

Last edited by Redsandro; 31st October 2009 at 14:37.
Redsandro is offline   Reply With Quote
Old 31st October 2009, 17:06   #1279  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,783
As a first approximation, if there was a way to apply a ramp function to the MFlowInter function's time parameter, and then apply this increasingly ramped correction top to bottom (or bottom to top) to each scan line, it might provide a first approximation to a solution.
johnmeyer is offline   Reply With Quote
Old 31st October 2009, 20:24   #1280  |  Link
Terka
Registered User
 
Join Date: Jan 2005
Location: cz
Posts: 704
deshaker has some technique for correcting it.
Terka is offline   Reply With Quote
Reply

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


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