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. |
16th August 2008, 19:00 | #1021 | Link |
Registered User
Join Date: Dec 2007
Location: VA, USA
Posts: 116
|
OK here is fix for blocksize 16
http://rapidshare.com/files/13779570...9.6.7.rar.html Hopefully last issue |
16th August 2008, 22:57 | #1022 | Link | ||||||
AviSynth plugger
Join Date: Nov 2003
Location: Russia
Posts: 2,183
|
thanks for fast develpment!
some questions: Quote:
Please be more specific, where was the bug. Your code has massive cosmetic changes (rewriting) and it is difficult to analyse and compare. Comments (marks) in changed code will be very useful. IMHO, it wold be better do not touch working code lines. Quote:
Quote:
Quote:
Quote:
Quote:
However, due to combination of your new great lines of code with massive cosmetic changes (all those ++, etc) it is hardly to check (understand) and continue development (for me). For example, now I try implement Didee's request, based on v1.9.5.7 (and may be even older version). But what is bad with "branch" if you and people will use it? May be some day other developer will continue. Its open source world.
__________________
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. |
||||||
17th August 2008, 01:52 | #1023 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
@Fizick,
Now you understand why a lot of open source projects only accept changes in the form of diff patches. Diff patch submission encourages the submitter to express their idea in a tidy concise form. The more concise and tidy the quicker it gets reviewed, accepted and imported into the core source. It stops senseless reformatting with just white space changes, that makes the job of the integrator that much harder, by playing on the pride of the submitter. Nobody wants to get a reputation for submitting patches that delete all the lines and insert all these new ones. @josey_wells, You have done much good work here. I would encourage you to take a few hours to review all your changes with a good source diff program (M$ windiff is reasonable) and remove all the white space and white code changes you have made so the real changes you have made can shine out. |
17th August 2008, 07:53 | #1024 | Link |
Sleepy overworked fellow
Join Date: Feb 2008
Location: Maple syrup's homeland
Posts: 933
|
Woah, some awesome development was made here in a short while!
As for what happens with mvtools... imo it'd be a shame to have 2 branches, 1 "official" and 1 multi-threaded with a new concise syntax... but maybe no implementation of further development. What IanB suggested seems to be the best solution for everybody, even if it's more work for you, josey_wells, who already gave us a lot of your time. Thanks. Anyways, on with my request: I have yet to read all the posts and understand fully the new syntax, so I was wondering if someone could post a modded version of MCBob, TempGaussMC_beta1 and TemporalDegrain since they are very ressource hungry and that the speed boost we can now have would be more than welcome.
__________________
AnimeIVTC() - v2.00 -http://boinc.berkeley.edu/- Let all geeks use their incredibly powerful comps for the greater good (no, no, it won't slow your filtering/encoding :p) |
17th August 2008, 08:14 | #1025 | Link |
Resize Abuser
Join Date: Apr 2005
Location: Seattle, WA
Posts: 623
|
Here are the 2 MC scripts that I use, haven't used TemporalDegrain so maybe someone else can upload their mod's.
http://rapidshare.com/files/13791035...ussMC.zip.html In my MCbob I call the dll version of Vinverse, it's also the nnedi version
__________________
Mine: KenBurnsEffect/ZoomBox CutFrames Helped: DissolveAGG ColorBalance LQ Animation Fixer |
17th August 2008, 23:56 | #1027 | Link | ||||
Registered User
Join Date: Dec 2007
Location: VA, USA
Posts: 116
|
I fixed several places in the code and don't want to list this all. Here is a good example.
Code:
blocks = new FakeBlockData*[nBlkCount]; for ( int j = 0, blkIdx = 0; j < nBlkY; j++ ) for ( int i = 0; i < nBlkX; i++, blkIdx++ ) blocks[blkIdx] = new FakeBlockData(i * (nBlkSizeX - nOverlapX), j * (nBlkSizeY - nOverlapY)); Code:
blocks = new FakeBlockData[nBlkCount]; int blkYSpace=(nBlkSizeY - nOverlapY); int blkXSpace=(nBlkSizeX - nOverlapX); int blkIdx=0; for ( int j = 0; j < nBlkY; ++j ) { int j1 = j * blkYSpace; for ( int i = 0; i < nBlkX; ++i) blocks[blkIdx++].Init(i * blkXSpace, j1); } Quote:
Code:
const int awidth = min(nSrcPitchYUY2>>1, (nWidth+7) & -8); Code:
class MVClip : public GenericVideoFilter, public FakeGroupOfPlanes, public MVAnalysisData { ... } MVClip::~MVClip() { FakeGroupOfPlanes::~FakeGroupOfPlanes(); //v1.2.1 } Quote:
Quote:
I haven't done anything to the cache mechanism yet. I agree that it needs an overhaul or removal but I dont't want to take on that task now. Quote:
Also I see nothing wrong with white space changes. www.perforce.com has a great diff program called p4diff which is free. It can be used to diff my files against originals to see only real code changes. May modern diff programs can be used to ignore line endings and white spaces. Also there is a multitude of changes due to the addition of threading class, semaphore class, critical section class, thread files for MVDegrain, MVAnalyseMulti as well as factoring out common code for MVDegrain into a single base class moving out common code etc. In the end all I did was just some code consilidation, bug fixes, performance improvements, and multithreading. While it took me a long time I do not take any credit for the algorithms as all I did was make them run better, faster, and more reliably. I would be interested in performance results. I could also look at mulithreading some of the other functions. The impact of the functions can be evaluated by doing the following: Code:
c=last MVMulti=c.MVAnalyseMulti(refframes=x, ...) c.MVShow(MVMulti.MVMultiExtract(0)) Last edited by josey_wells; 18th August 2008 at 11:29. |
||||
18th August 2008, 16:50 | #1028 | Link |
AviSynth plugger
Join Date: Nov 2003
Location: Russia
Posts: 2,183
|
Code:
const int awidth = min(nSrcPitchYUY2>>1, (nWidth+7) & -8); Thanks, I will remove ~FakeGroupOfPlanes(); Why you did not simply remove it? About stacked multi frames. So, even if some filter use MVExtract to extract one vector subframe, all rest unneeded multi stacked vectors will be calculated?
__________________
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. |
18th August 2008, 17:14 | #1029 | Link | ||
Registered User
Join Date: Dec 2007
Location: VA, USA
Posts: 116
|
Quote:
Quote:
The first reference to MVMultiExtract will cause a full evaluation of all the requested frames in MVAnalyseMulti. Subsequent request to MVMultiExtracts will cause no extra computation since all frames have already been completed. The only way I could perform threading was to thread the computation of the frame calculations. |
||
18th August 2008, 17:43 | #1030 | Link |
AviSynth plugger
Join Date: Nov 2003
Location: Russia
Posts: 2,183
|
Thanks for clarification!
__________________
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. |
19th August 2008, 18:48 | #1034 | Link |
AviSynth plugger
Join Date: Nov 2003
Location: Russia
Posts: 2,183
|
1. I tried latest version on old Ahtlon 64, so I use classic MVAnalyse-MVDegrain2 script.
The speed is about 8 fps (blksize=16, overlap4). But I have 10 fps with v1.9.5.7 for same script. BTW, I recompile v1.9.6.7 with my development env (VCToolkit2003), but speed is still 8 fps. Disabling mt=false do nothing. 2. I sent preliminary v1.10 with MVRecalculate to Didee for testing.
__________________
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; 19th August 2008 at 22:25. |
19th August 2008, 23:11 | #1035 | Link |
Resize Abuser
Join Date: Apr 2005
Location: Seattle, WA
Posts: 623
|
Is there any way to improve MVAnalyse? This is moving 10 px per frame, no sub pixels yet it still is giving a fairly low PSNR of 45.96
Code:
Global b = ColorBars(320,240, "YUY2").Trim(0,64) Function ttt(clip c, int x, int y) { c.Overlay(b,x,y) #~ Subtitle(String(x), Align=2) } BlankClip(b,64, 640,480) F30 = Animate(0,32, "ttt", 0,120, 320,120) F60 = Animate(0,64, "ttt", 0,120, 320,120).Trim(0,62) vectors=F30.mvtools_MVAnalyseMulti(blksize=16, overlap=8, divide=2, idx=1, dct=4, truemotion=true, pel=2, search=0, searchparam=0, lambda=2700, sadx264=7, pnew=9) bw1_vec1=vectors.mvtools_MVMultiExtract(0) fw1_vec1=vectors.mvtools_MVMultiExtract(1) F60_2=F30.mvtools_MVFlowFps(bw1_vec1, fw1_vec1, num=60000,den=1001).Trim(0,62) Compare(F60_2, F60) StackHorizontal(last,StackComparer(F60_2,F60, "")) SelectOdd() Function StackComparer(clip x, clip y, string s) { sb1=Subtract(x,y) sb1=Overlay(sb1.Levels(128,1,130,0,255), \ sb1.Levels(126,1,128,0,255).PointResize(640*4,480*4).ConvertToYUY2().Invert("y").ConvertToRGB32().PointResize(640,480) \ ,mode="add").Levels(34,1,255,0,255).Subtitle("Black pixels means less/no change") sb1 }
__________________
Mine: KenBurnsEffect/ZoomBox CutFrames Helped: DissolveAGG ColorBalance LQ Animation Fixer |
20th August 2008, 00:34 | #1037 | Link |
Resize Abuser
Join Date: Apr 2005
Location: Seattle, WA
Posts: 623
|
Still get the same PSNR of 45.96
Code:
Global b = ColorBars(320,240, "YUY2").Trim(0,64) Function ttt(clip c, int x, int y) { c.Overlay(b,x,y) #~ Subtitle(String(x), Align=2) } BlankClip(b,64, 640,480) F60 = Animate(0,64, "ttt", 0,120, 320,120).Trim(0,62) F30 = F60.SelectEven().AssumeFPS("ntsc_video") vectors=F30.mvtools_MVAnalyseMulti(blksize=16, overlap=8, divide=2, idx=1, dct=4, truemotion=true, pel=2, search=0, searchparam=0, lambda=2700, sadx264=7, pnew=9) bw1_vec1=vectors.mvtools_MVMultiExtract(0) fw1_vec1=vectors.mvtools_MVMultiExtract(1) F60_2=F30.mvtools_MVFlowFps(bw1_vec1, fw1_vec1, num=60000,den=1001).Trim(0,62) Compare(F60_2, F60) StackHorizontal(last,StackComparer(F60_2,F60, "")) SelectOdd() #~ F60 Function StackComparer(clip x, clip y, string s) { sb1=Subtract(x,y) sb1=Overlay(sb1.Levels(128,1,130,0,255), \ sb1.Levels(126,1,128,0,255).PointResize(640*4,480*4).ConvertToYUY2().Invert("y").ConvertToRGB32().PointResize(640,480) \ ,mode="add").Levels(34,1,255,0,255).Subtitle("Black pixels means less/no change") sb1 }
__________________
Mine: KenBurnsEffect/ZoomBox CutFrames Helped: DissolveAGG ColorBalance LQ Animation Fixer |
20th August 2008, 14:05 | #1038 | Link |
the dumbest
Join Date: Oct 2002
Location: Malvinas
Posts: 494
|
No matter what I do or what kind of script I use, when calling MVAnalyseMulti, the scripts just exit after ~800 frames.
Image size is 1920x1080 / 1088 .I tried using 1920x540 / 544 with same results Last edited by morsa; 20th August 2008 at 14:29. |
21st August 2008, 01:52 | #1040 | Link | |
x264 developer
Join Date: Sep 2005
Posts: 8,666
|
Bug report from Kokotier:
Quote:
|
|
Thread Tools | Search this Thread |
Display Modes | |
|
|