Cleartype In Depth
spectecjr writes "Looks like Microsoft have at last released some detailed information on their ClearType technology. It involves a whole load of Fourier Analysis to come up with the optimal distribution of color energy and to reduce color fringing. You can read the paper and more indepth info in PDF and gZipped PostScript, as well as the paper submitted to the IEEE Signal Processing Letters journal PDF. Samples of ClearType vs. standard anti-aliasing are up online too."
because I don't see any Internet Explorer integration ANYWHERE. :)
Eviscerati.Org: All Hail the Eviscerati
All arguments over wether this is actually different than what Apple did way back with the II or not aside I'm not as impressed as I had expected to be.
Back when this was first announced I thought it made sense and would work great. I even read a few pages which showed how Apple did the same thing and loaded the samples on there up on a few screens to see how they looked. Yeah there was a difference but nothing major.
Now this comes across with what sounds like samples made using the exact algos that MS is touting as their great new innovation. So I pull out the old palmtop and laptop and check the page out.
But this looks like hell to me! I can see major color fringing and in those text waterfall examples I see rainbows in the CT examples that are so prominent they make it harder for me to read than the AA example! Yuck!
Does anyone else notice it as much as I do? Or are my eyes just abnormally color sensitive?
--- Juggle juggle@hitesman.com
Cleartype is basically antialiasing which takes note of the way in which the LCD screens make up their pixels. From the comparative samples, it's difficult to compare the two samples given on a normal (i.e. CRT) monitor. I strongly suspect that this is not going to make such an impact on CRT-based techniques for several reasons. The conventional monitor scans a modulated electron beam across a mask before hitting the coloured phosphors which make up the display. Despite the regular display patterns of the mask, a pixel on a conventional CRT could line up with any combination of the coloured phosphors, as the start of each pixel could be on any of red/green or blue phosphors. The Cleartype technology relies on being able to make use of the arrangement of single-coloured pixels to enhance the imagery (and yes, I do believe it can make a difference) and must therefore be aware of the mapping from the resolution of the image on screen to the resolution of the actual screen matrix itself.
Something does strike me as odd in the samples though. One of the things that ideal anti-aliasing should do is give a completely even weight to every letter/symbol in a font (assuming that the base font definition is designed with this in mind). However, scrutiny of the samples seems to suggest that either the font they are using is subtly broken in this respect, or that the anti-aliasing and Cleartype render used here is not ideal - take a look at the weighting of the 'x' character, and slightly less of a problem is the 'k'. This could be hinting gone wrong, or a bad font definition - I'd be interested to know whether it looks better on an LCD screen.
Cheers,
Toby Haynes
Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
This is an interesting side of Microsoft I hadn't realized existed: Microsoft Research. It looks like they are working on a lot of very interesting stuff. I was searching through their stuff I found that one of the things they were working with was IPv6 related networking, and you can download a web server called "Fnord!". I downloaded it, and checked out license.txt and it is the GPL! Apparently they used Fnord! written by someone else and used it as a basis for some research software, and you can download it, source and everything. Cool.
Here is the software of the guy who claims Apple figure all this out years ago. He has a demo written (idiosyncratically enough) in pure i386 assembly:
Free and Clear
However, his discussion doesn't seem nearly as complex as the one we have linked in this article. My feeling is that the idea of sub-pixel manipulation is one of those "floating revelations" that recur to more than one clever mind, but that MS Cleartype is the first practical application.
Oh, and here's the cleartype site at MS. Be sure to view it with an LCD screen - otherwise you won't get the benefit due to the triangular distribution of color spots on a CRT:
MS Reader
-konstant
Yes! We are all individuals! I'm not!
-konstant
Yes! We are all individuals! I'm not!
The Apple II did the same thing
/. audience have clever pet inventions that they just don't have the time, or the skill, to make a reality? Some day someone else will have the same idea, except that they will do the grunt work of actually producing a workable copy. Guess who will deserve the credit for bringing an innovative idea into the world?
Since LCD monitors were not exactly prevalent at the time of the Apple II, and since MS Cleartype depends strictly upon the existence of a tri-bar distribution of colors that is found only in LCD's...
Let's just say that having a bright idea and actually implementing that idea are two very different things. How many people in the
-konstant
Yes! We are all individuals! I'm not!
-konstant
Yes! We are all individuals! I'm not!
The anti-aliasing algorithm is really simple and typically works really well. Imagine a grid of squares (pixels), and you want to draw a thick diagonal line through this grid.
Now, we'll encounter some problems. In a traditional pixel-drawing scheme, we would color all squares completely covered by this diagonal line, and any other square, even those partially covered by the line will not be colored.
Zoom back from this drawing, and you have a very jagged, aliased line.
Now the anti-aliasing scheme solves the jaggedness by a simple yet clever solution; the squares are shaded depending on what percentage of their area is covered. That is, if a square is 95% covered by the line, it will be very dark, and if it 5% covered, it will be very light. Zoom back from this, and you have a nice smooth anti-aliased line.
Note that other anti-aliasing methods exist for differrent things, but the above is mainly for simple line drawing. For example, when anti-aliasing is done on a 3d rendered scene, a typical solution is to slightly shake the camera and re-render the scene, then blend the different renderings (this is known as oversampling).
Now, this cleartype technology seems interesting. I'm not sure how it works, but judging from the examples given, the fonts look a bit "fuller" when larger on the screen. Also, very small fonts are very easily read, whereas in an antialiased scheme the smaller fonts are difficult to identify (this is probably because the antialiasing algorithm has trouble dealing with sub-pixel drawing instructions). One downside of cleartype, however, is that I noticed a fair amount of green and red color fringing on the small-to-medium fonts. I suppose this type of distortion is a side-effect of taking advantage of sub-pixel drawing technology.
Former research IBM scientist Ron Feigenblatt has some interesting comments about Microsoft ClearType. Feigenblatt explains subpixel addressing, dynamic pixels, and color convergence problems on LCDs.
The Apple II doesn't really do this. It uses the properties of the NTSC colorburst signal to create color from a synchronized high-resolution monochrome signal. The physical "subpixels" on the CRT can't be aligned to this signal, and the end result is fuzziness, not clarity. The R,G,B phosphors on the screen are not directly addressed.
CRT's and even analog LCD's don't gain anything from this, as this technology needs direct access to the R,G,B elements of the display to create antialiased text that is as sharp as possible. It even needs to know the order of the RGB elements. This done through wholly digital displays that directly address the color pixels on the display, such as an LCD on a laptop. The next step would be to make this independent of the display type, with tuning tools or profiles for individual display devices.
Television does this naturally, being a wholly analog system. Point a color camera at some text, and the edges of the text will fall on the color elements within the camera, irregardless of arbitrary pixel boundaries. If you magnify a still image on a TV set, you'll notice that any sharp edges are defined independantly of the positions of the color elements, and they are "smooth". In contrast, any computer-generated edges show a bias toward pixels, causing some jagginess in even the best anti-aliased graphic. Of course, if the source camera and the receiving TV set have different color element geometries, the result will be a little off.
Whatever you call it, this is antialiasing taken to the max. I'm glad that someone is taking it seriously, even if it's Microsoft. CG for television should take notice, too, to try to simulate the natural look of purely analog signals.
Yea, I know it is kind of mean to harp on a system that is older than I am, but I think it is ridiculous that X is so far behind in modern display technology. (It is also ridiculous that we are still using it after so many years, but that's another story.) Coming from the all anti-aliased all the time world of BeOS, I notice that X has really poor font handling. If you read any of the FreeType docs, you'll see constant bitching about how X really doesn't provide any font support worth a damn. While X just recently got integrated truetype support, and is still far away from having anti-aliasing (which even Windows! has) Microsoft is introducing new technology to make fonts look even better! Aside from these small scope issues, this fact points to larger problems with the X architecture. It just wasn't designed to be extended cleanly. As such, X (at XFree86) still doesn't have genuinly usefull things like DPS and anti-aliasing. This is yet another reason that X needs
A) A huge, major rewrite.
B) To be replaced with something else.
Berlin looks very promising. True it uses CORBA for its API services, which sacrifices speed, but even at the beta level that it is in, it already has nifty features like anti-aliasing support, and a totally cool imaging model. Also, it is designed to be extended cleanly.
A deep unwavering belief is a sure sign you're missing something...
A better filter for text would be a cheapo box filter. The worst it can turn a 1-pixel black line into is two .5 lines that are adjacent. Adjusting for the screen gamma (their examples *do* do this) will make a much more "even" result than this fancy filter (and would be dozens of times faster). In particular the thin lines would all appear to be much closer to the same weight (it is also necessary that the original binary image have lines of even thickness).
The "cleartype" I think looks somewhat sharper because it uses this simpler filter. You can also see dithering artifacts all over the white area to the right, so I believe they are rendering at 3x width and then translating this to the rgb values of each pixel, but using something like error diffusion to keep the average total color rendered "gray". I think they should reset the error after some number of pixels of solid color because your eye will not see this:
RGBRGB.....RGBR
as more red than this:
RGBRGB.....RGB
This would get rid of the dithering artifacts on the right.
In any case it actually is an innovative idea. The truth about innovative ideas is that they seem quite obvious once somebody thinks of them. It also means that it is almost impossible to stop real "innovation" from being used by everybody, since just seeing the output provides enough information for the innovation to be recreated. In fact I would expect this to appear in lots of commercial and free products quite soon.