freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft] Seeking answers on subpixel rendering


From: chojin
Subject: Re: [ft] Seeking answers on subpixel rendering
Date: Mon, 26 Mar 2007 10:42:35 -0700 (PDT)

David,

I can't thank you enough for your detailed response. It answered a lot of my
questions and has been extremely helpful.

I think you are very correct about the screen calibrations and the fact that
you mention mac screens confirms it, I was using a mac screen for some of
the testing (and also a Benq).

Interestingly, in the screenshots you provided, I personally can't stand the
last two (lite grayscale/lcd) screenshots you've taken, and prefer the first
two (the subpix version is actually quite nice). If you look at the stems in
the 'lite' shot, a lot of the glyphs have different stem widths (some for
example, spanning two pixels at 50% black, some spanning one stem at 100%
black). Kerning is mixed on both, with some kerns in the 'normal' screens
being more comfortable, and some on the 'lite' being a better fit. It's that
kind of thing that personally drives typophiles like myself mad trying to
work out. I think basically, the overall letterforms and spacing looking
right are more important to designers/typographers than excessive hinting
which can produce more readable but ugly, mishapen letters.

The patches you have provided have helped somewhat (I did find them
earlier), after a great deal of messing about and recompiling several times
I am fairly comfortable with my fonts at the moment, I've uploaded examples
of my desktop also.

http://www.nabble.com/file/7429/freetype.png 
http://www.nabble.com/file/7430/disksize.png 

Some of the fonts, converted with fontographer from my osx machines (so I am
allowed to do this... I think), have come out the best. As an aside about
qt's rendering, it's fairly unusable for me, I know you have
patches/wrappers to make everything use freetype though and will investigate
these further.

Thankyou very much for your time and patience.

Rob


