Comments (9)
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
please confirm if this is correct.
from webvs.
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)
from webvs.
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.
@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.
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.
I have the same opinion. Reopening this bug now. More votes on whether the smiley face up
way is the correct way?
from webvs.
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.
You could turn them "intuitively right" but then you would have to call them "Correlation Filters" :P
from webvs.
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)
- Support arbitrary linewidth
- component property names ('s capitalization) HOT 6
- Make enumeration property values case-insensitive
- Pillofight example not working properly
- Not running anywhere anymore. (libs.js error?) HOT 4
- Examples do not play audio in Chrome HOT 1
- Examples do not react to audio in Firefox
- Indexes in webvs JSON? HOT 2
- Handle unsupported effects gracefully HOT 1
- None of the examples work, because the music has been removed from Soundcloud. HOT 4
- Showcase live webvs examples on the web HOT 2
- Write more Unit Tests
- Uncaught TypeError: Cannot read property 'updateDimVars' of undefined
- Component support HOT 6
- New TexerII feature: Add variable for rotation
- SSC missing code variables
- Missing blendmodes
- func-tests don't run (on linux?) HOT 1
- Help with Preset HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from webvs.