Intel Details Handling Anti-Aliasing On CPUs
MojoKid writes "When AMD launched their Barts GPU that powers the Radeon 6850 and 6870, they added support for a new type of anti-aliasing called Morphological AA (MLAA). However, Intel originally developed MLAA in 2009 and they have released a follow-up paper on the topic--including a discussion of how the technique could be handled by the CPU. Supersampling is much more computationally and bandwidth intensive than multisampling, but both techniques are generally too demanding of more horsepower than modern consoles or mobile devices are able to provide. Morphological Anti-aliasing, in contrast, is performed on an already-rendered image. The technique is embarrassingly parallel and, unlike traditional hardware anti-aliasing, can be effectively handled by the CPU in real time. MLAA is also equally compatible with ray tracing or rasterized graphics."
http://en.wikipedia.org/wiki/Embarrassingly_parallel
I think you need to do your research before being critical... embarrassingly critical it appears.
If it is "embarrassingly parallel", why not leave it on the GPU? Makes more sense to have it running on dozens to potentially hundreds of stream processors than a couple "free" cores on the CPU.
If your signal is aliased during sampling, you are toasted.
No voodoo will help you if your spectrum folded on itself.
So super-sample it or shut up.
Everything else is a snake oil for unwashed masses.
And yes, MPLAA still looks like crap in comparison to SS.
They want everything to run on the CPU, and thus for you to need a big beefy Intel CPU. Remember Intel doesn't have a GPU division. They make small integrated chips but they are not very powerful and don't stack up well with the low power nVidia/ATi stuff. What they make is awesome CPUs. So they really want to transition back to an all-CPU world, no GPUs.
They've been pushing this idea slowly with various things, mostly based around ray-tracing (which GPUs aren't all that good at).
Right now it is nothing but wishful thinking. Nobody is going to dump their GPU for CPU only rendering since even a cheap GPU and out do a powerful CPU in many respects. However maybe some day.
While it is for selfish reasons, I don't disagree with Intel's idea over all. It would be nice to have computers where everything is done on the CPU, no special dedicated hardware. That's really the whole idea of a computer, rather than having dedicated devices to do things, you have a powerful device that can do everything in software.
Touche, sir.
If the system is 'embarrassingly parallel' and simple then the GPU would be a better use case. GPU's typically have a lot (200-400) cores that are optimized for embarrassingly simple calculations. Sure you could render everything on a CPU these days, simpler games could even run with an old school SVGA (simple frame buffer) card and let all the graphics be handled by the CPU as used to be the case in the 90's and is evidenced by the 'game emulators in JavaScript' we've been seeing lately but GPU's are usually fairly unused except for the ultramodern 3D shooters which also tax a CPU pretty hard.
Custom electronics and digital signage for your business: www.evcircuits.com
So, it basically blurs the image around areas of high contrast? Sounds like thats whats going on. Looks like it, too. I can understand why they are targeting this at mobile and lower powered devices: it kinda looks crappy. I might even say that no antialiasing looks better, but I'd really have to see more samples, especially contrasting this with regular MSAA. I suspect, however, that normal antialiasing will always look considerably better. For instance, normal AA would not blur the edge between two high-contrast textures on a wall (I think, since it is actually aware that it is processing polygon edges), while I suspect MLAA will, since it only sees an area of high contrast. Look at the sample image they post in the article: the white snow on the black rock looks blurred in the MLAA processed picture, while it has no aliasing artifacts at all in the unprocessed image. Its pretty slight, but its definitely there. Like I say, need to see more real world renders to really tell if its a problem at all or simply a minor thing no one will ever notice. I'll stick to my 4X MSAA, TYVM.
"None can love freedom heartily, but good men; the rest love not freedom, but license." --John Milton
Anti-aliasing, by definition, must be performed in object space or, possibly, in picture space. But it cannot be possibly carried out on an already rendered image. They must be trying to market some glorified blur technique under the anti-aliasing moniker. Nothing new here...
"Embarrassingly parallel" refers to a problem made up of many isolated tasks -- such as running a fragment (pixel) shader on millions of different fragments, or a HTTP server handling thousands of clients -- that can all be run concurrently without any communication between them.
It's odd that they use that term here, because the other anti-aliasing techniques are embarrassingly parallel as well.
SSAA (super-sampling) always renders each pixel n times at various locations within the pixel, and blends them together.
MSAA (multi-sampling) is basically the same as SSAA, but only works on polygon edges and is very dependant on proper mipmapping to reduce aliasing introduced when scaling textures.
Can amateur journalists PLEASE stop using the phrase "embarrassingly parallel" to describe software tasks? Who's embarrassed? Why are they embarrassed about designing something that can be efficiently processed?
But amateur journalism is embarrassingly parallel.
Uhh, it's not a new term at all. I distinctly remember it from my undergrad days, and those were in the early 1980s. In fact, I think we learned of it during one of our earliest introduction-to-computer-architecture courses. It was pretty basic knowledge that everyone in the program was assumed to know of and understand.
This is Slashdot. Many here would be happy to admit to having an SO with whom they are having regular sex.
So would a lot of the people with SOs...
Live today, because you never know what tomorrow brings
It's a term of art commonly used in the field for a very long time. That you don't like it really doesn't matter at all to anyone but you.
It can work on any DX9 GPU without dedicated support. http://hardocp.com/article/2011/07/18/nvidias_new_fxaa_antialiasing_technology/1
Your definition of anti-aliasing is off by a long shot.
Both this edge blending technique and pixel art upscalers work by guessing underlying shapes based on the corners within high-contrast edges in the image. Pixel art upscalers aren't the same as hand-drawing the image at a higher pixel density, but they still produce a picture with some of the same desirable qualities. Likewise, even if this sort of edge blending isn't the same as proper anti-aliasing, it still produces a picture with some of the same desirable qualities.
"I still think it's a poorly worded phrase."
Yeah. Embarrassingly poorly worded.
Need Mercedes parts ?
Translation: Damn, I was revealed as an ignoramus. How can I swing this back in my favor?
The world's burning. Moped Jesus spotted on I50. Details at 11.
Many of the commercial ray tracing packages have written GPU-based versions that work remarkably well.
V-Ray and mental ray, in particular, have very exciting GPU implementations. A presentation by mental images showed some very high-quality global illumination calculations done on the GPU. Once you get good sampling algorithms, the challenge is dealing with memory latency. It's very slow to do random access into memory on a GPU. mental images solved that problem by running a lot of threads, as GPU's context switch very quickly. When I said "a lot of threads", I wasn't kidding -- the demo I saw was running 100,000 threads over 10 graphics cards. The huge majority of those threads are stalled waiting for memory, but it doesn't cost anything to wait for those accesses to be satisfied if you have other threads to run.
I love Mondays. On a Monday, anything is possible.
MLAA is also crap, compared to "proper" antialiasing (supersampling) or even "draft" antialiasing (multisampling). Any detail smaller than 1 pixel simply isn't rendered with MLAA (and that also means no sub-pixel motion). Essentially, MLAA is just a blur filter, which actually reduces the amount of detail in the image (unlike supersampling, which increases the detail).
Edge detect + supersampling (or edge detect + high multisampling) is by far the best solution.
Oh, and technically blurring is antialiasing. It's just a very primitive flavor of.
Aliasing is when signals become indistinguishable. The common symptom of jaggies occurs when of the ray that is chosen to sample hides the signal of the nearby rays.
But blurring is aliasing! In physical blurring signals from in focus rays are overwhelmed by signals from out of focus rays. Similarly, with a blur filter you're definitely losing data by blurring it with neighboring signals.
And you're right: this technology is nothing but an elaborate blur filter. So this looks like anti-aliasing because it masks one well known symptom, but it's clearly obscuring signal and thus aliasing.
AA is a crutch to get around a lack of DPI. Take the iphone 4 at 326 DPI, it is 3 to 4x the DPI of the average craptasic "HD" computer monitor. I have a laptop with a 15" 1920x1200 screen. At that DPI Seeing the "jaggies" is pretty difficult compared with the same resolution on my 24". On the 15" can turn AA on/off and its pretty difficult to discern the difference. That monitor is only ~150DPI. I challenge you to see the affects of anti-aliasing on a screen with a DPI equivalent to the iphone 4.
The playstation/xbox on the other-hand are often used on TV's with DPI's approaching 30. If you get within a couple feet of those things the current generation of game machines look like total crap. Of course the game machines have AC power, so there really isn't an excuse. I've often wondered why sony/MS haven't added AA to one of the respun versions of their consoles.
Lets be fair, "embarrassingly parallel" is an embarrassingly stupid phrase. It takes a word out of it's normal context.
You'd think they would chose something less silly sounding and less prone to confusing those who encounter it for the first time. Say, "independently parallel" - seems to sum it up nicely while not confusing the hell out of those unfamiliar with the jargon.
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
I shall swing it embarrassingly, of course.