David Turner-5 wrote:
> 
> Hello Chojin,
> 
> On Thu, 22 Mar 2007 21:31:53 -0700 (PDT), "chojin"
> <address@hidden> said:
>> 
>> I am a long time windows user who has, around once a year for the past 6
>> or so years, tried to make an effort to switch my business (graphic
>> design
>> and web development) over to linux and the one thing consistently holding
>> me
>> back is font rendering... freetype is the best attempt so far, but is SO
>> far away from windows and osx.
>> 
>> I have done my best to educate myself on freetype and so on, and one of
>> the few things I'm left speechless about is subpixel fonts. (Yes I am
>> using
>> an LCD, yes the bars are RGB, yes subpix is calibrated correctly for it -
>> this is in regards to subpixel rendering as a method itself and not my
>> specific implementation).
>> 
>> Basically, it does nothing. It's a massive scam. It just produces slight
>> annoying color ringing around fonts and hinders readibility. As a test,
>> here is a cooltype rendered font, then the same paragraph below it in
>> grayscale:
>> 
>> http://www.nabble.com/file/7364/whysubpixelsucks.png 
>> 
>> As you can see, the grayscale is far more comfortable to read, with no
>> annoying ringing. Yet, when subpixel rendering is turned off in freetype,
>> the actual RENDERING changes. Why is this? Shouldn't subpixel just
>> convert some of the antialiasing into fringe colors, corresponding to the
>> adjacent rgb bars?
>> 
>> What I am saying is, shouldn't type libs focus on antialiasing and
>> kerning (which in themselves have a long, long, long way to go before
>> they hit
>> the same level that win/osx have) and drop the (possibly patent
>> infringing)
>> subpixel stuff? Does the bytecode interpreter have anything to do with
>> this kind of antialiasing? Could an autohinter produce the quality of
>> antialiasing shown above?
>> 
>> Maybe I am confused but that's why I posted here - the best place to get
>> an answer would be from freetype users themselves.
>> -- 
> 
> Well, well, I don't know exactly where to start, so I'll start randomly.
> The short version is that this is an on-going battle, and that FreeType
> probably
> isn't to be blamed for most of the issues you're facing, and that a
> solution
> is probable though I wouldn't bet to see it deployed soon.
> 
> * First, on the topic of LCD filtering itself: its effect depends on a lot
> of
>   things, like the fabric of your LCD screen, your overall display gamma,
>   the text color/background being used, the eye-screen distance (really)
> and
>   your own perceptual sensitivity to the color "fringes" themselves.
> 
>   I've tried to see the example image you posted with two different
> monitors.
>   On my pretty old 13" laptop, the LCD text is clearer than the gray one
> that
>   appears more blurry. However, on my work 24" Dell, the difference is a
> lot
>   less significant. In no way is the "gray" text "far more conformtable"
> to
>   read to me.
> 
>   Similarly, I have a 15" MacBook Pro for work. Its display is very bright
> and
>   colourful, but it displays LCD text with very visible color fringes to
> my
>   eye (and the "gray" text is blurry anyway). However, when I hook up the
> same
>   computer to my 24" Dell, everything looks really good.
> 
>   I have tried to play with display settings to change that, but can't
> reproduce
>   the same quality on the Mac's screen in any way. Some other people don't
> seem
>   to see any colors on the Mac.
> 
>   So I don't agree it's massive scam, it just depends on lots of factors.
> 
> 
> * Second, you are true that LCD filtering and hinting are two separate
> issues.
>   The fact that you select "LCD rendering" in Linux and see some changes
> in text
>   rendering come from libraries like libXft, Cairo or Qt that use FreeType
>   and your font settings incorrectly.
> 
>   Another problem is the design of the font preferences dialog which is
> simply
>   misleading, and from a user-point of view, buggy. However, that's a
> different
>   problem I would prefer not to address here.
> 
> 
> * regarding the very visible color fringes you're seeing in Linux, they
> come from
>   the fact that the default LCD filter being used in libXft and Cairo was
> designed
>   solely for the case of TrueType fonts with very high-quality bytecoded
> hints.
> 
>   this means that you need to enable the bytecode intepreter to get
> anything
>   sensible out of it. If you don't, you'll see these atrocious blue/yellow
> fringes
>   all over the place. Even if you do, you'll see them on a lot of fonts
> that don't
>   have high-quality hints anyway.
> 
>   I've provided patches to these libraries to get rid of this problem a
> long time
>   ago. For some reason, these have not been integrated in the respective
> libraries.
>   See http://david.freetype.org/lcd/ for details.
> 
>   A better filter works consistently across all fonts and hinting modes,
> though it
>   can produce slightly more blurry glyphs in the high-quality case. recent
> versions
>   of FreeType provide such a filter, but it is not used by Cairo and
> LibXft yet.
> 
> 
> * As an example, here are four snapshots of my current desktop. They
> represent the
>   same content rendered through four different hinting/rendering
> combinations and
>   should give you an idea of what is possible with FreeType:
> 
>     http://david.freetype.org/freetype/example-normal-gray.png
>     http://david.freetype.org/freetype/example-normal-lcd.png
>     http://david.freetype.org/freetype/example-light-gray.png
>     http://david.freetype.org/freetype/example-light-lcd.png
> 
>   note that some pretty important label displacements between versions,
> these come
>   from what appears a bug in Firefox which is somewhat confused when asked
> to reload
>   a page after you alter your font settings (it does that all the time,
> even on the
>   simplest pages).
> 
> * My personal favorite is to use the "light" hinting mode, with or without
> LCD filtering
>   depending on the screen I'm using (definitely on my home laptop, not on
> the 24" Dell).
>   The rendering is very close to what you'll get with Mac OS X, with the
> exception that
>   you won't see sub-pixel positioning. 
> 
>   Most people won't see a difference anyway. And though it's possible to
> do that with
>   FreeType (the auto-hinter even supports sub-pixel positioned hinting,
> though this
>   is not usable from the API at the moment), it's the rest of the graphics
> stack on Linux
>   that is not ready to use it.
> 
> * I still force myself to use the "normal" hinting mode, since I like to
> eat my own dog
>   food to be able to improve it as much as possible.
> 
> * Regarding matching ClearType rendering, this is more subtle than it
> seems because:
> 
>   - ClearType in Vista is different from ClearType on XP; at a minimum,
> the LCD filter
>     can be different, and it seems Vista supports sub-pixel positioning
> now (both in 
>     LCD and "gray" modes)
> 
>   - supporting ClearType-like rendering is possible using FreeType, but
> must be essentially
>     done on top of it. Basically you need to produce bytecode-hinted text
> at 3x the horizontal
>     resolution (which is different that dilating 3x horizontally glyph
> outlines loaded at 1x
>     the resolution), then apply the LCD filter. There are also a few
> interpreter bytecodes
>     whose behaviour changes, but nothing too drastic.
> 
>     there are however some issues regarding the sub-pixel advances and how
> they can be
>     used to perform text layout.
> 
>   - more importantly, Microsoft has several patents covering the ClearType
> "technology"
>     (which do not amount to a lot of things, by the way). Some of the
> claims in these
>     patents are very broad and likely have prior art. For example, I've
> seen sub-pixel
>     text rendering on delta-nabla LCD screens a *long* time before
> ClearType was
>     released.
> 
>     however, certain claims might not be easily invalidated, and it's
> unknown at the time
>     wether it's possible to implement something that doesn't infringe on
> them. Also, the
>     prior art, if it exists, need to be clearly identified.
> 
>   - since FreeType is used in many embedded devices, I don't want to
> enable a feature that
>     could cost unsuspecting developers millions in a few years when
> Microsoft feels it's
>     "payback" time. That's why the LCD filtering in FreeType is disabled
> in all default
>     builds and you need to enable it manually (just like the bytecode
> interpreter).
> 
>     It seems that libXft and Cairo authors, which perform their own LCD
> filtering in their
>     respective code, don't feel it's important. that's their point of
> view, and I don't
>     share it.
> 
>     Also, because of the patents issue, I'm not going to lose my time on
> this "feature".
>     If someone wants to implement it in Cairo/LibXft/Qt/Whatever, please
> do it; I don't
>     really care...
> 
> Voilà, I don't know if this answers all your questions, but it's already
> plenty of info
> to digest. I advise you to lobby the Cairo/LibXft authors if you want
> better rendering
> results...
> 
> - David Turner
> - The FreeType Project  (www.freetype.org)
> 
> 
> _______________________________________________
> Freetype mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/freetype
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Seeking-answers-on-subpixel-rendering-tf3451933.html#a9677946
Sent from the Freetype - User mailing list archive at Nabble.com.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]