Gizmodo's article brought to light a issue that apple could potentially resolve which is building iOS to handle sub-pixel rendering. I wonder why apple elected not to do this? Sacrifice speed? Increase in cost due to required patents? What are some of the more intelligent techies think about this?

Gizmodo's article brought to light a issue that apple could potentially resolve which is building iOS to handle sub-pixel rendering. I wonder why apple elected not to do this? Sacrifice speed? Increase in cost due to required patents? What are some of the more intelligent techies think about this?

I'm not 100% sure about that, but I vaguely remember reading something about subpixel rendering that require the pixel to be in a specific order, like "RGB" one next to the other, and not anything else.

Since the iPad can be used in any direction, and the pixel are obviously not in the same order depending the direction the device is, I guess that must be why...

I'm not 100% sure about that, but I vaguely remember reading something about subpixel rendering that require the pixel to be in a specific order, like "RGB" one next to the other, and not anything else.

Since the iPad can be used in any direction, and the pixel are obviously not in the same order depending the direction the device is, I guess that must be why...

Processing power isn't the issue. Integrated graphics from 2001 can handle it without even blinking.

The issue is that subpixel rendering, as mentioned, does assume a specific subpixel configuration, which means that it only works effectively in a single orientation. Rotate the display, and the hinting throws things off and makes text look worse.

iOS inherited the lack of subpixel rendering from OS X (and MacOS before that). Typeface engineers and designers on the Mac have always been firmly opposed to subpixel rendering and font-smoothing by pixel-hinting because it alters the true form of the typeface. They have always preferred to represent text as it literally appears, rather than take liberties with the typeface designs to make it fit the pixel grid of the display. They use their own antialiasing approach. What this means is that you'll always have an accurate rendering on iOS and OS X, but when font sizes get very small (8-10px), they will be less legible.

On the flip side, on a system that does use font smoothing, you'd be better able to read text at 8-10px, but it would not be shown as accurately. Subpixel rendering creates color fringe/halos and makes text a little chunkier, with the theory that it's easier to read. Some people find the blurring helpful and others find it distracting, just as some people appreciate the sharpness added by pixel hinting and others find it disruptive.

They're just different approaches to the same unsolved problems. It's the same reason Apple limits its retina displays to exact multiples. They prioritize fidelity over other considerations.

Processing power isn't the issue. Integrated graphics from 2001 can handle it without even blinking.

It can be though, because sub-pixel rendering usually requires the composited output to be completely opaque. As I understand it, if you have a stack of layers and something travels under sub-pixel antialiased text, everything under the text needs to be composited down to a single opaque layer. That's significantly more work than just moving around layers with or without transparent areas.

Quote:

Originally Posted by lianlua

The issue is that sub-pixel rendering, as mentioned, does assume a specific subpixel configuration, which means that it only works effectively in a single orientation. Rotate the display, and the hinting throws things off and makes text look worse.

This is true. The sub-pixel offsets can be worked out for the other orientations though. You could definitely build a sub pixel text rendering engine that works with RGB and BGR on horizontal and vertical axis.

Quote:

Originally Posted by lianlua

iOS inherited the lack of subpixel rendering from OS X

...OS X has sub-pixel text rendering. There are some things that disable it though:

- Rotating the display.
- Layer backed views / compositing to non-opaque backgrounds.
- If the developer or website has disabled it.
- If Use "LCD font smoothing when available" is turned off under System Preferences.

Also, we're just talking about text. The same technique can be used for any vector shape rendering, but typically isn't.

At some point, you can almost consider there already have sub-pixel anti-aliasing on iOS retina devices: each point of the resolution (1024x768 for every iPad) is subdivized in 4 pixels in hardware (2048x1536).
That's one of the main interests of retina displays with exact 2x resolutions, transfering part of the work needed in software to the hardware directly.

It can be though, because sub-pixel rendering usually requires the composited output to be completely opaque. ... That's significantly more work than just moving around layers with or without transparent areas.

That depends entirely on the windowing system used, and it's still well within the capabilities of a GPU from the dark ages. An IGP from 1997 can handle it without blinking.

Quote:

...OS X has sub-pixel text rendering.

Technically true, but misleading. MacOS did not have subpixel rendering, and OS X did not implement it until 10.2, and even then on a much more limited basis than ClearType, specifically due to the low-resolution LCDs that were becoming popular at the time. What I should have said was that it lacks the aggressive subpixel rendering of other platforms. Apple's algorithms have always been minimally invasive for the purpose of AA only, in that sense just like what Windows 8 now does. What OS X does is heavily favor AA and true placement (smoothing) over subpixel rendering and grid alignment (sharpening).

The same principles are true of iOS, except there is no subpixel rendering at all going on there.

----------

Quote:

Originally Posted by chleuasme

At some point, you can almost consider there already have sub-pixel anti-aliasing on iOS retina devices

No way. The smaller pixels absolutely help deliver superior font smoothing, but it is not at all comparable or equivalent to subpixel rendering.

Retina displays reduce the need for AA and subpixel rendering techniques, because they provide a completely different, third approach to text presentation.

No way. The smaller pixels absolutely help deliver superior font smoothing, but it is not at all comparable or equivalent to subpixel rendering.

