Слово антиалиасинг (antialiasing) знакомо всем кто имел дело с компьютерной графикой. Напомню, что так называется метод устранения "ступенчатости" диагональных линий при изображении их на растровых (вы сейчас на такой смотрите) мониторах. Суть метода заключается в сглаживании контрастного перехода между (к примеру) черным и белым, добавлением точек промежуточных (в данном случае серых) цветов. Метод этот известен чрезвычайно давно и повсеместно используется, хотя имеет недостатки (размытость, "расфокусировку" изображения, особенно заметную при отображении мелких букв) . Мы сегодня рассмотрим его дальнего родственника, так называемую технологию Sub-Pixel.
Оригинальный материал можно прочесть здесь, я же вкратце перескажу его своими словами и со своими комментариями.
Предлагаемый метод лучше всего применим к цветным LCD панелям и основан на утроении горизонтального разрешения этих самых LCD. Любая панель с разрешением 800x600 на самом деле имеет физическое разрешение 2400x600, за счет того, что каждый логический пиксел на самом деле состоит из трех расположенных по горизонтали элементов - красного, зеленого, синего - R,G,B (иногда они могут быть расположены в обратном порядке - B,G,R). Программа выводящая на экран текст может учитывать эту особенность LCD и за счет этого получать более качественное изображение. На рисунках справа последовательно изображены (сверху вниз) обычный метод, антиалиасинг, утроенное разрешение, утроенное разрешение и соответствие пикселов R,G,B элементам LCD.
Хотя отдельные субпикселы не будут белыми, тем не менее когда они расположены вблизи края диагональной линии, глаз воспринимает их как белые.
Ниже на рисунке приведены два примера текста - вверху обычный, внизу по новой методике. Буква 'e' увеличена чтобы была видна разница. Хотя второй фрагмент выглядит лучше первого на любом мониторе, на самом деле это всего лишь побочное явление - обычный антиалиасинг. На LCD же изображение должно быть еще более четким (у меня не LCD, не могу проверить :)
На обычном мониторе (CRT) (даже тринитроне в котором точки люминофора расположены также по горизонтали), подобное невозможно. Дело в том, что там нет прямого соответствия между физической точкой люминофора и точкой которую вы рисуете в видеопамяти.
И еще несколько замечаний:
- Лучшие результаты будут в случае контрастных черно-белых рисунков.
- Для LCD мониторов используемых в вертикальном положении (portrait) номер не пройдет.
- Необходима настройка взависимости от порядка физических точек - RGB или BGR.
Автор материала написал программу "The Free & Clear Page" (Win32), на которой можно экспериментировать.
Как это часто бывает, любимая всеми нами фирма объявила на ComDex'98 о "прорыве" в технологии отображения, названной ими "Microsoft ClearType", это как раз то о чем мы говорим. На самом же деле, еще 22 (!) года назад эта технология использовалась программистами на такой машинке как Apple II, о чем знали и в Microsoft (упоминая об этом в своем собственном руководстве по Microsoft Basic Interpreter Manual и другой литературе). Стив Возняк, создатель Apple II, заметил по этому поводу следующее:
Давно, в 1976-м, в моей разработке графической системы высокого разрешения Apple II учитывались характеристики цветного NTSC видеосигнала (color subcarrier) который создает горизонтальное, слево направо, распределение имеющихся цветов. Это в точности аналогично R-G-B распределению цветных субпикселов которые используются современными LCD панелями. Так что, более чем 20 лет назад, программисты использовали технологию субпиксел на Apple II для "увеличения" горизонтального разрешения дисплеев.
Так что в скором времени можно ожидать очередного заслуженного патента выданного Microsoft :-)