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. |
4th June 2016, 08:30 | #361 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,718
|
You can encode them in 10-bit depth even though the source you feed to x264 is in 8 bits.
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
6th June 2016, 06:36 | #368 | Link |
Registered User
Join Date: Jan 2016
Posts: 98
|
The results of my tests: Encoding a "DepanEstabilized" 3600 frames (2 min) clip 640x480 @ 30fps, using x264 on my laptop (core i5 3rd gen, Win10)
Code:
DepanEstimate fps AVS ST 27.77 AVS MT 28.18 VPY 32b 27.63 VPY 64b 30.32 DepanAnalise fps AVS ST 17.68 AVS MT 21.55 VPY 32b 22.45 VPY 64b 25.02 It is faster than MDepan/ DepanAnalise in both avisynth and vapoursynth, but I dont get rotation adjustments. In these tests, avisynth filters were faster than your VS port (32 bits). MDepan (AVS) / DepanAnalize (VS): Your VS port is way faster, and the results are practically identical I prefer DepanAnalise results over the ones of DepanEstimate, I "feel" the motion adjustments smoother My Scripts for reference: AVS: Code:
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Probar\RgTools.dll") LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Probar\DePan.dll") LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Probar\DePanEstimate.dll") #LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Probar\mvtools-v2.5.11.22\mvtools2.dll") LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Probar\mvtools-2.5.11.9-svp\mvtools2.dll") SetMTMode(3,4) LWLibavVideoSource("F:\TEMPX\CANON\MVI_2038.AVI", format="YUV420P8", fpsnum=30, fpsden=1, seek_threshold=60) #Preroll(60) original = last SetMTMode(2) pf = original.RemoveGrain(mode=4) div = 2 pf = pf.BilinearResize(Width(original)/div,Height(original)/div) pf = pf.RemoveGrain(mode=4) pf = pf.BilinearResize(Width(original) ,Height(original)) super = MSuper(pf) vectors = MAnalyse(super, isb = false) #return mshow(super, vectors, showsad=true) globalmotion = MDepan(pf, vectors, pixaspect=1.0, thSCD1=800, error=30.0, range=0) #, info=true) #, thSCD2=171 #globalmotion = DePanEstimate() #return globalmotion DepanStabilize(original, data=globalmotion, cutoff=0.33, pixaspect=1.0, method=1, zoommax=1.0, rotmax=10.0) #, mirror=15 return last Code:
import vapoursynth as vs core = vs.get_core() ret = core.lsmas.LWLibavSource(source=r"F:\TEMPX\CANON\MVI_2038.AVI", format="YUV420P8", fpsnum=30, fpsden=1) pf = core.rgvs.RemoveGrain(clip=ret, mode=4) div = 2 pf = core.resize.Bilinear(clip=pf, width=int(pf.width/div), height=int(pf.height/div)) pf = core.rgvs.RemoveGrain(clip=pf, mode=4) pf = core.resize.Bilinear(clip=pf, width=pf.width*div, height=pf.height*div) #globalmotion = core.mv.DepanEstimate(clip=pf, pixaspect=1.0) super = core.mv.Super(clip=pf) vectors = core.mv.Analyse(super=super, isb=False) globalmotion = core.mv.DepanAnalyse(clip=pf, vectors=vectors, pixaspect=1.0, error=30.0, thscd1=800) ret = core.mv.DepanStabilise(clip=ret, data=globalmotion, cutoff=0.33, zoommax=1.0, rotmax=10.0, pixaspect=1.0, method=1) ret.set_output() Last edited by VS_Fan; 6th June 2016 at 06:41. |
22nd June 2016, 11:50 | #370 | Link |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
https://github.com/dubhater/vapoursy...leases/tag/v14
Code:
* BlockFPS, FlowFPS: Fix repeated frames in the last 33% of the clip when reducing the frame rate (bug introduced at the beginning of this fork, probably). * All filters that have a "fields" parameter: Fix handling of field-based clips (was broken since the beginning of this fork). * Add ports of MDepan, DepanEstimate, and Depan. Changes from upstream, versions 2.5.11.20 and 2.5.11.21: * BlockFPS: Remove parameter "thres", add parameter "ml". * Compensate, Mask: Add parameter "time". * Reject vector clips with negative delta where necessary. * FlowXYZ: No longer limit motion vector length to -127..127.
__________________
Buy me a "coffee" and/or hire me to write code! Last edited by jackoneill; 1st July 2016 at 19:09. |
24th June 2016, 04:47 | #371 | Link |
I'm Siri
Join Date: Oct 2012
Location: void
Posts: 2,633
|
blockfps mode 6-8 are corrupted at bitdepth>8
Code:
import vapoursynth as vs core = vs.get_core() clp = rule6 clp = core.fmtc.bitdepth(clp,bits=8,fulls=False,fulld=True) clp = core.std.ShufflePlanes(clp,0,vs.GRAY) sup = core.mv.Super(clp) bv = core.mv.Analyse(sup,8,overlap=4,delta=1,isb=True) fv = core.mv.Analyse(sup,8,overlap=4,delta=1,isb=False) clp = core.mv.BlockFPS(clp, sup, bv, fv, 50, 1, 8) clp.set_output() Code:
import vapoursynth as vs core = vs.get_core() clp = rule6 clp = core.fmtc.bitdepth(clp,bits=16,fulls=False,fulld=True) clp = core.std.ShufflePlanes(clp,0,vs.GRAY) sup = core.mv.Super(clp) bv = core.mv.Analyse(sup,8,overlap=4,delta=1,isb=True) fv = core.mv.Analyse(sup,8,overlap=4,delta=1,isb=False) clp = core.mv.BlockFPS(clp, sup, bv, fv, 50, 1, 8) clp.set_output() looks like a blank black frame, cuz Code:
pDst_[w] = pOcc[w]; should be pDst_[w] = static_cast<PixelType>(pOcc[w]) << (bitspersample - 8); //mask stuff are always 8bits, compensating scaling required at higher bitdepth Code:
import vapoursynth as vs core = vs.get_core() clp = rule6 clp = core.fmtc.bitdepth(clp,bits=16,fulls=False,fulld=True) clp = core.std.ShufflePlanes(clp,0,vs.GRAY) sup = core.mv.Super(clp) bv = core.mv.Analyse(sup,8,overlap=4,delta=1,isb=True) fv = core.mv.Analyse(sup,8,overlap=4,delta=1,isb=False) clp = core.mv.BlockFPS(clp, sup, bv, fv, 50, 1, 8) clp = core.std.Expr(clp,"x 256 *") clp.set_output() garbage, still, cuz Code:
double l = 255 * pow(sad * dSADNormFactor, fGamma); |
1st July 2016, 19:31 | #373 | Link |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
https://github.com/dubhater/vapoursy...leases/tag/v15
After years of waiting, one more MVTools filter is ported. From the original MVTools only MShow is left now. Code:
* BlockFPS: Fix bug that prevented the use of the "ml" parameter (bug introduced in v14). * BlockFPS: Maybe fix bad output with 16 bit input (bugs introduced in v6 and v14). * DepanCompensate, DepanStabilise: Fix integer overflows with 16 bit input and subpixel=2 (bug introduced in v14). * Rename all "isse" parameters to "opt". They work the same. * Add filter Flow.
__________________
Buy me a "coffee" and/or hire me to write code! |
9th July 2016, 18:19 | #374 | Link |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
If QTGMC crashes, try https://github.com/dubhater/vapoursy...leases/tag/v16.
Code:
* Compensate: Fix crash when overlap is used (bug introduced in v15).
__________________
Buy me a "coffee" and/or hire me to write code! |
27th July 2016, 13:21 | #377 | Link | |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
Quote:
dct > 0 definitely makes it much slower. overlap > 0 makes it slower. The search method matters too. Exhaustive will be slower than all the others, I guess. If you want numbers, run some tests.
__________________
Buy me a "coffee" and/or hire me to write code! |
|
27th July 2016, 14:55 | #378 | Link |
Registered User
Join Date: Nov 2004
Location: Poland
Posts: 2,843
|
Wel, I'm not after some numbers, just idea about which parameters affect speed the most.
I have also different question. I've noticed that search=6 does help a lot with artefacts when doing fps conversion on all up-down movements (sounds strange). In the same way opposite also works, so search=7 works for left-right movements. Is there a way of switching search method based on dominant movement type? Sorry if this is silly question Problem is that this would have to work on "future" frames. |
27th July 2016, 17:09 | #379 | Link | |
unsigned int
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
|
Quote:
__________________
Buy me a "coffee" and/or hire me to write code! |
|
27th July 2016, 18:35 | #380 | Link | ||
I'm Siri
Join Date: Oct 2012
Location: void
Posts: 2,633
|
Quote:
Quote:
|
||
Thread Tools | Search this Thread |
Display Modes | |
|
|