見出し画像

Windowsのテキストアンチエイリアシング技術について

この記事では、Windowsで使用されているアンチエイリアシング技術について解説します。

Windowsのアンチエイリアシング

ジャギー(ギザギザ感)を無くし、縁を滑らかに表示する方法を、アンチエイリアシング、アンチエイリアス、スムージングなどと呼びます。
Windowsには、ClearTypeとグレースケールレンダリングの合計2種類のテキストアンチエイリアシング技術が搭載されています。

余談ですが、アンチエイリアシングとアンチエイリアスは厳密に言えば意味が異なります。

エイリアス、エイリアシング:ジャギーが発生すること
アンチエイリアス:ジャギーを無くし縁を滑らかにすること
アンチエイリアシング:縁を滑らかにする処理、アンチエイリアス処理

この記事では、アンチエイリアシングとアンチエイリアスを同等として扱います。

ClearTypeとは?

ClearTypeは、Windows XP以降のWindows OSに搭載されている、テキストアンチエイリアシング技術です。
従来のアンチエイリアシングは、単純にエイリアシングを中間色で表現していました。
しかし、ClearTypeでは、RGBをサブピクセル単位で分割し、RGBの各色を別々に制御をする、サブピクセルレンダリングを使用しています。
ただ、サブピクセルレンダリングを使用している関係で、描画品質が背景色に左右される欠点があります。
また、液晶パネルの他に、CRTディスプレイでもClearTypeが使用できます。

ClearTypeの調整方法

ClearType テキストチューナー

スクリーンショット 2022-02-19 125640 (2)

詳細な設定は出来ませんが、直感的に設定できます。

レジストリエディター

レジストリで直接設定する方法です。
直感的に設定できませんが、詳細な設定が可能です。
各設定値は、下記に保存されています。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Avalon.Graphics\<displayName>

ClearTypeの設定値

ClearTypeLevel

左から順に100、50、0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Avalon.Graphics\<displayName>\ClearTypeLevel

ClearTypeレベル
0~100の整数値
デフォルト値は100
0はグレースケールになります。

EnhancedContrastLevel

左上から順に、0、50、100、200、300、400
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Avalon.Graphics\<displayName>\EnhancedContrastLevel

コントラストの強調レベル
0~400の整数値
デフォルト値は50

GammaLevel

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Avalon.Graphics\<displayName>\GammaLevel

ガンマレベル
1000〜2200の整数値?
デフォルト値は1900?3600?

このGammaLevel、情報がまったくありませんでした。このGammaLevelについて知っている方、教えてください!

GrayscaleEnhancedContrastLevel

左上から順に、0、50、100、200、300、400
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Avalon.Graphics\<displayName>\GrayscaleEnhancedContrastLevel

グレイスケールアンチエイリアシングに使用するコントラストの強調レベル
0~400の整数値
デフォルト値は100
UWPアプリなどに用いられるグレースケールレンダリングではここの値が関係するようです。

PixelStructure

スクリーンショット 2022-02-19 125708 (2)
左から順に、1、2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Avalon.Graphics\<displayName>\PixelStructure

サブピクセルの配置
0:ClearType無効
1:RGB配列
2:BGR配列
使用しているモニターの配列に合わせて指定します。

TextContrastLevel

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Avalon.Graphics\<displayName>\TextContrastLevel

Y方向のレンダリング調整
0~6の整数値
デフォルト値は1
値が大きくなるほどステム幅が広くなります。
Windows 10 Creators Updateで追加されました。

(おまけ)従来のアンチエイリアスの設定値

ClearTypeでないテキストレンダリングは、グレースケールレンダリングを使用しています。
この設定は全ユーザーに適用され、ディスプレイ毎に設定することが出来ないようです。
各設定値は下記に保存されています。

HKEY_CURRENT_USER\Control Panel\Desktop

FontSmoothing

フォントスムージングの設定
0:無効
1:単一色の中間階調で補完するアンチエイリアス
2:サブピクセルレンダリング
パフォーマンスオプションの「スクリーンフォントの縁を滑らかにする」でも設定できます。

FontSmoothingGamma

左上から順に、1000、1200、1600、1800、2000、2200

ガンマレベル
1000~2200の整数値
デフォルトは1200
値を小さくするほど濃くなり、大きくするほど薄くなります。

FontSmoothingOrientation

サブピクセルの配列
0:BGR配列
1:RGB配列
使用しているモニターの配列に合わせて指定します。
ClearTypeでのPixelStructureと似た設定となります。

FontSmoothingType

フォントスムージングの種類
0:指定なし
1:標準フォントスムージング
2:ClearTypeフォントスムージング

参考資料

おわりに

Windows向けの有名なアンチエイリアスソフトにMacTypeがありますが、プロファイルがあるので簡単に設定できて良いですよね。
最後まで読んでいただき、本当にありがとうございました。
是非、アンチエイリアスライフを楽しんで下さい!