David Turner | 24 Sep 20:00 2006

LCD Rendering Patches (was Re: [ft] Regression in rendering quality with subpixel antialiasing)

Hello,

On Sun, 24 Sep 2006 15:59:05 +0000 (UTC), "Tobias Wolf" <towolf <at> gmail.com> said:
> David Turner <david <at> freetype.org> writes:
> 
> > No, another note about the "after" screenshot: if you're on a LCD, you'll 
> > see that they exhibit annoying color edges. This is a bug in the filtering
> > code used by libXft and Cairo. More on this later.
> 
> I am very curious about this, David. Your earlier experiments were
> absolutely
> promising. What can we expect to see 'later'? And, why did you take the
> patches down?
>

I have been relunctant to publicly comment on this issue, but I think it's
the right time now, because while the news aren't so good, in my opinion,
the more people are aware of it, the better. I've also CC-ed Keith Packard
and Carl Worth to this message since this will have an impact on the code
they distribute.

first of all, the reason why the patches were taken down is simply
because my ISP lost all the files on my "personal web space" hosted on
their servers. it seems I can't upload anything there anymore,
and it has all to do with incompetence, not malice.

However, I've been reluctant to propagate the files through other means, because
I wanted to analyze the Microsoft patents. That's mainly because I intended to move
the LCD-filtering capability into FreeType itself, and didn't want to be
responsible for yet another sub-marine patents that could make millions for MS
in a few years, once the technique is being used in all kinds of gizmos like
mobile phones and PDAs; incorporated by unsuspecting developers.

And my final understanding is that the MS patents pretty cover *all* cases of
LCD-specific rendering we're interested in (there are ClearType patents that
clearly don't affect us). And by the way, this includes the original LCD-specific
code found in libXft, Cairo, and probably the XRender implementation of your
X11 Server, even without my FIR-filter patch.

that there are some pretty well-known prior art that could be used to dismiss
some claims on some of the patents is obvious, but this is not enough to get rid of all
claims in the patents that really interest us. Some of these are written in
such an ambiguous way that it's practically impossible to tell before-hand
it they could easily be invalidated, unless you find meaningful additionnal
prior art.

Since finding this prior art, if *only* it exists, will take a long time,
the responsible thing to do now is simply to disable the feature in the code
we distribute. We can use tricks like configuration macros to activate it
in the sources for users who are under different patent regimes, just like
we do for bytecode interpretation.

As I've said, my initial goal was to move the LCD color filtering within the
font engine itself. I will do that, but the code will be guarded by a macro
that will be disabled by default; there is already some code in the font
engine that could be considered infringing under certain circumstances,
and I'm trying to spot it and see how to best disable it without creating
hurdles to client libraries.

There are some copies of the patches lying around on the internet, you
can use them in the meantime, but I won't distribute them anymore. I intend
to provide patches to libXft and Cairo though, once the new LCD API in
FreeType is available in an official release. I'll let these libraries'
respective authors do what they feel they should in the meantime.

Of course, all of this is my personal opinion, and I would *love* to be
proven wrong !!

Regards,

- David Turner
- The FreeType Project  (www.freetype.org)

PS1: the list of patents is now available at the following web page,
     which doesn't show up in Google easily at the moment:

http://www.microsoft.com/about/legal/intellectualproperty/search/details.mspx?ip_id=IDARAQHD&techType=Any&ipCat=Patents&feeStructure=Any&keywords=cleartype&ipVenture=false

PS2: the only Adobe patent I've seen regarding LCD rendering deals with
     LCD-resolution specific hinting (i.e. aligning stems to the LCD
     sub-pixels grid, instead of the pixels one); it might be interesting
     to note that this may conflict with one of the MS patents; by the way,
     we don't do that in any of the open source libraries. Also, I don't see
     how the Adobe CoolType code doesn't infringe on the "sampling" and
     "color filtering" patents from Microsoft, which are processes happening
     after the hinting.

PS3: According to Robert Scoble, Apple has a cross-patent licensing agreement
     with MS, which is why they're able to use the technique within Mac OS X

PS4: Oh, and don't believe Steve "Stupid Big Mouth" Gibson. For the record, the
     Wozniak patent is explicitely referenced in the 6,188,385 patent, and the
     claims are worded precisely to avoid colliding with it (which is easy, since
     the Apple II only used 2 "sub-pixels", instead of the "at minimum 3" claimed
     by MS). The guy obiously didn't even tried to read the patent very carefully.
- David Turner
- The FreeType Project  (www.freetype.org)

Gmane