9月の最初の10年間に、FreeTypeバージョン2.7はファンファーレと誇大広告なしでリリースされました。このイベントは、間違いなくLinux、FreeBSD、NetBSD、ReactOSおよび他の仲間の休日と呼ばれます。 なぜ私たちがこのような自由な楽しみを持っているのかを理解してみましょう。
FreeTypeは、フォントとその操作をラスタライズするために使用されるオープンソースのCライブラリです。 新しいバージョンでは、デフォルトでTrueType
v40命令処理アルゴリズムが使用されます。
これにより、Microsoft DirectWrite/ClearType
ように、フォントの高品質なサブピクセルスムージングを実現できましたが、実際には、サブピクセルスムージングは使用されません 。 さらに、v40アルゴリズムInfinality
、以前のv38アルゴリズムで使用されたInfinality
よりも高速にInfinality
されますが、最終的な結果はそれほど悪くありません。
無限大、特許およびSH
歴史的に、Linuxには2つのフォントの問題がありました。 まず 、これはMicrosoftとAppleの特許の地雷原であり、開発者が回避策を苦労して歩き回った理由です。 一部には、 Infinality
パッチのセットがこの問題を解決しましたが、価格は低速であり、非常に複雑なコードでした。 さらに、 Infinality
開発者であるFreeType
によると、彼のプロジェクトへの関心Infinality
失われています。
これらの特許を詳しく見てみましょう。 2010年5月10日、 TrueType
フォントのバイトコードアンチエイリアシングに関する3つのApple特許が失効しました。 現在、デフォルトでその使用を無効にする必要はありません。
特許US5155805:
ラスター出力デバイスにデジタル書体を表示する際に制御点を移動する方法および装置
特許US5159668:
ラスター出力デバイスのデジタル書体を改善する際にアウトラインを操作する方法および装置
特許US5325479:
ラスター出力デバイスにデジタル書体を表示する際に制御点を移動する方法および装置
ただし、さらに9つのMicrosoft ClearType
特許が適用されます。
特許US6239783:
画像データサンプルのディスプレイデバイス上のピクセルサブコンポーネントへの重み付けマッピング
特許US6243070:
画像内の色アーチファクトを検出および低減する方法および装置
特許US6282327:
解像度が強化された既存の文字の有効幅を維持する
特許US6307566:
画像レンダリングおよびラスタライズ操作を実行するための方法および装置
特許US6393145:
パターン化されたディスプレイデバイス上にレンダリングされる画像の解像度を向上させるための方法装置およびデータ構造
特許US6421054:
グリッドフィッティングおよびヒンティング操作を実行するための方法および装置
特許US6624828:
ユーザー参照情報の使用により表示画像の品質を改善する方法および装置
これらの特許は、3つの条件付きカテゴリに分類できます。
- 情報が固体ピクセルではなく、個々のLCDサブピクセルのレベルで表示される場合の画像の表示
- さまざまなフィルターを適用した後、たとえば、色の境界のアーチファクトを抑制するために同じ画像を表示する
- サブピクセルのカラフルな世界での寸法と距離の処理
それだけではありません。他の特許もあります。 この状況の美しさは、 MicrosoftとAppleがクロスライセンス契約を締結したことです 。一方、 FreeType
開発者とそのオープンソースソフトウェアの同僚は、障害を英雄的に克服しなければなりません。
これらの特許の価値は非常に疑わしい。 MicrosoftがClearTypeの特許を取得した直後、その適格性と新規性について疑問が生じ、さらに、 これについては不明なランダムフォーラムではなく、New York Timesで書きました。 積極的な内部告発者の1人であるSteve Gibson は 、ClearTypeは20年前にApple IIについて特許を取得した、忘れられがちな技術であると彼のWebサイトに書いています。 技術的な考え方に大きなブレークスルーはありません 。 したがって、知的財産はありません 。
したがって、Microsoftのサブピクセルテキストレンダリングの「ClearType」アプリケーションは、彼らが主張する劇的なブレークスルーを表しておらず、知的財産取得の有効な主題にはなり得ません。
残念ながら、米国の特許法は、これらすべてが貧しい人々に有利な会話であり続けるように構成されています。 それは良いことも悪いこともありますが、特許があります。つまり、残りはその使用にお金を払わなければなりません。
私は自分自身に少しの哀れみを許します。 これまでのところ、MicrosoftはOpenType/CFF
エンジンでAdobeが行ったように、ClearTypeの特許をオープンソースコミュニティに急ぐことはありません。 マイクロソフトのスローガンがLinuxの中心であると改めて認識したとき、このことを覚えておくと良いでしょう。 レーガン米国大統領の例に続いて、「ナデラ氏、マイクロソフトがLinuxを愛しているなら、これらの特許の壁を破壊してください!」
TrueTypeの新しいレンダリング
90年代のCRTモニターのフォントをレンダリングするためのソフトウェアアルゴリズムの遺産。 前世紀の2番目の Linuxフォントの問題です。 TrueType
フォントファミリは、粒状のブラウン管モニターの時代に誕生しました。 Windows 95のスクリーンショットでは、ピクセルがテキストからクロールされます。 個々のグリフはピクセルのグリッドにしっかりと打ち込まれました。 マイクロソフトは、このビジネスに多くの工数を費やし、さまざまなサイズのグリフを計算して最適化したため、いわゆる。 メインのWebフォント( Arial, Times New Roman, Courier New
など)は画面上で適切に見えました。
しかし、シシフェーンの労働には結果がありました。 LCDモニターの新時代が到来し、これらの新機能を使用するため、または少なくともフォントが正しく表示されるようにするために、古いTrueType
命令を再プログラムする必要があることが判明しました。 各グリフをフルピクセルのグリッドに固定する必要はありません。代わりに、3つのサブピクセルのいずれか、またはその一部に固定することができ、そのようなサブピクセルの平滑化により、はるかに優れた画像を実現できます。 TrueType
命令のすべての古い荷物を書き換えることは不可能であると賢明に判断して、MS は非対称オーバーサンプリングおよび互換モードを思い付きました 。これは、古いフォントの命令からの威勢のいいトリックと松葉杖を多く使用しました。 したがって、古いフォントは、増加した複数の水平解像度をある程度活用できます。
FreeType
開発者はこのガーデンをブロックしないことを決定し、互換モードを無視しました 。 もちろんこれには結果がありました。 松葉杖の互換モードと非同期のオーバーサンプリングのために訓練された新しいフォントは、曲がって見えました。
しかし、困難な道をInfinality
、古い命令と新しい命令の上記スパゲッティのすべてをInfinality
で実装したヒーローがいました。 しばらくの間、 FreeType
にはv38インタープリター(一連のInfinality
パッチ)が含まれていましたが、v35インタープリターにInfinality
てコードが削除されました。 Infinality
の開発者は、Windowsよりもフォントの見栄えを良くし、フォントを微調整できるようにするという不可能な使命にInfinality
乗り出しました。
WindowsでDirectWrite / ClearTypeを使用してフォントをレンダリングするためのコアシークレットは次のとおりです。実際には、サブピクセルのヒントはありません。 ショック。 コードは、すべての水平方向のヒンティング命令を単に無視します。
その結果、 Infinality
を削除することで、 FreeType
メンテナーはコードのシンプルさとクリーンさを選択しました 。 これがTrueType
v40命令処理アルゴリズムの登場です。 その原理はペニーのように単純です- すべての水平平滑化命令を完全に無視します 。 サブピクセルスムージングなし。 労力がはるかに少なく、結果は実質的に同じです。 同時に、古いトレーニングされていないフォントのグリフピッチと文字間距離の問題は解決されました。
FreeType 2.7でフォントの調和を実現する方法
良いニュースは、このために何もする必要がないことです。更新自体は、LinuxまたはBSDディストリビューションのリポジトリに表示されます。 新しいバージョンにアップグレードして、X.Org Serverを再起動するだけです。 好みにFontConfig
をカスタマイズします。 そして悪いニュースは、あなたが今それを欲しがっているということです、そして、数日または数週間待つのは時々難しいです。 まあ、特にせっかちなユーザーは、ソースから新しいバージョンをビルドするか、通常のパッケージインストーラーを使用してインストールすることができます。 私のGentooでは、 FreeType 2.7
はまだ安定していません。
$ eix freetype $ [I] media-libs/freetype : (2) 2.5.5^d 2.6.3-r1^d ~2.6.5^d ~2.7-r1^d {X +adobe-cff auto-hinter bindist bzip2 (+)cleartype_hinting debug doc fontforge harfbuzz infinality png static-libs utils ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
保守的なDebianの場合、おそらく次のリリースまで待たなければならず、Ubuntuユーザーは既にフォントをうまく使っているので、急いで行く場所はありません。