View Single Post
Old 3rd December 2010, 04:30   #11  |  Link
Prettz
easily bamboozled user
 
Prettz's Avatar
 
Join Date: Sep 2002
Location: Atlanta
Posts: 373
The attachments have been approved now. I'll compile a dll that autodetects which optimization to use once we know there's no bugs in the YV12 code. For now there's no need, it needs testing first and foremost.

For a lot of testing I used a script like this:
Code:
LoadPlugin("C:\Program Files (x86)\Avisynth 2.5\plugins64\FluxSmoothTest.dll")

s = AviSource("E:\metropolis\test3.avi")

fc = s.FluxSmoothST(12,10,0)
f  = s.FluxSmoothST(12,10,2)

cu = fc.UToY()
cv = fc.VToY()

fu = f.UToY()
fv = f.VToY()

y = Overlay(fc, f, mode="Difference", pc_range=true).ColorYUV(autogain=true,cont_u=1024,cont_v=1024)
u = Overlay(cu, fu, mode="Difference", pc_range=true).ColorYUV(autogain=true)
v = Overlay(cv, fv, mode="Difference", pc_range=true).ColorYUV(autogain=true)

StackHorizontal(y, StackVertical(u, v))
But this isn't that great. I still needed to step through manually in virtualdub with my eyes glued to the screen. I'm sure some filter developer out there has some kind of batch tool to comb through a video and print out differences to a window or a file. Trying to tell if the SSE2 version is correct or not is inherently difficult because even when it's working perfectly many pixels on each frame will still be off by 1 from the C version.

One other thing I forgot to mention: the YUY2 code is completely untouched. The "opt" parameter in the test dll doesn't affect it; it'll autodetect MMX just like always.
Prettz is offline   Reply With Quote