jmac698
23rd December 2010, 00:23
Hi,
I need to analyze motion by line only. So I am using a trick, where I vertical pointresize by 8 (or whatever blksizeV is). I want to restrict the motion search quite a bit because I have a priori knowledge of the movement. The entire 720x8 block moves +-3 pixels. So I will use the new horizontal search feature, but I also want to use the levels parameter, which is not fully documented, to restrict the hierarchy because I know every pixel is moving the same way, and also to prevent false detection of individual pixels moving different from it's neighbours. Hint: the clip is extremely noisy. I'm trying to use the biggest blksize and most smoothing. This is part of a denoiser itself; I can't denoise beforehand. Detecting over as many pixels as possible at once (like a global motion) should work fine.
Here's what I'm trying to piece together so far but I can't finish this without advanced help:
bsizeH=16
bsizeV=8#valid for bsizeH=8 or 16
idontknow=0
a=avisource("test1.avi")
b=avisource("test2.avi")#exactly same as a, but with noise and hshift
interleave(b,a)
assumeframebased
pointresize(last.width,last.height*bsizeV)
video=last
super=MSuper(video,hpad=bsizeH,vpad=bsizeV,pel=2,levels=idontknow,chroma=false, sharp=0,rfilter=4)
vectors=MVAnalyse(super,blksize=bsizeH,blksizeV=bsizeV,levels=idontknow, search=6,isb=false,delta=1,truemotion=true).selectevery(2,0)#keep only b1 relative to a1 and ignore b2 relative to a1
MCompsensate(a,super,vectors)#make a shifted like b
newa=last
overlay(newa,b,opacity=.5)#average them to denoise
#return MShow#for tweaking
I would use MDepan but, it's slow and awkward to slice a clip into 720x8 sections of one long video.
This is pretty advanced I hope an expert can help! Thanks.
I need to analyze motion by line only. So I am using a trick, where I vertical pointresize by 8 (or whatever blksizeV is). I want to restrict the motion search quite a bit because I have a priori knowledge of the movement. The entire 720x8 block moves +-3 pixels. So I will use the new horizontal search feature, but I also want to use the levels parameter, which is not fully documented, to restrict the hierarchy because I know every pixel is moving the same way, and also to prevent false detection of individual pixels moving different from it's neighbours. Hint: the clip is extremely noisy. I'm trying to use the biggest blksize and most smoothing. This is part of a denoiser itself; I can't denoise beforehand. Detecting over as many pixels as possible at once (like a global motion) should work fine.
Here's what I'm trying to piece together so far but I can't finish this without advanced help:
bsizeH=16
bsizeV=8#valid for bsizeH=8 or 16
idontknow=0
a=avisource("test1.avi")
b=avisource("test2.avi")#exactly same as a, but with noise and hshift
interleave(b,a)
assumeframebased
pointresize(last.width,last.height*bsizeV)
video=last
super=MSuper(video,hpad=bsizeH,vpad=bsizeV,pel=2,levels=idontknow,chroma=false, sharp=0,rfilter=4)
vectors=MVAnalyse(super,blksize=bsizeH,blksizeV=bsizeV,levels=idontknow, search=6,isb=false,delta=1,truemotion=true).selectevery(2,0)#keep only b1 relative to a1 and ignore b2 relative to a1
MCompsensate(a,super,vectors)#make a shifted like b
newa=last
overlay(newa,b,opacity=.5)#average them to denoise
#return MShow#for tweaking
I would use MDepan but, it's slow and awkward to slice a clip into 720x8 sections of one long video.
This is pretty advanced I hope an expert can help! Thanks.