Retina displays reduce the need for AA and subpixel rendering techniques, because they provide a completely different, third approach to text presentation.

I meant, it was another way to get anti-aliasing at a sub-pixel level (well, with full pixels in fact):
can't make sub-pixel AA? no problem, let's get the hammer out and put 4x more pixels in our displays. No need to use R, G or B component light of neighbours pixels to fool the brain, we can now play with 4 full pixels for drawing the fonts sharper on a same surface as it would on 1 pixel of a non-retina screen.
The hard work is made once in the hardware to get such screens with high pixel density, rather than in software to smooth the display of fonts (or anything) on large pixels and their light components. The software method in these two cases is very different, of course.
The approach is similar to me, by trying to work at the sub-pixel scale, but with better results with the retina displays approach indeed, as you directly increase the number of pixels and not play with pixels components to get sharper.
Well, and you can't cut the sentence you quoted before the ':', i have never said there was any equivalence and was differentiating points and pixels: i consider retina screens at their non-retina resolution with 4 pixels per point.
Well, I just meant AA become less of an issue once you have 2x retina screens.

I meant, it was another way to get anti-aliasing at a sub-pixel level (well, with full pixels in fact):

It's not, though. Retina displays still use the same subpixel rendering and type AA as non-retina displays. Doubling of pixels isn't enough to make up for the difference. 5-6 times the number of pixels and you're getting somewhere.

Quote:

can't make sub-pixel AA? no problem, let's get the hammer out and put 4x more pixels in our displays. No need to use R, G or B component light of neighbours pixels to fool the brain, we can now play with 4 full pixels for drawing the fonts sharper on a same surface as it would on 1 pixel of a non-retina screen.

Without antialiasing and subpixel rendering, that extra pixel doesn't really achieve very much at all. It's still limited to 45-degree angles by stepping.

Quote:

Well, I just meant AA become less of an issue once you have 2x retina screens.

It's not, though. Retina displays still use the same subpixel rendering and type AA as non-retina displays.

Yes, of course. That's still pixels, they are only smaller. It's still possible to render anything on a screen with AA, and at a sub-pixel level if wanted. And it can only get better with, in general.
It's the case on the retina MBPs if I'm not wrong, at a sub-pixel level. But to my knowledge there is only AA on iOS devices (retina or not), but no sub-pixel rendering.
And I don't know of any other devices/OS using the same approach as Apple, with constrained environment at fixed resolutions, and 'simple' pixel-doubling (... well, not on rMBPs. But as said before, sub-pixel rendering is here to help on OS X. Our discussion is more about iOS I think). Any other platform on 'retina' screens (people using the term only because of high enough pixel densities) do non-integer scaling (I might be wrong with Win 8, though, I think it's supposed to do 2x too). And doesn't it add problem of non-alignement with the pixel grid, making even more critical the need of sub-pixel rendering? I'm not sure what you suppose when you say 'retina'.

Quote:

Originally Posted by lianlua

Doubling of pixels isn't enough to make up for the difference. 5-6 times the number of pixels and you're getting somewhere.

Hehe yes of course. Well, I'm a patient guy, the 'retina' screens we now have are quite already very nice. That was a big step to reach, with the hardware able to drive them, and with size and battery constraints handeld devices have. It can only get better.

Quote:

Originally Posted by lianlua

Without antialiasing and subpixel rendering, that extra pixel doesn't really achieve very much at all. It's still limited to 45-degree angles by stepping.

As long as screens use pixels, and working or not at a sub-pixel level (offering more flexibility), that will always be true. The smaller the pixels goes relatively to the use distance, the less it is important.

Doubling of pixels isn't enough to make up for the difference. 5-6 times the number of pixels and you're getting somewhere.

I don't think that's true. Having double the real pixel resolution on both axis is far better than sub-pixel type rendering (yeah, yeah, 3x the resolution if you're using sub-pixels, but that comes at a high cost, including colour fringing and other artefacts).

It's pretty easy to test sub-pixel AA text on iOS, by working out the sub-pixel order and displaying a screen grab with text generated on a computer.

Maybe your eyes are better than mine, but I don't think the sub-pixel text was noticeably better. It was slightly different, but not better (and by "slightly different", I mean "you have amazing eyesight if you can pick the difference without them side by side").

Quote:

Originally Posted by lianlua

Technically true, but misleading. MacOS did not have subpixel rendering, and OS X did not implement it until 10.2, and even then on a much more limited basis than ClearType, specifically due to the low-resolution LCDs that were becoming popular at the time.

If you're going to be that picky, then I have to point out that 10.2 wasn't "OS X". It was "Mac OS X". So my statement is entirely correct from a nit-pick standpoint as well (the name change happened February 16, 2012).

I don't think that's true. Having double the real pixel resolution on both axis is far better than sub-pixel type rendering

I agree, but that's not the comparison asserted. One is not a replacement for the other. Doubling the number of pixels is not enough to eliminate the need for AA, subpixel or otherwise.

Quote:

If you're going to be that picky, then I have to point out that 10.2 wasn't "OS X". It was "Mac OS X". So my statement is entirely correct from a nit-pick standpoint as well (the name change happened February 16, 2012).

10.2 is OS X. Mac OS X is OS X. It's the converse that's not true if you're going to pick nits. But again, missing the forest for the trees.