You would naturally need some kind of workspace to store the results. I think that a normal shader is not supposed to write data back to from where it was read, so there can be some quite significant "read, multiply, write to new location" going on.
I'm afraid you either replied to the wrong comment, or didn't understand at all the comment you're replying to.
The Video RAM will determine the maximum array length that can be sorted on the GPU. A rough guideline for performing FFT on 32-bit floats is: Maximum array length in millions = Video RAM in MB / 32
Max array length equals video RAM in megabytes divided by 32... bits? Correct me if i'm dumb but shouldn't it rather be "Video RAM in MB / 4"?
That thing is called GPUFFTW, one could assume that it is based on the FFTW library (which is after all the best performing FFT library around) but after looking at every page on this site, I couldn't find a single credit to FFTW.
Are the two linked or is the W at the end of the name just a mere coincidence?
At last a good occasion to explain what the FFT is! But huh, I'll rather link to Wikipedia, not that I couldn't explain by myself eh, pshhh!
Note how many comments are about explaining what FFT is as opposed to how many comments consist in asking what FFT means. Quite a fucked up demand/offer ratio.
Colour information is interpolated among neighbouring pixels to produce an (approximate) full-colour image.
Wait, are you sure that there's anything interpolated? Because the way it sounds to me, nothing is being interpolated, it's just that groups of four of these pixels on this grid are put together to form one color pixel. I think that if stuff were interpolated in any way it would look as if the image had been well... interpolated (i mean blurry).
the bayer grid on the CCD cuts the data down to one third in size
You excited my curiousity. How does it achieve that?
while PNG only supports 8 or 16, meaning PNG will have to add a significant amount of bloat to the data before it can be represented.
But if you want for example to have your photos displayed on your website, you'll go straight for the 8 bit, therefore it'll be lighter than your cam's 12-bits. And then, the RAW data is PCM, as PNG is compressed. Plus, don't raws take 4 color "layers" instead of 3, due to the two green "subpixels"?
The "frequency" of this noise is high, because the potential difference from one pixel to the next is great.
While you can say that the difference between pixels is great, I find it innacurate to say that the frequency of the noise is high, because it's frequencies are uniformly spread from DC to the Nyquist frequency.
The frequencies in a blurry image are low.
I find it inacurrate as well, the high frequencies are diminished, that's all. To put it another way, it's like a graphical equalizer where there sliders would go down as you would go up in frequencies. Unless you blur your image by convolving with a windowed-sinc function, your high frequencies are still there.
scale up the 2x2 image with bilinear filtering
ummm... correct me if i'm wrong, but i think it's a bad idea to use bilinear filtering, because of the high frequencies it would bring up. windowed-sinc interpolation seems better to me since it wouldn't bring such problems.
Anyways I find your wavelet transform method weird and inefficient. You're better off using filter banks, much simpler and straightforward.
I think TIFF does this
TIFF has many compressions, along with PCM. You should say which compression you're talking about, for the sake of clarity:-)
Anyway the idea here is to take all the first bits of each pixel and stick them one after another, and then stick the second bits of all the pixels one after the other... You'll end up with 8 images this way, and you'll find that the image with the highest bits is easily recognizeable and has clear sharp edges, but when you get to the image with the lowest bits, all you have is noise.
If you discard let's say the 8th image, it all comes down to coding your image on 7 bits. You can interpolate, but you still only have 7 bits, therefore 128 levels instead of 256.
I think that Jef Raskin is overestimated when it comes to interface design. He doesn't even deserve that title of father of the macintosh, since his original contributions from the late 70's can hardly be found as such in the Macintosh, and then, he's over rated. The last stuff he was working on with his son before he died was a concept of GUI that would be based on zoom. I tried that flash demo at his website and it's an euphemism to say that I wasn't convinced.
Well OK i'm talking about the man and not about the book, but I just want to say that he's not such a reference.
HAM might take off among those who know how, and want to keep a free internet.
lol man, people will rather use PGP encryption with 2048 bit keys for everything they do rather than use ham radio. ham radio users are like Atari 2600 players, there will always be some but there will never be more.
Some people still use Mac Pluses and such as web servers. So if a Mac Plus can do it, a recent laptop computer can do it, even if it's not the most powerful solution.
I don't find that that insightful. How would normal people who send each other pictures in a simple and fast way. If we forget about everything we know, which is the most obvious way to send a file to the person you're chatting with? To drag the file on the chat window, I can't think of anything more obvious, fast and simple.
Never underestimate the bandwidth of a station wagon full of magnetic tapes hurtling down the highway.
Perfectly, actually that's more or less how the SETI works, shipping for 50 GB of data everyday from Puerto Rico to Berkeley on tapes. *Only* 50 GB tho.
vi would be a bad idea, it's got to much of a learning curve when they're really supposed to be learning programming - gedit or notepad might be better
Well, in first year of college, the first thing we were taugh was vi, the linux one with no gui. But for some mysterious reason, it worked much more like any other editor, meaning that you didn't need to us x to delete a character or dd to delete a line, you could just you the backspace key. So the only thing to know about vi was a for append, i for insert, and the combinations of:wq!. Then only later we've been taught emacs.
Btw the GUI vi is just as simple to use, I use vi on Windows all the time (and compile with gcc in cygwin) and I never have to type anything but a for append, not even:w or such. And btw don't forget about the syntax highlighting and formatting, I find it precious (for some reason the vi at school didn't have any of these, go figure). I would hate programming in notepad.
In 10-15 generations, if you turn out correct, your grandgrandgrandgrandgrandgrandgrandgrandgrandgrand grandgrandgrandgrandgrandchildren will be able to meet and tell mine "Told you so! HAHAHAH!"
Haha sure, it's not as if we made any prediction tho.
OK, scale-shielded tiny jumping 3 eyes humans might be possible, but I think they would take really a long time to appear as such. By the time you'd even see one, the whole damn earth would be populated by tall hairless humans;-)
I know, thanks alot, but on a global scale, it's stochastic, that's the point. Alright let me clear my thought. Mutations are random, but since they happen in billions of individuals, you can theorically figure them out statistically. As for lottery numbers, they get sorted out only once (well, that's if you play only once). The reason why you can't tell which will come out is that they are all as likely to come out, and can come out only once, as opposed to having the dices being throw billions of times for genetic mutations.
Alot of people seem to think that evolution works by having a mutation happening to only one animal, and then being transmitted etc etc... but actually the same mutations, height mutations, hair mutations, genetic diseases mutations, they happen to thousands, millions or billions of people.
That's the beauty of evolution: no knowledge or advancement can cover everything in what is a truly random process.
I think it's wrong. it's not truly random, it's stochastic. Think of it as a white noise, one sample in a white noise is trully random, but when you got thousands of these random samples put next to each other, what do you have? A flat frequency response, basically, or if you prefer, such characteristics as every frequency being represented equally. In the case of human evolution, consider mutations as a white noise, and consider selection/evolution factors as a filter. The output is still somewhat random, but has precise, global characteristics, like for example a mutation (in my analogy, a band of frequencies) making it's way into the mainstream, understand being more common/very amplified, and that would be due solely to the selection/evolution factors. That's just an example.
The point of all this is, yes, it's based on some purely random stuff, but if you put the same animals in the exact same environnments with the same events happenings and this for a few million years, you'll get pretty much the same results (the more animals you'll take the closer the results will be, if you take 3 monkeys in each experiment then you'll get as different results as if you throw dices 3 times, sum up the results and do it again and compare. Throw dices 10,000 times and you'll see that your two sums will be much closer).
Nature doesn't vote a new law where hairless tall man survive
lol, well, just imagine that 1% of un-hairless people die before reaching reproduction time due to that hair issue, after a few hundreds of thousands of years (or maybe even less) you'll get hairless people, almost nothing but that. That's the principle of natural selection, isn't it?
nature might come up with scale-shielded jumping tiny men that survive even better
There's only one problem with that idea, how many scale-shielded human mutants have you ever seen? You see, things don't magically happen like this, for us to become scale-shielded mutants, a few of us have to mutate into that in the first place, and since I don't think there's ever been such mutants, there would not be any scale-shielded human mutants. We could evolve into tall and hairless people because those mutations are fairly common.
You can't know in advance, because that's like guessing the lottery.
No it's not, as I said, lottery is like throwing dices once, throwing them again and comparing the results. With mutations happening on such a large scale, it's more like throwing dices 10 billion times, summing up the results of each throw, do it again and compare the two sums. The difference will be very tiny.
My bad, couldn't find that anywhere on their site. Thanks for answering the question anyways
I'm afraid you either replied to the wrong comment, or didn't understand at all the comment you're replying to.
The Video RAM will determine the maximum array length that can be sorted on the GPU. A rough guideline for performing FFT on 32-bit floats is: Maximum array length in millions = Video RAM in MB / 32
Max array length equals video RAM in megabytes divided by 32... bits? Correct me if i'm dumb but shouldn't it rather be "Video RAM in MB / 4"?
Are the two linked or is the W at the end of the name just a mere coincidence?
Note how many comments are about explaining what FFT is as opposed to how many comments consist in asking what FFT means. Quite a fucked up demand/offer ratio.
What about Ferazel's Wand? That game is so cool I would almost buy it.
Wait, are you sure that there's anything interpolated? Because the way it sounds to me, nothing is being interpolated, it's just that groups of four of these pixels on this grid are put together to form one color pixel. I think that if stuff were interpolated in any way it would look as if the image had been well... interpolated (i mean blurry).
You excited my curiousity. How does it achieve that?
while PNG only supports 8 or 16, meaning PNG will have to add a significant amount of bloat to the data before it can be represented.
But if you want for example to have your photos displayed on your website, you'll go straight for the 8 bit, therefore it'll be lighter than your cam's 12-bits. And then, the RAW data is PCM, as PNG is compressed. Plus, don't raws take 4 color "layers" instead of 3, due to the two green "subpixels"?
While you can say that the difference between pixels is great, I find it innacurate to say that the frequency of the noise is high, because it's frequencies are uniformly spread from DC to the Nyquist frequency.
The frequencies in a blurry image are low.
I find it inacurrate as well, the high frequencies are diminished, that's all. To put it another way, it's like a graphical equalizer where there sliders would go down as you would go up in frequencies. Unless you blur your image by convolving with a windowed-sinc function, your high frequencies are still there.
scale up the 2x2 image with bilinear filtering
ummm... correct me if i'm wrong, but i think it's a bad idea to use bilinear filtering, because of the high frequencies it would bring up. windowed-sinc interpolation seems better to me since it wouldn't bring such problems.
Anyways I find your wavelet transform method weird and inefficient. You're better off using filter banks, much simpler and straightforward.
I think TIFF does this
TIFF has many compressions, along with PCM. You should say which compression you're talking about, for the sake of clarity :-)
Anyway the idea here is to take all the first bits of each pixel and stick them one after another, and then stick the second bits of all the pixels one after the other... You'll end up with 8 images this way, and you'll find that the image with the highest bits is easily recognizeable and has clear sharp edges, but when you get to the image with the lowest bits, all you have is noise.
If you discard let's say the 8th image, it all comes down to coding your image on 7 bits. You can interpolate, but you still only have 7 bits, therefore 128 levels instead of 256.
Reminds me of the Naruto episode of South Park
Well then they would be bright enough to be seen, since there would be much more light gathered
The worst is that I feel you
Well OK i'm talking about the man and not about the book, but I just want to say that he's not such a reference.
Since when is myspace or texting geeky? It's more OMGPONIES!!!11111-ish.
lol man, people will rather use PGP encryption with 2048 bit keys for everything they do rather than use ham radio. ham radio users are like Atari 2600 players, there will always be some but there will never be more.
Huh?? I thought the Godwin law was all about comparisons to Hitler and the 3rd Reich?
Some people still use Mac Pluses and such as web servers. So if a Mac Plus can do it, a recent laptop computer can do it, even if it's not the most powerful solution.
lol yeah, that probably wasn't by train
I don't find that that insightful. How would normal people who send each other pictures in a simple and fast way. If we forget about everything we know, which is the most obvious way to send a file to the person you're chatting with? To drag the file on the chat window, I can't think of anything more obvious, fast and simple.
Perfectly, actually that's more or less how the SETI works, shipping for 50 GB of data everyday from Puerto Rico to Berkeley on tapes. *Only* 50 GB tho.
Just what GP2X users do with DivX's on 1 GB SD cards.
Well, in first year of college, the first thing we were taugh was vi, the linux one with no gui. But for some mysterious reason, it worked much more like any other editor, meaning that you didn't need to us x to delete a character or dd to delete a line, you could just you the backspace key. So the only thing to know about vi was a for append, i for insert, and the combinations of :wq!. Then only later we've been taught emacs.
Btw the GUI vi is just as simple to use, I use vi on Windows all the time (and compile with gcc in cygwin) and I never have to type anything but a for append, not even :w or such. And btw don't forget about the syntax highlighting and formatting, I find it precious (for some reason the vi at school didn't have any of these, go figure). I would hate programming in notepad.
Haha sure, it's not as if we made any prediction tho.
OK, scale-shielded tiny jumping 3 eyes humans might be possible, but I think they would take really a long time to appear as such. By the time you'd even see one, the whole damn earth would be populated by tall hairless humans ;-)
I know, thanks alot, but on a global scale, it's stochastic, that's the point. Alright let me clear my thought. Mutations are random, but since they happen in billions of individuals, you can theorically figure them out statistically. As for lottery numbers, they get sorted out only once (well, that's if you play only once). The reason why you can't tell which will come out is that they are all as likely to come out, and can come out only once, as opposed to having the dices being throw billions of times for genetic mutations.
Alot of people seem to think that evolution works by having a mutation happening to only one animal, and then being transmitted etc etc... but actually the same mutations, height mutations, hair mutations, genetic diseases mutations, they happen to thousands, millions or billions of people.
That's the beauty of evolution: no knowledge or advancement can cover everything in what is a truly random process.
I think it's wrong. it's not truly random, it's stochastic. Think of it as a white noise, one sample in a white noise is trully random, but when you got thousands of these random samples put next to each other, what do you have? A flat frequency response, basically, or if you prefer, such characteristics as every frequency being represented equally. In the case of human evolution, consider mutations as a white noise, and consider selection/evolution factors as a filter. The output is still somewhat random, but has precise, global characteristics, like for example a mutation (in my analogy, a band of frequencies) making it's way into the mainstream, understand being more common/very amplified, and that would be due solely to the selection/evolution factors. That's just an example.
The point of all this is, yes, it's based on some purely random stuff, but if you put the same animals in the exact same environnments with the same events happenings and this for a few million years, you'll get pretty much the same results (the more animals you'll take the closer the results will be, if you take 3 monkeys in each experiment then you'll get as different results as if you throw dices 3 times, sum up the results and do it again and compare. Throw dices 10,000 times and you'll see that your two sums will be much closer).
Nature doesn't vote a new law where hairless tall man survive
lol, well, just imagine that 1% of un-hairless people die before reaching reproduction time due to that hair issue, after a few hundreds of thousands of years (or maybe even less) you'll get hairless people, almost nothing but that. That's the principle of natural selection, isn't it?
nature might come up with scale-shielded jumping tiny men that survive even better
There's only one problem with that idea, how many scale-shielded human mutants have you ever seen? You see, things don't magically happen like this, for us to become scale-shielded mutants, a few of us have to mutate into that in the first place, and since I don't think there's ever been such mutants, there would not be any scale-shielded human mutants. We could evolve into tall and hairless people because those mutations are fairly common.
You can't know in advance, because that's like guessing the lottery.
No it's not, as I said, lottery is like throwing dices once, throwing them again and comparing the results. With mutations happening on such a large scale, it's more like throwing dices 10 billion times, summing up the results of each throw, do it again and compare the two sums. The difference will be very tiny.