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. |
|
|
Thread Tools | Search this Thread | Display Modes |
9th March 2015, 22:40 | #341 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Post #339, added test 4, and added SOUR to result comments.
As M53_StrReplace complies with original intent of StrReplaceDeep (SPACE compacting), will modify to use your algo (for RT_StrReplaceDeep).
__________________
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; 9th March 2015 at 22:46. |
12th March 2015, 17:48 | #342 | Link |
Registered User
Join Date: Mar 2007
Posts: 407
|
Just to satisfy possible interest in solution variants, and as a reference to understand the concepts, my personal - maybe stable - current algo
Code:
#===================================================================================================================== Function StrReplace(string s,string find,string replace) # Repeated, string replacements # Based On:- http://forum.doom9.org/showthread.php?p=1540504#post1540504 By Vampiredom, Gavino, IanB { # use RT_Stats RT_StrAddStr() if present to avoid 2.58/2.6a3 string concatenation bug function StrAddStr(a,b,c){Try{return RT_StrAddStr(a,b,c)}catch(msg){return a+b+c}} i=s.FindStr(find) f=StrLen(find) r=StrLen(replace) k=r-min(r,f-1) return i==0?s:replace.FindStr(find)==0 \ ? StrReplace(StrAddStr(s.LeftStr(i-1),replace,s.MidStr(i+f)),find,replace) \ : StrAddStr(s.LeftStr(i-1),replace.LeftStr(k),StrReplace(replace.MidStr(k+1)+s.MidStr(i+f),find,replace)) } #===================================================================================================================== Function StrReplaceDeep(string s,string find,string replace) # Repeated, string replacements {return StrReplace(s,find,replace)} #===================================================================================================================== StrReplace(">>>>>><",">><","><<") == "><<<<<<" (recursive call with later replacements more left in string than previous replacements) StrReplace(">......",">." ,">.>") == ">.>.>.>.>.>.>" (recursive call with find string in replace string, replace string longer than find string, no black hole) StrReplace("[10]______9___-0.13____0.16___0.004_0.99927","__","_") == "[10]_9_-0.13_0.16_0.004_0.99927" (original intent) Last edited by martin53; 12th March 2015 at 17:57. Reason: original intent |
13th March 2015, 02:47 | #343 | Link | |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Thank you M53, bit busy at moment, shall revisit later.
Quote:
and RT_LumaMovement replacing with RT_FrameMovement. Args something like this, (not finalized). Code:
RT_LumaDifference, "cc[n]i[delta]i[x]i[y]i[w]i[h]i[n2]i[delta2]i[x2]i[y2]i[Interlaced]b[matrix]i" # No difference RT_FrameDifference,"cc[n]i[n2]i[ChromaWeight]f[x]i[y]i[w]i[h]i[x2]i[y2]i[altscan]b" # Additional args after Chromaweight RT_FrameMovement, "cc[n]i[n2]i[x]i[y]i[w]i[h]i[x2]i[y2]i[altscan]b[matrix]i[Chromaweight]f[blkw]i[blkh]i[Mode]i" # Mode selects LumaDiff or FrameDiff, perhaps later additional modes. May at some point implement eg 'ChromaI' bool used where YV12 interlaced chroma (gets more complicated when mixed with Altscan and two comparison frames). Also, will 'auto' detect if both gray frames (perhaps 'DetectGray' average pixel difference [EDIT: from gray] float arg, currently 1.0) and switch to ChromaWeight=0.0 if both frames grayscale. (EDIT: For color clips with grayscale scene, eg "A Matter of Life and Death", 'Sin City' might be tricky, best treat as Grayscale all through ie ChromaWeight=0.0) DBase limit extended to lesser of available disk space, or 1TB-1MB max size or $7FFFFFFE records. Array to 1TB-1MB, or $7FFFFFFE max dim 1 for 1 dim array. For 2 dim array, total size is 256MB for dim 2, or for 3 dim array is 256MB for elements in dimensions 2 and 3. Any of the supplied AVS scipts in zip will be updated to use the new plug versions. If I have to remove a few funcs, then I might as well do all script breaking changes in one go. EDIT: Some additional plugz or modz: Code:
env->AddFunction("RT_ForceProcess", "c[Startframe]i[EndFrame]i", RT_ForceProcess, 0); env->AddFunction("RT_DBaseGetTypeString", "s",RT_DBaseGetTypeString, 0); env->AddFunction("RT_DBaseSetID", "si.+",RT_DBaseSetID , 0); env->AddFunction("RT_DBaseCheckID", "si.+",RT_DBaseCheckID, 0); env->AddFunction("RT_ArraySetID", "si.+",RT_ArraySetID , 0); env->AddFunction("RT_ArrayCheckID", "si.+",RT_ArrayCheckID, 0); RT_DBaseGetTypeString, used to duplicate a DBase with identical fields. RT_DBaseSet/CheckID (and array ver$), can set or check multiple DBase/Array ID's in one call. Number of DB/ARR ID's raised from 16 to 128. EDIT: On 2nd thoughts, think I limited DBase/Arr to lesser of Available_DiskSpace-1MB or 1TB, and not 1TB-1MB. EDIT: "A Matter of Life and Death" (http://en.wikipedia.org/wiki/A_Matte...ath_%28film%29) originally released in USA as "Stairway to Heaven".
__________________
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; 13th March 2015 at 04:15. |
|
20th April 2015, 02:53 | #344 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Yo dudes.
Anybody ever heard of a plugin to determine if a clip/range is Grayscale ? (did search on IsGray/IsGrayScale and variant spellings). I'm gonna implement (well basically have already), with x,y,w,h frame coords, and alternate raster line scanning. What I've done works on Planar YUY2 and RGB, and should be very fast (or slower if you demand full scan). Could set Local var with eg ISGrayScale bool, and/or metric on Grayness. Should be very fast on colour ranges where Only IsGrayScale bool result is required, would exit scan when threshold number of pixels exceeded, could test after every scanline and so avoid full frame scan when determined to be color. For YUV, % threshold number of pixels varying from $xx8080. For RGB, % threshold number of pixels varying from Min(R,G,B) == Max(R,G,B). This will be implemented as runtime Function in RT, any interest in a separate standard plugin ? (does one already exist ?) EDIT: Actually IsColor() would maybe more appropriate as above % threshold of pixels varying from Gray could return True (in RT runtime or as local var in filter plug) or set metric if required where % of pixels not gray could be rendered on frame and/or set as local var (slower if render or set local scan full metric). IsColor() does not show in search either. EDIT: Got me a yodelling fox outside right now, 03:22 AM EDIT: A couple of days ago a fox casually sauntered past me about 5 feet away, did not even bother looking at me, they are getting really cheeky nowadays in London. EDIT: And the escaped green parakeets are all over the place for the past couple of years. (group escape about 30 years ago in Richmond Park). EDIT: Modded IsColor() type func to count differences from Gray more like so. Let Cdf = allowed maximum difference from Gray that will NOT be counted (default 0), Let CTh = % Threshold to calculate number of differences that are more than CDf away from Gray. PixLim=(xdim*yDim) * CTh / 100.0 * 2 [two counts, for U+V for YUV, and Max(R,G,B)-Mid(R,G,B) and Mid(R,G,B)-Min(R.G,B) for RGB] YUV Code:
if(Abs(u-128)>CDf) Then Cnt=Cnt+1 if(Abs(v-128)>CDf) Then Cnt=Cnt+1 ... Later return (Cnt > Pixlim) # If color return True Code:
if(Max(R,G,B)-Mid(R,G,B)>CDf) Then Cnt = Cnt + 1 if(Mid(R,G,B)-Min(R,G,B)>CDf) Then Cnt = Cnt + 1 ... Later return (Cnt > Pixlim) # If color return True Let Cdf = allowed maximum difference from Gray that will NOT be counted (default 0), Let CTh = % Threshold to calculate number of differences that are more than CDf away from Gray. PixLim=(xdim*yDim) * CTh / 100.0 YUV Code:
dif = Abs(u-128) + Abs(v-128) if(dif > CDf) Then Cnt=Cnt+1 ... Later return (Cnt > Pixlim) # If color return True Code:
dif = Max(R,G,B)-Mid(R,G,B) + (Mid(R,G,B)-Min(R,G,B) if(dif > CDf) Then Cnt=Cnt+1 ... Later return (Cnt > Pixlim) # If color return True
__________________
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; 20th April 2015 at 17:01. |
1st July 2015, 03:45 | #345 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
@Martin53,
For your version StrReplace, Code:
s=StrReplace("abc","","1") Causes silent crash due to stack exhaustion. (Problem due to FindStr("abc","") returning result 1 [bit of a daft result, 0 not found would perhaps be more sensible]). Should return source string s where StrLen(find)==0
__________________
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 ??? |
19th September 2015, 08:10 | #346 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Here, two updates to scripts that are currently supplied with RT_Stats.
Scripts are demo color detectors, added a marker to indicate detection location. Next version RT will have indicator in the Security Camera Motion Detection script, to show where motion was detected. Uses RectMarker function first posted here:- http://forum.doom9.org/showthread.ph...83#post1733583 Luma Y Detector Code:
#RT_YInRAngeLocate() Tester OBJECT_W = 20 # Object to find, size in pixels OBJECT_H = 40 # Object to find, size in pixels AREA_X = 0 # Area of frame to search (0,0,0,0=full frame {As Crop}) AREA_Y = 0 AREA_W = 0 AREA_H = 0 LUMA_MIN = 235 # Luma minimum of object to find LUMA_MAX = 255 # Fake input clip, for testing a = BlankClip(length=481,width=480,height=480) b = BlankClip (width=OBJECT_W, height=OBJECT_H, color=$FFFFFF) a.Animate (0, a.FrameCount () - 1, "Overlay", b, 0, 0, b, 480, 480) ConvertToYV12() # Any colorspace ok so long as LUMA_MIN/MAX OK (RGB -> Luma-Y) MarkerColor = $FFFF00 # Detection marker color MARKER_TYPE = False # False = Corners only marker, True=Full Rect Marker Msk = Last.RectMarker(OBJECT_W+8,OBJECT_H+8,MARKER_TYPE) Mrk = Msk.BlankClip(Color=MarkerColor) DEBUG=false NOTFOUND="NOT FOUND" # Last few frames should show not found, depends upon OBJECT_W/H (as partially disappears off frame). sep = ", " ket = "] " COORDINATES="Y_Coordinates.txt" RT_FileDelete(COORDINATES) # Delete coordinates file ScriptClip (""" Bingo=RT_YInRangeLocate(debug=DEBUG,Baffle_W=OBJECT_W,Baffle_H=OBJECT_H,x=AREA_X,y=AREA_Y,w=AREA_W,h=AREA_H,Lo=LUMA_MIN,hi=LUMA_MAX) (Bingo) ? WriteFile (COORDINATES,"current_frame","KET", "YIRL_X", "sep", "YIRL_Y", "sep", "YIRL_W", "sep", "YIRL_H") \ : WriteFile (COORDINATES,"current_frame","KET", "NOTFOUND") (Bingo) ? Overlay(Mrk,x=YIRL_X-4,y=YIRL_Y-4,Mask=Msk,Mode="Blend",output="YV12") \ : NOP Return Last """) Return Last Function RectMarker(clip c,int W, Int H,Bool "Hit") { # req RT_Stats & mt_tools_2, Returns YV12 frame WxH same FPS as c and without audio Hit=Default(hit,False) InFix = (Hit) \ ? RT_string("(((x<=1|x>=%d|y<=1|y>=%d)&(x<4|x>=%d)&(y<4|y>=%d)|(x==0|x==%d|y==0|y==%d)))?255:0", W-2,H-2,W-4,H-4,W-1,H-1) \ : RT_string("((x<=1|x>=%d|y<=1|y>=%d)&(x<4|x>=%d)&(y<4|y>=%d))?255:0", W-2,H-2,W-4,H-4) c.Blankclip(width=W,height=H,Length=1,pixel_type="YV12").Killaudio return mt_lutspa(relative = false,yExpr=mt_Polish(InFix), chroma = "128") } Code:
# RGBInRangeLocate_Test RED =$AA # Object Color to look for GREEN =$CC BLUE =$FF OBJECT_W = 10 # Object Width OBJECT_H = 10 # Object Height AREA_X = 0 # Area of frame to search (0,0,0,0=full frame, As Crop) AREA_Y = 0 AREA_W = 0 AREA_H = 0 R_MIN = RED R_MAX = RED G_MIN = GREEN G_MAX = GREEN B_MIN = BLUE B_MAX = BLUE # Overlay Converts RGB->YUV->RGB (can set inexact color). Use Layer Instead, MUST set ALPHA RGBA=((255 * 256 + RED)*256+GREEN)*256+BLUE COORDINATES="RGB_Coordinates.txt" # Fake input clip, for testing a = BlankClip(length=480,width=480,height=480) b = a.BlankClip(width=OBJECT_W, height=OBJECT_H, color=RGBA) a.Animate (0, a.FrameCount () - 1, "Layer", b,"add",257, 0, 0, b,"add",257, 479, 479) MarkerColor = $FFFF00 # Detection marker color MARKER_TYPE = False # False = Corners only marker, True=Full Rect Marker Msk = Last.RectMarker(OBJECT_W+8,OBJECT_H+8,MARKER_TYPE) Mrk = Msk.BlankClip(Color=MarkerColor) NOTFOUND="NOT FOUND" # Will be NOT FOUND, As OBJECT moves out of frame at end of clip (can no longer find size OBJECT_W x OBJECT_H) sep = ", " Ket = "] " RT_FileDelete(COORDINATES) # Delete coordinates file DEBUG=False ScriptClip (""" Bingo=RT_RgbInRangeLocate(x=AREA_X,y=AREA_Y,w=AREA_W,h=AREA_H, \ RLo=R_MIN,Rhi=R_MAX,GLo=G_MIN,Ghi=G_MAX,BLo=B_MIN,Bhi=B_MAX,Baffle_W=OBJECT_W,Baffle_H=OBJECT_H,debug=DEBUG) (Bingo) ? WriteFile (COORDINATES,"current_frame", "Ket", "RGBIRL_X", "sep", "RGBIRL_Y") \ : WriteFile (COORDINATES,"current_frame", "Ket", "NOTFOUND") (Bingo) ? Overlay(Mrk,x=RGBIRL_X-4,y=RGBIRL_Y-4,Mask=Msk,Mode="Blend") \ : NOP Return Last """) Return Last Function RectMarker(clip c,int W, Int H,Bool "Hit") { # req RT_Stats & mt_tools_2, Returns YV12 frame WxH same FPS as c and without audio Hit=Default(hit,False) InFix = (Hit) \ ? RT_string("(((x<=1|x>=%d|y<=1|y>=%d)&(x<4|x>=%d)&(y<4|y>=%d)|(x==0|x==%d|y==0|y==%d)))?255:0", W-2,H-2,W-4,H-4,W-1,H-1) \ : RT_string("((x<=1|x>=%d|y<=1|y>=%d)&(x<4|x>=%d)&(y<4|y>=%d))?255:0", W-2,H-2,W-4,H-4) c.Blankclip(width=W,height=H,Length=1,pixel_type="YV12").Killaudio return mt_lutspa(relative = false,yExpr=mt_Polish(InFix), chroma = "128") }
__________________
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 ??? |
28th October 2015, 11:10 | #347 | Link |
Registered User
Join Date: Jan 2006
Posts: 1,867
|
Just to let you know I need a 16bit version of planetcrop. I'm happy to report that imagesource reads 16bit PNG fine. It's chugging away at a set now. I'm going to have to find a way to split the 16bits into high and low parts and a way to encode it back into 16 bit pngs. I was thinking some incantations of imagemagick might do this. I could do it as video also but I don't know if there's any codecs that handle 16bit. In fact I think my images are really 12 bit though.
I'm working on the mod myself but feel free to help if you want a challenge ps About that statistics analysis - that's backed up as I write a CHDK script to aquire all the data. I have to do some testing to see if setting out of the ordinary ISO ranges actually work on the camera. There's also some weirdness about ISO not being true ISO but inflated market values. ps2 it took a while but processing finished, perfect alignment at defaults gj and here's some frames to play with http://wikisend.com/download/839422/MoonHDR.7z Last edited by jmac698; 28th October 2015 at 11:51. |
29th October 2015, 02:21 | #348 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Hi Jmac, I see you there.
Have DL your clip and will have a play.
__________________
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 ??? |
29th October 2015, 03:34 | #349 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
JM, can you post what you got so far so I can take a peek, thanx.
EDIT: I'm guess'in that 'most significant BIT' alone would be sufficient for detection. (more than 8 would be overkill)
__________________
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 October 2015 at 03:38. |
29th October 2015, 06:13 | #350 | Link |
Registered User
Join Date: Jan 2006
Posts: 1,867
|
Yes my thoughts exactly, though theoretically it could be a dim image, practically I would never expose a planet so dimly. It could be dim mind you, if I use a low ISO (which means less initial noise), but not THAT dim.
So the idea would be, detect on upper 8 bits, apply the crop to high and low images, then output stacked. Should be simple. Then imagemagick to stack/unstack. I do have a question though, what does autolevel=1 do? I was expecting to make the brightest pixel = 255. Speaking of which, that feature may take some work to work in 16bit. Btw this pre-aligning *really* helps. The stacking programs I have either crash or take forever to align badly aligned images. But I couldn't stack the images I have; one remaining problem is rotation, I need to de-rotate what I have. I'm not using the "drifting across view" method any more, just handheld, so the alignment is a bit messier. I don't think there's any rotation detection plugins existing for Avisynth. ps however, if I convert from polar to cartesian and make a "map" of the planet, then it's a simple shift finding to find the rotation angle, that could be simple. update: incantation is (create stacked high/low from 16bit PNG) Code:
convert IMG_7853.png ( +clone -evaluate and 255 -evaluate multiply 256 ) -evaluate and 65280 -append -depth 8 test.png Last edited by jmac698; 29th October 2015 at 09:41. Reason: shorter command |
14th November 2015, 18:17 | #351 | Link | |
Registered User
Join Date: Mar 2007
Posts: 407
|
Quote:
For me, the blue supplement is satisfying, may everybody decide for himself. Code:
Function StrReplace(string s,string find,string replace) # Repeated, string replacements # Based On:- http://forum.doom9.org/showthread.php?p=1540504#post1540504 By Vampiredom, Gavino, IanB { # use RT_Stats RT_StrAddStr() if present to avoid 2.58/2.6a3 string concatenation bug function StrAddStr(a,b,c){Try{return RT_StrAddStr(a,b,c)}catch(msg){return a+b+c}} find=(find==""?s:find) i=s.FindStr(find) f=StrLen(find) r=StrLen(replace) k=r-min(r,f-1) return i==0?s:replace.FindStr(find)==0 \ ? StrReplace(StrAddStr(s.LeftStr(i-1),replace,s.MidStr(i+f)),find,replace) \ : StrAddStr(s.LeftStr(i-1),replace.LeftStr(k),StrReplace(replace.MidStr(k+1)+s.MidStr(i+f),find,replace)) } |
|
14th November 2015, 18:34 | #352 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
OK,
Code:
#M53 s=StrReplace("abc","","1") # Returns '1' #RT s=RT_StrReplace("abc","","1") # Returns 'abc' (Clarification, I though it again, NOT you had been eaten by crocodiles for a second time, that would have been very unlucky) EDIT: Here, 1st scene is Martin53 on Safari (as always, camera in-hand):- https://www.youtube.com/watch?v=ndzOp777_UE
__________________
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; 14th November 2015 at 18:43. |
14th November 2015, 18:48 | #353 | Link |
Registered User
Join Date: Mar 2007
Posts: 407
|
StainlessS, have you got a bit of spare time?
These extensions to RT_Stats could be useful in scripts: * RT_FloatAsRGB32() taking an arbitrary parameter count and generating not a 1x1 clip, but a 1x(parameter count) clip. Possible use: AVS functions could return vectors of float values, packed as a clip. * RT_IntAsRGB32() doing about the same as RT_FloatAsRGB32() Possible use: improved readability and less complicated clip graph than StackHorizontal(Blankclip(width=1,height=1,pixel_type="RGB32",color=myint1),Blankclip(width=1,height=1,pixel_type="RGB32",color=myint2),...,...) * A new stats function that takes one clip (and another one for the stats comparing two clips) (i.e. all the stuff under 'Runtime Clip Comparison Functions' in the RT_Stats manual), and is called outside RTE and does not return one float, but a RGB32 clip with the float stats values vector of all the results, horizontally stacked. Possible use: Inside the plugins, the various values like max, min, average etc. can easily be evaluated together, without much speed penalty. The clip profits from the AviSynth frame cache mechanism and it becomes possible to obtain these cached statistic values much faster from RTE scripts with RT_RGB32AsFloat(). I have an RTE script here that checks, say, 50 frames backward and forward for each frame (it searches for the one with the most edges i.e. AverageLuma of an edge function). If these values were cached, I expect a significant speed improvement, especially for HD footage. |
14th November 2015, 22:15 | #354 | Link | |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Quote:
__________________
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 ??? |
|
14th November 2015, 23:55 | #355 | Link | |
Registered User
Join Date: Mar 2007
Posts: 407
|
Quote:
No, I just am in the (early) progress of digitizing a fair number of old books etc, so i'm not bored and some months ago I had decided to switch over to Avisynth+, but I felt it hadn't settled everything, so decided to wait for a while. Things changed not towards simplicity since there are these different MT approaches and all that kinda stuff that thwarts you all the time when you'd like to concentrate on the video algorithms. |
|
15th November 2015, 06:22 | #356 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
M,
Have you considered trying the DBase functions for your previously suggested funcs ? You could eg create a DBase with same number of records as a clip, and maybe a bool as first field to indicate whether other fields are valid, and have a function that fills remaining DBase fields with Ymin, YMax AverageLuma etc. (int and float values) from RT_YStats. You could even do a prescan to set DB once, for multipass use, or so that settings could be tweaked without the creating DB every time. RT_DBase read/write is pretty fast, about 265 MicroSecond to set a Float and about 165 Microseconds to read back, just to access Avisynth 'True' or 'False' constants takes about 500 microseconds on my 2.4Ghz core duo. EDIT: Just doing away with eg StackHorizontal is not gonna make anything a great deal faster, I think. EDIT: A plug function that fills DBase record with YStats results might be best bet.
__________________
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; 15th November 2015 at 06:57. |
15th November 2015, 10:41 | #357 | Link | |
Registered User
Join Date: Mar 2007
Posts: 407
|
Quote:
I agree that the DB funcs are very capable. One could write a RTE function with GScript that prescans the clip when called the first time - but you remember: string processing and GScript in RTE is a don't (I learned when I refactorized SRestore). So I think I'd use an additional boolean flag field to reflect if the frame is already analysed. If not, the RTE analysing function would derive the values just for current_frame and set the flag (quite similar to clip frame fetching). - All that is possible in AviSynth language today. But I feel it creates fat AVS files, is tricky to write as generic script snippet for multi-instances, and harder to understand/review/maintain than it should be. |
|
11th January 2016, 21:55 | #358 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Hi guys, just a (sitrep and) heads up warning of future change in RT_Stats plugin v2.0.
RT_QwikScan current version is a DBase utility function, v2.0 will be changed to Array utility function. Original RT_QwikScan was implemented with mixture of Int and Float in frame FingerPrint, but changed later to soley Float. I wanted to increase the number of fingerprint component values from 4 to about 16, but that would require 16*256 (instead of 4*256) fields in Locator DBase, making the use of DBase very unwieldy with a 4KB Type string for RT_DBaseAlloc function. Changing to Array utility greatly simplifies the creation of the FingerPrint and Locator files. (Some info here:- http://forum.doom9.org/showthread.ph...02#post1693002) Increasing number of FingerPrint components reduces the time taken with higher values of LumaTol to more acceptable durations. Below are some timings that were first done in post linked a few lines above, current timings done with same JurassicPark DVD clip, converted to UT_Video Codec AVI file, original tests were probably done on RoboCropped clip, current one still has a little letterboxing top and bottom (AR=1.85 I think). Also, CPU, Hard drive both different, and code probably changed too for the current RT_stats (as opposed to v2.0 RT_Stats). Here, new numbers (Search for 10, frames, 3000->13000 in 1000 frame steps, at multiple values for LumaTol). Test Script for both OLD v1.45 and Upcoming RT_Stats v2.0 Code:
AVISource("JurassicPark.avi") RTVER2 = (RT_Version > 1.99) # New Version RT_Stats ? EXT = (RTVER2) ? ".ARR" : ".DB" FINGER = "JPARK" + EXT PREV = "JPARK_PREV" + EXT # Prev LOCATOR, ie BackWards Search. NEXT = "JPARK_NEXT" + EXT # Next LOCATOR, ie ForWards Search (not used in this script). RT_FileDelete(FINGER) RT_FileDelete(PREV) RT_FileDelete(NEXT) # Uncomment to Create QwikScan DBs/Arrays, comment out to Re-Run (Exist(FINGER)) ? NOP : RT_QwikScanCreate(Last, FINGER , PREV,"", debug=true) # We dont need NEXT Locator for this backwards scan test. START=RT_TimerHP() QwikScanTest(Last,FINGER,PREV,0.0) # LUMATOL = 0.0 QwikScanTest(Last,FINGER,PREV,4.0) # LUMATOL = 4.0 QwikScanTest(Last,FINGER,PREV,8.0) # LUMATOL = 8.0 QwikScanTest(Last,FINGER,PREV,12.0) # LUMATOL = 12.0 QwikScanTest(Last,FINGER,PREV,16.0) # LUMATOL = 16.0 TIM=RT_TimerHP()-START RT_DebugF("TOTAL TIME = %.3f secs (%.2f mins)",TIM,TIM/60.0,name="QwikScanTest: ") return MessageClip("QwikScanTest: DONE") Function QwikScanTest(clip c,String FINGER,String PREV,Float LumaTol) { # Test script searching ~175,000 frames per FindFrame: c myName="QwikScanTest: " SearchStart=FrameCount-1 # Search direction from end to beginning, using PREV (ie Backward search). RT_DebugF("",name=myName) RT_DebugF("LumaTol = %.2f",LumaTol,name=myName) GScript(""" Tot = 0.0 TotSearched=0 For(FindFrame=3000,13000,1000) { S=RT_TimerHP() Result = RT_QwikScan(Last,SearchStart,Last,FindFrame,FINGER,PREV,lumatol=LUMATOL,Flags=2,LD=0.0,maxdistance=SearchStart-0) T=RT_TimerHP-S Tot = Tot + T Searched = SearchStart - Result + 1 TotSearched = TotSearched + Searched RT_Debugf("%6d] Got Frame %6d in %10f secs",Findframe,Result,T,name=myName) } RT_Debugf("Avg Search time = %10f secs : Avg Searched = %.3f FPS",Tot/10.0,TotSearched/Tot,name=myName) """) return Last } Updated timings moved to following post (Too big) Perhaps new FingerPrint ranges could be improved, but above about first guess at best settings. EDIT: Above searches are using LD=0.0 (LumaDifference), ie exact match. EDIT: As previously documented, RT_QwikScan is to be considered Permanently Experimental. EDIT: Approx time to scan file using MatchFrames.avs (LumaDifference) would be about 16 to 18 Mins per frame search. EDIT: Above tests done on 2.4GHz Core Duo (duel core,only 1 core used), pretty full SATA 2. EDIT: The only real difference in script is that the argument names PrevDB and NextDB have dropped the DB suffix, Files will be Array and will still work if using "DB" suffix, just suffix would be misleading. Can just supply Prev and Next args without Optional Arg Names, and use "" where no Prev/Next Locator Array is needed (Prev/Next == Backward/Forward scan).
__________________
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; 14th January 2016 at 20:54. Reason: Update |
14th January 2016, 20:56 | #359 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Above post script updated, timings moved here (too big for previous post).
Current Timings for v1.45 RT_Stats Code:
00001433 18:34:01.671 RT_QwikScanCreate: Total time = 860.29 seconds (14.34 mins) 00001434 18:34:01.671 QwikScanTest: 00001435 18:34:01.671 QwikScanTest: LumaTol = 0.00 00001436 18:34:01.750 QwikScanTest: 3000] Got Frame 3000 in 0.053955 secs 00001437 18:34:01.796 QwikScanTest: 4000] Got Frame 4000 in 0.060242 secs 00001438 18:34:01.828 QwikScanTest: 5000] Got Frame 5000 in 0.027161 secs 00001439 18:34:01.859 QwikScanTest: 6000] Got Frame 6000 in 0.026855 secs 00001440 18:34:01.890 QwikScanTest: 7000] Got Frame 7000 in 0.032837 secs 00001441 18:34:01.921 QwikScanTest: 8000] Got Frame 8000 in 0.030457 secs 00001442 18:34:01.953 QwikScanTest: 9000] Got Frame 9000 in 0.032959 secs 00001443 18:34:01.984 QwikScanTest: 10000] Got Frame 10000 in 0.025818 secs 00001444 18:34:02.000 QwikScanTest: 11000] Got Frame 11000 in 0.024231 secs 00001445 18:34:02.031 QwikScanTest: 12000] Got Frame 12000 in 0.028748 secs 00001446 18:34:02.062 QwikScanTest: 13000] Got Frame 13000 in 0.028381 secs 00001447 18:34:02.062 QwikScanTest: Avg Search time = 0.037164 secs : Avg Searched = 5151582.500 FPS 00001448 18:34:02.062 QwikScanTest: 00001449 18:34:02.062 QwikScanTest: LumaTol = 4.00 00001450 18:34:02.125 QwikScanTest: 3000] Got Frame 3000 in 0.057007 secs 00001451 18:34:02.296 QwikScanTest: 4000] Got Frame 4000 in 0.168701 secs 00001452 18:34:05.140 QwikScanTest: 5000] Got Frame 5000 in 2.847839 secs 00001453 18:34:13.359 QwikScanTest: 6000] Got Frame 6000 in 8.218628 secs 00001454 18:34:15.218 QwikScanTest: 7000] Got Frame 7000 in 1.866821 secs 00001455 18:34:24.531 QwikScanTest: 8000] Got Frame 8000 in 9.311768 secs 00001456 18:34:25.296 QwikScanTest: 9000] Got Frame 9000 in 0.752258 secs 00001457 18:34:25.984 QwikScanTest: 10000] Got Frame 10000 in 0.699585 secs 00001458 18:34:30.796 QwikScanTest: 11000] Got Frame 11000 in 4.800659 secs 00001459 18:34:31.546 QwikScanTest: 12000] Got Frame 12000 in 0.761841 secs 00001460 18:34:35.250 QwikScanTest: 13000] Got Frame 13000 in 3.689514 secs 00001461 18:34:35.250 QwikScanTest: Avg Search time = 3.317462 secs : Avg Searched = 57711.285 FPS 00001462 18:34:35.250 QwikScanTest: 00001463 18:34:35.250 QwikScanTest: LumaTol = 8.00 00001464 18:34:49.171 QwikScanTest: 3000] Got Frame 3000 in 13.921143 secs 00001465 18:34:49.968 QwikScanTest: 4000] Got Frame 4000 in 0.803589 secs 00001466 18:35:04.390 QwikScanTest: 5000] Got Frame 5000 in 14.421509 secs 00001467 18:36:06.218 QwikScanTest: 6000] Got Frame 6000 in 61.818726 secs 00001468 18:36:18.453 QwikScanTest: 7000] Got Frame 7000 in 12.233459 secs 00001469 18:37:49.343 QwikScanTest: 8000] Got Frame 8000 in 90.886597 secs 00001470 18:37:56.453 QwikScanTest: 9000] Got Frame 9000 in 7.107300 secs 00001471 18:38:03.734 QwikScanTest: 10000] Got Frame 10000 in 7.283325 secs 00001472 18:38:48.187 QwikScanTest: 11000] Got Frame 11000 in 44.446167 secs 00001473 18:38:58.250 QwikScanTest: 12000] Got Frame 12000 in 10.061401 secs 00001474 18:39:23.031 QwikScanTest: 13000] Got Frame 13000 in 24.780884 secs 00001475 18:39:23.031 QwikScanTest: Avg Search time = 28.776409 secs : Avg Searched = 6653.193 FPS 00001476 18:39:23.031 QwikScanTest: 00001477 18:39:23.031 QwikScanTest: LumaTol = 12.00 00001478 18:41:19.312 QwikScanTest: 3000] Got Frame 3000 in 116.273315 secs 00001479 18:42:06.531 QwikScanTest: 4000] Got Frame 4000 in 47.215332 secs 00001480 18:42:55.093 QwikScanTest: 5000] Got Frame 5000 in 48.573608 secs 00001481 18:49:03.343 QwikScanTest: 6000] Got Frame 6000 in 368.208862 secs 00001482 18:50:08.765 QwikScanTest: 7000] Got Frame 7000 in 65.419678 secs 00001483 18:55:48.031 QwikScanTest: 8000] Got Frame 8000 in 339.256104 secs 00001484 18:56:07.890 QwikScanTest: 9000] Got Frame 9000 in 19.856689 secs 00001485 18:56:25.640 QwikScanTest: 10000] Got Frame 10000 in 17.749023 secs 00001486 18:58:35.125 QwikScanTest: 11000] Got Frame 11000 in 129.474365 secs 00001487 18:59:09.906 QwikScanTest: 12000] Got Frame 12000 in 34.775391 secs 00001488 19:00:21.500 QwikScanTest: 13000] Got Frame 13000 in 71.595459 secs 00001489 19:00:21.500 QwikScanTest: Avg Search time = 125.839783 secs : Avg Searched = 1521.419 FPS 00001490 19:00:21.500 QwikScanTest: 00001491 19:00:21.500 QwikScanTest: LumaTol = 16.00 00001492 19:05:16.984 QwikScanTest: 3000] Got Frame 3000 in 295.473145 secs 00001493 19:07:06.281 QwikScanTest: 4000] Got Frame 4000 in 109.297119 secs 00001494 19:07:33.468 QwikScanTest: 5000] Got Frame 5000 in 27.183594 secs 00001495 19:19:05.687 QwikScanTest: 6000] Got Frame 6000 in 692.185547 secs 00001496 19:21:22.656 QwikScanTest: 7000] Got Frame 7000 in 136.964844 secs 00001497 19:31:21.406 QwikScanTest: 8000] Got Frame 8000 in 598.720703 secs 00001498 19:31:55.656 QwikScanTest: 9000] Got Frame 9000 in 34.247559 secs 00001499 19:32:27.296 QwikScanTest: 10000] Got Frame 10000 in 31.631348 secs 00001500 19:38:06.203 QwikScanTest: 11000] Got Frame 11000 in 338.902344 secs 00001501 19:39:10.000 QwikScanTest: 12000] Got Frame 12000 in 63.796387 secs 00001502 19:42:01.140 QwikScanTest: 13000] Got Frame 13000 in 171.128418 secs 00001503 19:42:01.140 QwikScanTest: Avg Search time = 249.953094 secs : Avg Searched = 765.964 FPS 00001504 19:42:01.156 QwikScanTest: TOTAL TIME = 4079.293 secs (67.99 mins) Code:
00001433 18:10:50.390 RT_QwikScanCreate: Total time = 791.58 seconds (13.19 mins) 00001434 18:10:50.390 QwikScanTest: 00001435 18:10:50.390 QwikScanTest: LumaTol = 0.00 00001436 18:10:50.781 QwikScanTest: 3000] Got Frame 3000 in 0.291931 secs 00001437 18:10:50.843 QwikScanTest: 4000] Got Frame 4000 in 0.068787 secs 00001438 18:10:50.890 QwikScanTest: 5000] Got Frame 5000 in 0.046021 secs 00001439 18:10:51.015 QwikScanTest: 6000] Got Frame 6000 in 0.132996 secs 00001440 18:10:51.218 QwikScanTest: 7000] Got Frame 7000 in 0.199158 secs 00001441 18:10:51.437 QwikScanTest: 8000] Got Frame 8000 in 0.214050 secs 00001442 18:10:51.515 QwikScanTest: 9000] Got Frame 9000 in 0.074219 secs 00001443 18:10:51.703 QwikScanTest: 10000] Got Frame 10000 in 0.192444 secs 00001444 18:10:51.921 QwikScanTest: 11000] Got Frame 11000 in 0.224243 secs 00001445 18:10:52.125 QwikScanTest: 12000] Got Frame 12000 in 0.203918 secs 00001446 18:10:52.218 QwikScanTest: 13000] Got Frame 13000 in 0.090942 secs 00001447 18:10:52.218 QwikScanTest: Avg Search time = 0.173871 secs : Avg Searched = 1101133.375 FPS 00001448 18:10:52.218 QwikScanTest: 00001449 18:10:52.218 QwikScanTest: LumaTol = 4.00 00001450 18:10:52.718 QwikScanTest: 3000] Got Frame 3000 in 0.494995 secs 00001451 18:10:52.765 QwikScanTest: 4000] Got Frame 4000 in 0.050171 secs 00001452 18:10:52.812 QwikScanTest: 5000] Got Frame 5000 in 0.048035 secs 00001453 18:10:53.234 QwikScanTest: 6000] Got Frame 6000 in 0.411987 secs 00001454 18:10:53.484 QwikScanTest: 7000] Got Frame 7000 in 0.258301 secs 00001455 18:10:53.796 QwikScanTest: 8000] Got Frame 8000 in 0.299316 secs 00001456 18:10:53.968 QwikScanTest: 9000] Got Frame 9000 in 0.180054 secs 00001457 18:10:54.531 QwikScanTest: 10000] Got Frame 10000 in 0.557739 secs 00001458 18:10:55.125 QwikScanTest: 11000] Got Frame 11000 in 0.598877 secs 00001459 18:10:55.343 QwikScanTest: 12000] Got Frame 12000 in 0.208557 secs 00001460 18:11:00.390 QwikScanTest: 13000] Got Frame 13000 in 5.059814 secs 00001461 18:11:00.390 QwikScanTest: Avg Search time = 0.816785 secs : Avg Searched = 234400.828 FPS 00001462 18:11:00.406 QwikScanTest: 00001463 18:11:00.406 QwikScanTest: LumaTol = 8.00 00001464 18:11:01.000 QwikScanTest: 3000] Got Frame 3000 in 0.595642 secs 00001465 18:11:01.328 QwikScanTest: 4000] Got Frame 4000 in 0.340088 secs 00001466 18:11:03.312 QwikScanTest: 5000] Got Frame 5000 in 1.975830 secs 00001467 18:11:05.531 QwikScanTest: 6000] Got Frame 6000 in 2.218445 secs 00001468 18:11:05.890 QwikScanTest: 7000] Got Frame 7000 in 0.365906 secs 00001469 18:11:06.578 QwikScanTest: 8000] Got Frame 8000 in 0.687744 secs 00001470 18:11:06.812 QwikScanTest: 9000] Got Frame 9000 in 0.229126 secs 00001471 18:11:07.921 QwikScanTest: 10000] Got Frame 10000 in 1.102112 secs 00001472 18:11:09.187 QwikScanTest: 11000] Got Frame 11000 in 1.262756 secs 00001473 18:11:10.484 QwikScanTest: 12000] Got Frame 12000 in 1.306335 secs 00001474 18:11:11.515 QwikScanTest: 13000] Got Frame 13000 in 1.029785 secs 00001475 18:11:11.515 QwikScanTest: Avg Search time = 1.111377 secs : Avg Searched = 172268.281 FPS 00001476 18:11:11.515 QwikScanTest: 00001477 18:11:11.515 QwikScanTest: LumaTol = 12.00 00001478 18:11:12.046 QwikScanTest: 3000] Got Frame 3000 in 0.528748 secs 00001479 18:11:14.109 QwikScanTest: 4000] Got Frame 4000 in 2.060547 secs 00001480 18:11:21.250 QwikScanTest: 5000] Got Frame 5000 in 7.143982 secs 00001481 18:11:35.296 QwikScanTest: 6000] Got Frame 6000 in 14.047180 secs 00001482 18:11:39.703 QwikScanTest: 7000] Got Frame 7000 in 4.407166 secs 00001483 18:11:52.484 QwikScanTest: 8000] Got Frame 8000 in 12.780212 secs 00001484 18:11:53.031 QwikScanTest: 9000] Got Frame 9000 in 0.539673 secs 00001485 18:11:54.390 QwikScanTest: 10000] Got Frame 10000 in 1.363708 secs 00001486 18:12:14.984 QwikScanTest: 11000] Got Frame 11000 in 20.584717 secs 00001487 18:12:29.234 QwikScanTest: 12000] Got Frame 12000 in 14.246704 secs 00001488 18:12:35.500 QwikScanTest: 13000] Got Frame 13000 in 6.279663 secs 00001489 18:12:35.500 QwikScanTest: Avg Search time = 8.398230 secs : Avg Searched = 22797.066 FPS 00001490 18:12:35.515 QwikScanTest: 00001491 18:12:35.515 QwikScanTest: LumaTol = 16.00 00001492 18:12:37.234 QwikScanTest: 3000] Got Frame 3000 in 1.723083 secs 00001493 18:12:42.578 QwikScanTest: 4000] Got Frame 4000 in 5.337830 secs 00001494 18:12:55.343 QwikScanTest: 5000] Got Frame 5000 in 12.768433 secs 00001495 18:13:36.156 QwikScanTest: 6000] Got Frame 6000 in 40.813232 secs 00001496 18:13:47.625 QwikScanTest: 7000] Got Frame 7000 in 11.472595 secs 00001497 18:14:44.906 QwikScanTest: 8000] Got Frame 8000 in 57.274414 secs 00001498 18:14:51.265 QwikScanTest: 9000] Got Frame 9000 in 6.364258 secs 00001499 18:15:04.093 QwikScanTest: 10000] Got Frame 10000 in 12.816406 secs 00001500 18:16:12.296 QwikScanTest: 11000] Got Frame 11000 in 68.203369 secs 00001501 18:17:00.859 QwikScanTest: 12000] Got Frame 12000 in 48.566162 secs 00001502 18:17:53.093 QwikScanTest: 13000] Got Frame 13000 in 52.229004 secs 00001503 18:17:53.093 QwikScanTest: Avg Search time = 31.756878 secs : Avg Searched = 6028.772 FPS 00001504 18:17:53.093 QwikScanTest: TOTAL TIME = 422.690 secs (7.04 mins)
__________________
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 ??? |
30th January 2016, 13:56 | #360 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Post #1 of 2
Have now decided upon new 16 component FingerPrint to replace old 4 component FingerPrint in RT_QwikScan. Here timing test on JurassicPark (non-RoboCropped, would be faster if small amount of letterboxing removed as it would 'water down' fingerprinting). Code:
AVISource("JurassicPark.avi") #.Trim(0,-100000) RTVER2 = (RT_Version > 1.99) # New Version RT_Stats ? EXT = (RTVER2) ? ".ARR" : ".DB" FINGER = "JPARK" + EXT PREV = "JPARK_PREV" + EXT # Prev LOCATOR, ie BackWards Search. NEXT = "JPARK_NEXT" + EXT # Next LOCATOR, ie ForWards Search (not used in this script). RT_FileDelete(FINGER) RT_FileDelete(PREV) RT_FileDelete(NEXT) # Uncomment to Create QwikScan DBs/Arrays, comment out to Re-Run (Exist(FINGER)) ? NOP : RT_QwikScanCreate(Last, FINGER , PREV,"", debug=true) # We dont need NEXT Locator for this backwards scan test. START=RT_TimerHP() QwikScanTest(Last,FINGER,PREV,0.0) QwikScanTest(Last,FINGER,PREV,1.0) QwikScanTest(Last,FINGER,PREV,2.0) QwikScanTest(Last,FINGER,PREV,3.0) QwikScanTest(Last,FINGER,PREV,4.0) QwikScanTest(Last,FINGER,PREV,5.0) QwikScanTest(Last,FINGER,PREV,6.0) QwikScanTest(Last,FINGER,PREV,7.0) QwikScanTest(Last,FINGER,PREV,8.0) QwikScanTest(Last,FINGER,PREV,9.0) QwikScanTest(Last,FINGER,PREV,10.0) QwikScanTest(Last,FINGER,PREV,11.0) QwikScanTest(Last,FINGER,PREV,12.0) QwikScanTest(Last,FINGER,PREV,13.0) QwikScanTest(Last,FINGER,PREV,14.0) QwikScanTest(Last,FINGER,PREV,15.0) QwikScanTest(Last,FINGER,PREV,16.0) TIM=RT_TimerHP()-START RT_DebugF("TOTAL TIME = %.3f secs (%.2f mins)",TIM,TIM/60.0,name="QwikScanTest: ") return MessageClip("QwikScanTest: DONE") Function QwikScanTest(clip c,String FINGER,String PREV,Float LumaTol) { # Test script searching ~175,000 frames per FindFrame: c myName="QwikScanTest: " SearchStart=FrameCount-1 # Search direction from end to beginning, using PREV (ie Backward search). RT_DebugF("",name=myName) RT_DebugF("LumaTol = %.2f",LumaTol,name=myName) GScript(""" Tot = 0.0 TotSearched=0 For(FindFrame=3000,13000,1000) { S=RT_TimerHP() Result = RT_QwikScan(Last,SearchStart,Last,FindFrame,FINGER,PREV,lumatol=LUMATOL,Flags=2,LD=0.0,maxdistance=SearchStart-0) T=RT_TimerHP-S Tot = Tot + T Searched = SearchStart - Result + 1 TotSearched = TotSearched + Searched RT_Debugf("%6d] Got Frame %6d in %10f secs",Findframe,Result,T,name=myName) } RT_Debugf("Avg Search time = %10f secs : Avg Searched = %.3f FPS",Tot/10.0,TotSearched/Tot,name=myName) """) return Last } Code:
00000004 11:50:39 [1992] RT_QwikScanCreate: RT_QwikScanCreate() by StainlessS 00000051 12:05:19 RT_QwikScanCreate: Total time = 879.56 seconds (14.66 mins) 00000052 12:05:19 QwikScanTest: 00000053 12:05:19 QwikScanTest: LumaTol = 0.00 00000054 12:05:19 QwikScanTest: 3000] Got Frame 3000 in 0.346375 secs 00000055 12:05:19 QwikScanTest: 4000] Got Frame 4000 in 0.051880 secs 00000056 12:05:19 QwikScanTest: 5000] Got Frame 5000 in 0.076843 secs 00000057 12:05:20 QwikScanTest: 6000] Got Frame 6000 in 0.126953 secs 00000058 12:05:20 QwikScanTest: 7000] Got Frame 7000 in 0.132751 secs 00000059 12:05:20 QwikScanTest: 8000] Got Frame 8000 in 0.130676 secs 00000060 12:05:20 QwikScanTest: 9000] Got Frame 9000 in 0.090881 secs 00000061 12:05:20 QwikScanTest: 10000] Got Frame 10000 in 0.267456 secs 00000062 12:05:20 QwikScanTest: 11000] Got Frame 11000 in 0.157593 secs 00000063 12:05:21 QwikScanTest: 12000] Got Frame 12000 in 0.162415 secs 00000064 12:05:21 QwikScanTest: 13000] Got Frame 13000 in 0.124023 secs 00000065 12:05:21 QwikScanTest: Avg Search time = 0.166785 secs : Avg Searched = 1147917.250 FPS 00000066 12:05:21 QwikScanTest: 00000067 12:05:21 QwikScanTest: LumaTol = 1.00 00000068 12:05:21 QwikScanTest: 3000] Got Frame 3000 in 0.349548 secs 00000069 12:05:21 QwikScanTest: 4000] Got Frame 4000 in 0.012817 secs 00000070 12:05:21 QwikScanTest: 5000] Got Frame 5000 in 0.020447 secs 00000071 12:05:21 QwikScanTest: 6000] Got Frame 6000 in 0.292786 secs 00000072 12:05:21 QwikScanTest: 7000] Got Frame 7000 in 0.063477 secs 00000073 12:05:22 QwikScanTest: 8000] Got Frame 8000 in 0.217041 secs 00000074 12:05:22 QwikScanTest: 9000] Got Frame 9000 in 0.085693 secs 00000075 12:05:22 QwikScanTest: 10000] Got Frame 10000 in 0.131409 secs 00000076 12:05:22 QwikScanTest: 11000] Got Frame 11000 in 0.136658 secs 00000077 12:05:22 QwikScanTest: 12000] Got Frame 12000 in 0.071411 secs 00000078 12:05:22 QwikScanTest: 13000] Got Frame 13000 in 0.146118 secs 00000079 12:05:22 QwikScanTest: Avg Search time = 0.152740 secs : Avg Searched = 1253466.000 FPS 00000080 12:05:22 QwikScanTest: 00000081 12:05:22 QwikScanTest: LumaTol = 2.00 00000082 12:05:22 QwikScanTest: 3000] Got Frame 3000 in 0.171509 secs 00000083 12:05:22 QwikScanTest: 4000] Got Frame 4000 in 0.009888 secs 00000084 12:05:22 QwikScanTest: 5000] Got Frame 5000 in 0.012207 secs 00000085 12:05:22 QwikScanTest: 6000] Got Frame 6000 in 0.099548 secs 00000086 12:05:23 QwikScanTest: 7000] Got Frame 7000 in 0.072693 secs 00000087 12:05:23 QwikScanTest: 8000] Got Frame 8000 in 0.161621 secs 00000088 12:05:23 QwikScanTest: 9000] Got Frame 9000 in 0.056641 secs 00000089 12:05:23 QwikScanTest: 10000] Got Frame 10000 in 0.108093 secs 00000090 12:05:23 QwikScanTest: 11000] Got Frame 11000 in 0.092224 secs 00000091 12:05:23 QwikScanTest: 12000] Got Frame 12000 in 0.028442 secs 00000092 12:05:24 QwikScanTest: 13000] Got Frame 13000 in 1.214905 secs 00000093 12:05:24 QwikScanTest: Avg Search time = 0.202777 secs : Avg Searched = 944164.813 FPS 00000094 12:05:24 QwikScanTest: 00000095 12:05:24 QwikScanTest: LumaTol = 3.00 00000096 12:05:24 QwikScanTest: 3000] Got Frame 3000 in 0.105103 secs 00000097 12:05:24 QwikScanTest: 4000] Got Frame 4000 in 0.004822 secs 00000098 12:05:24 QwikScanTest: 5000] Got Frame 5000 in 0.043945 secs 00000099 12:05:25 QwikScanTest: 6000] Got Frame 6000 in 0.165405 secs 00000100 12:05:25 QwikScanTest: 7000] Got Frame 7000 in 0.232666 secs 00000101 12:05:25 QwikScanTest: 8000] Got Frame 8000 in 0.128418 secs 00000102 12:05:25 QwikScanTest: 9000] Got Frame 9000 in 0.072754 secs 00000103 12:05:25 QwikScanTest: 10000] Got Frame 10000 in 0.239380 secs 00000104 12:05:25 QwikScanTest: 11000] Got Frame 11000 in 0.201599 secs 00000105 12:05:26 QwikScanTest: 12000] Got Frame 12000 in 0.096985 secs 00000106 12:05:26 QwikScanTest: 13000] Got Frame 13000 in 0.769226 secs 00000107 12:05:26 QwikScanTest: Avg Search time = 0.206030 secs : Avg Searched = 929256.625 FPS 00000108 12:05:26 QwikScanTest: 00000109 12:05:26 QwikScanTest: LumaTol = 4.00 00000110 12:05:27 QwikScanTest: 3000] Got Frame 3000 in 0.238403 secs 00000111 12:05:27 QwikScanTest: 4000] Got Frame 4000 in 0.041504 secs 00000112 12:05:27 QwikScanTest: 5000] Got Frame 5000 in 0.049438 secs 00000113 12:05:27 QwikScanTest: 6000] Got Frame 6000 in 0.263123 secs 00000114 12:05:27 QwikScanTest: 7000] Got Frame 7000 in 0.137268 secs 00000115 12:05:27 QwikScanTest: 8000] Got Frame 8000 in 0.189087 secs 00000116 12:05:27 QwikScanTest: 9000] Got Frame 9000 in 0.166199 secs 00000117 12:05:28 QwikScanTest: 10000] Got Frame 10000 in 0.145508 secs 00000118 12:05:28 QwikScanTest: 11000] Got Frame 11000 in 0.192322 secs 00000119 12:05:28 QwikScanTest: 12000] Got Frame 12000 in 0.148560 secs 00000120 12:05:28 QwikScanTest: 13000] Got Frame 13000 in 0.384705 secs 00000121 12:05:28 QwikScanTest: Avg Search time = 0.195612 secs : Avg Searched = 978750.875 FPS 00000122 12:05:28 QwikScanTest: 00000123 12:05:28 QwikScanTest: LumaTol = 5.00 00000124 12:05:29 QwikScanTest: 3000] Got Frame 3000 in 0.280396 secs 00000125 12:05:29 QwikScanTest: 4000] Got Frame 4000 in 0.054749 secs 00000126 12:05:29 QwikScanTest: 5000] Got Frame 5000 in 0.365051 secs 00000127 12:05:29 QwikScanTest: 6000] Got Frame 6000 in 0.365234 secs 00000128 12:05:30 QwikScanTest: 7000] Got Frame 7000 in 0.207642 secs 00000129 12:05:30 QwikScanTest: 8000] Got Frame 8000 in 0.349792 secs 00000130 12:05:30 QwikScanTest: 9000] Got Frame 9000 in 0.080261 secs 00000131 12:05:30 QwikScanTest: 10000] Got Frame 10000 in 0.232544 secs 00000132 12:05:30 QwikScanTest: 11000] Got Frame 11000 in 0.219299 secs 00000133 12:05:31 QwikScanTest: 12000] Got Frame 12000 in 0.199646 secs 00000134 12:05:31 QwikScanTest: 13000] Got Frame 13000 in 0.278564 secs 00000135 12:05:31 QwikScanTest: Avg Search time = 0.263318 secs : Avg Searched = 727087.000 FPS 00000136 12:05:31 QwikScanTest: 00000137 12:05:31 QwikScanTest: LumaTol = 6.00 00000138 12:05:31 QwikScanTest: 3000] Got Frame 3000 in 0.126953 secs 00000139 12:05:31 QwikScanTest: 4000] Got Frame 4000 in 0.116028 secs 00000140 12:05:32 QwikScanTest: 5000] Got Frame 5000 in 0.448853 secs 00000141 12:05:32 QwikScanTest: 6000] Got Frame 6000 in 0.518555 secs 00000142 12:05:32 QwikScanTest: 7000] Got Frame 7000 in 0.190247 secs 00000143 12:05:33 QwikScanTest: 8000] Got Frame 8000 in 0.596313 secs 00000144 12:05:33 QwikScanTest: 9000] Got Frame 9000 in 0.124817 secs 00000145 12:05:33 QwikScanTest: 10000] Got Frame 10000 in 0.258606 secs 00000146 12:05:34 QwikScanTest: 11000] Got Frame 11000 in 0.433838 secs 00000147 12:05:34 QwikScanTest: 12000] Got Frame 12000 in 0.247864 secs 00000148 12:05:35 QwikScanTest: 13000] Got Frame 13000 in 0.598877 secs 00000149 12:05:35 QwikScanTest: Avg Search time = 0.366095 secs : Avg Searched = 522965.406 FPS 00000150 12:05:35 QwikScanTest: 00000151 12:05:35 QwikScanTest: LumaTol = 7.00 00000152 12:05:35 QwikScanTest: 3000] Got Frame 3000 in 0.435547 secs 00000153 12:05:35 QwikScanTest: 4000] Got Frame 4000 in 0.157654 secs 00000154 12:05:36 QwikScanTest: 5000] Got Frame 5000 in 0.804016 secs 00000155 12:05:37 QwikScanTest: 6000] Got Frame 6000 in 0.545349 secs 00000156 12:05:37 QwikScanTest: 7000] Got Frame 7000 in 0.176636 secs 00000157 12:05:37 QwikScanTest: 8000] Got Frame 8000 in 0.412476 secs 00000158 12:05:37 QwikScanTest: 9000] Got Frame 9000 in 0.084412 secs 00000159 12:05:38 QwikScanTest: 10000] Got Frame 10000 in 0.352600 secs 00000160 12:05:38 QwikScanTest: 11000] Got Frame 11000 in 0.585999 secs 00000161 12:05:38 QwikScanTest: 12000] Got Frame 12000 in 0.367310 secs 00000162 12:05:39 QwikScanTest: 13000] Got Frame 13000 in 0.618896 secs 00000163 12:05:39 QwikScanTest: Avg Search time = 0.454089 secs : Avg Searched = 421624.063 FPS 00000164 12:05:39 QwikScanTest: 00000165 12:05:39 QwikScanTest: LumaTol = 8.00 00000166 12:05:39 QwikScanTest: 3000] Got Frame 3000 in 0.167358 secs 00000167 12:05:40 QwikScanTest: 4000] Got Frame 4000 in 0.343262 secs 00000168 12:05:41 QwikScanTest: 5000] Got Frame 5000 in 1.232056 secs 00000169 12:05:42 QwikScanTest: 6000] Got Frame 6000 in 0.883545 secs 00000170 12:05:42 QwikScanTest: 7000] Got Frame 7000 in 0.198364 secs 00000171 12:05:43 QwikScanTest: 8000] Got Frame 8000 in 0.599060 secs 00000172 12:05:43 QwikScanTest: 9000] Got Frame 9000 in 0.187134 secs 00000173 12:05:43 QwikScanTest: 10000] Got Frame 10000 in 0.431396 secs 00000174 12:05:44 QwikScanTest: 11000] Got Frame 11000 in 0.830872 secs 00000175 12:05:44 QwikScanTest: 12000] Got Frame 12000 in 0.319458 secs 00000176 12:05:45 QwikScanTest: 13000] Got Frame 13000 in 0.725037 secs 00000177 12:05:45 QwikScanTest: Avg Search time = 0.591754 secs : Avg Searched = 323538.063 FPS
__________________
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 ??? |
Tags |
averageluma, correlation, lumadifference, runtime |
Thread Tools | Search this Thread |
Display Modes | |
|
|