pbristow
21st June 2011, 15:12
This is not a serious request for anyone to put in diagnostic time on my problem - that would be silly! :) - but I present it for interest, as a case study of "work in progress with obvious problems" if you like, but I would also welcome any suggestions as to where to start diagnosing or working around the problem. (I have my own ideas, e.g. start by splitting the comparison stage from the generation of the test cases as two separate scripts, and proceed from there...)
Background:
-----------
I've been developing this script for over a couple of days now, and it's steadily grown more complex and demanding of CPU... although the memory requirement seems to have stayed reasonably small. Basically, it's a comparison testbed for different de-interlacers.
What the script does:
---------------------
It takes a 24fps progressive file, strips out alternate fields from successive frames, and weaves the result in to a 12fps interlaced clip. This clip is them passed to each of the de-interlacers under test, and the result (or rather a cropped and reduced section of it, to reduce CPU time and screen space requirements) is compared with the original (progressive) source for accuracy. Numerical measurement of difference from the reference is done via ScriptClip and MT_lutxy. The measured difference is averaged first per frame, then over time (121 frames, i.e. just over 5 seconds), and displayed on the output (updated every 11 frames) - This is achieved using TemporalSoften(radius=5) twice, with a SelectEvery(11,6) in between.
Finally, another comparison is done looking at how much change occurs between each frame of the output and the average of the ones before and after: This is checking for interlace flicker in the output and is again time-averaged of 121 frames.
The version of the script I've included here has 3 test active: Those for Bob, Yadif, and EEDI2 (basically, the simplest three cases). All the code is in place for testing various other deinterlacers (including combinations of TDeint with various interpolators), and the tests can be switched in or out simply by modifying the final StackHorizontal call.
The problem:
------------
Unfortunately, as the script has grown more complex, the number of times Virtualdub crashes just trying to open it has steadily increased, 'til it's now reached 100% (having just added the flicker check stage).
Crash details (as reported by VirtualDub):
------------------------------------------
VirtualDub has crashed. (etc.)
An out-of-bounds memory access (access violation) occurred in module 'mt_masktools-26'...
...reading address 11E72004.
(Same address quoted each time)
My Setup:
---------
VirtualDub 1.9.7
AVIsynth 2.5.8 MT
MaskTools v2.0a48
Haali media splitter
FFDShow decoder
Windows XP Pro (32 bit)
AMD Athlon II X3 425 (2.7GHz, three cores)
3GB ram (DDR2).
...and miscellaneous disk drives of various ages and capacities (mostly SATA). :)
(Script to follow in next post.)
Background:
-----------
I've been developing this script for over a couple of days now, and it's steadily grown more complex and demanding of CPU... although the memory requirement seems to have stayed reasonably small. Basically, it's a comparison testbed for different de-interlacers.
What the script does:
---------------------
It takes a 24fps progressive file, strips out alternate fields from successive frames, and weaves the result in to a 12fps interlaced clip. This clip is them passed to each of the de-interlacers under test, and the result (or rather a cropped and reduced section of it, to reduce CPU time and screen space requirements) is compared with the original (progressive) source for accuracy. Numerical measurement of difference from the reference is done via ScriptClip and MT_lutxy. The measured difference is averaged first per frame, then over time (121 frames, i.e. just over 5 seconds), and displayed on the output (updated every 11 frames) - This is achieved using TemporalSoften(radius=5) twice, with a SelectEvery(11,6) in between.
Finally, another comparison is done looking at how much change occurs between each frame of the output and the average of the ones before and after: This is checking for interlace flicker in the output and is again time-averaged of 121 frames.
The version of the script I've included here has 3 test active: Those for Bob, Yadif, and EEDI2 (basically, the simplest three cases). All the code is in place for testing various other deinterlacers (including combinations of TDeint with various interpolators), and the tests can be switched in or out simply by modifying the final StackHorizontal call.
The problem:
------------
Unfortunately, as the script has grown more complex, the number of times Virtualdub crashes just trying to open it has steadily increased, 'til it's now reached 100% (having just added the flicker check stage).
Crash details (as reported by VirtualDub):
------------------------------------------
VirtualDub has crashed. (etc.)
An out-of-bounds memory access (access violation) occurred in module 'mt_masktools-26'...
...reading address 11E72004.
(Same address quoted each time)
My Setup:
---------
VirtualDub 1.9.7
AVIsynth 2.5.8 MT
MaskTools v2.0a48
Haali media splitter
FFDShow decoder
Windows XP Pro (32 bit)
AMD Athlon II X3 425 (2.7GHz, three cores)
3GB ram (DDR2).
...and miscellaneous disk drives of various ages and capacities (mostly SATA). :)
(Script to follow in next post.)