Giter Site home page Giter Site logo

Comments (9)

azeem avatar azeem commented on August 23, 2024

Nice find! AVS Convolution isnt working on my machine for some reason. Are you sure it comes up upside down in AVS? Like a happy face or a sad face? Technically, it should come right side up, like a happy face right?

I'm using the following kernel.

    0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,
    1,0,0,0,0,0,1,
    0,1,0,0,0,1,0,
    0,0,1,1,1,0,0,
    0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,

and this is the bug fixed output
smileytest

please confirm if this is correct.

from webvs.

QOAL avatar QOAL commented on August 23, 2024

The convolution filter doesn't work on more recent operating systems, it works fine on XP though.
I have XP VMs for testing stuff in old IE versions, heh. (My VM currently has WA 5.56 and AVS 2.82)
I highly recommend setting one up to test AVS presets, everything should render correctly with it.
(You may want to see this WA forums thread, if you haven't already: http://forums.winamp.com/showthread.php?t=329743)

convolutioncorrectness

from webvs.

grandchild avatar grandchild commented on August 23, 2024

Sorry for bringing this issue up again, but could it be that this is a bug in the ConvoFilter from AVS? Or is this upside-down (and right-side-left!) behavior how a convolution filter should work?
I'd think it more intuitive if I placed a pixel to the bottom left of the center in the kernel, that the pixel should move there as well...

/edit: If this should be turned around again, I'd just update the kernel parser in the converter accordingly.

from webvs.

azeem avatar azeem commented on August 23, 2024

@grandchild yeah. to me it seems like some kind of mistake in AVS ConvoFilter. When i wrote Webvs convo filter i intuitively followed the right side up formula. I have changed this for compatibility sake.

Most of the convo filter kernels that i came across were symmetric, so i guess the orientation of the kernel doesnt change appearance of most effects. Whether we should implement this correctly in Webvs and turn it around during conversions is debatable. Or maybe we could even have a compat switch similar to the one in DynamicMovement.

from webvs.

grandchild avatar grandchild commented on August 23, 2024

I'd argue for eventually doing it "correctly" since I/we can take care of the AVS peculiarities in the converter.

/edit: what I am trying to say really, is that presets are converted from .avs to json files anyway and thus we don't need to worry too much about representation compatibility in files or the editor, only on-screen.

from webvs.

azeem avatar azeem commented on August 23, 2024

I have the same opinion. Reopening this bug now. More votes on whether the smiley face up way is the correct way?

from webvs.

grandchild avatar grandchild commented on August 23, 2024

Okay I did a little research and this article shows (a few pages down) that AVS did in fact do this right, convolution filters are mirrored along both axes.
This goes together with the mathematical definition of Convolution where the function (in this case a discrete distribution - the kernel) is inverted before being multiplied with the signal.

from webvs.

grandchild avatar grandchild commented on August 23, 2024

You could turn them "intuitively right" but then you would have to call them "Correlation Filters" :P

from webvs.

azeem avatar azeem commented on August 23, 2024

Brilliant!

The difference between Convolution and Correlation is that for Convolution you have to mirror the
filter matrix, but usually it's symmetrical anyway so there's no difference.

So I guess, that settles it. We will do it the AVS way. Good work!

from webvs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.