Hmm, I was looking for a good pseudo RNG function and checked this one out (I also looked at your RNG snippet)... The noise seem to be.. well too random
What I mean is that its distribution is not consistent over space. You should see the same noise configuration being shifted if you offset it. This is not the case: it changes completely.
Looking at the code I think I see the "problem" (its not really a problem in this filter I guess): the v variable (the seed) is constantly reconfigured by the previous result, implicitly resulting in a noise configuration that depends directly on the rendering order and not the x,y coords alone.
I will post a more consistent RNG function here if I figure out something..