stringtranslate.com

Субпиксельная визуализация

Моделирование субпиксельной визуализации
Примеры геометрии пикселей , демонстрирующие различные расположения пикселей и субпикселей, которые необходимо учитывать для субпиксельного рендеринга. ЖК-дисплеи, состоящие из красных, зеленых и синих субпикселей (внизу справа — наиболее типичный пример), лучше всего подходят для субпиксельного рендеринга.

Субпиксельная визуализация — это метод, используемый для увеличения эффективного разрешения цветного устройства отображения . Он использует состав каждого пикселя из индивидуально адресуемых красных, зеленых и синих компонентов, расположенных рядом на матрице дисплея, называемых субпикселями , и использует их в качестве единиц визуализации вместо пикселей.

Субпиксельная визуализация в основном используется для визуализации текста на дисплеях со стандартным разрешением DPI .

Несмотря на присущие ему цветовые аномалии, его также можно использовать для визуализации обычной графики.

История

Происхождение субпиксельного рендеринга, используемого сегодня, остается спорным. Apple Inc. , IBM и Microsoft запатентовали различные реализации с определенными техническими различиями из-за разных целей, для которых предназначались их технологии. [1]

У Microsoft было несколько патентов в Соединенных Штатах на технологию субпиксельного рендеринга для рендеринга текста на макетах RGB Stripe. Патенты 6,219,025, 6,239,783, 6,307,566, 6,225,973, 6,243,070, 6,393,145, 6,421,054, 6,282,327, 6,624,828 были поданы в период с 7 октября 1998 года по 7 октября 1999 года и истекли 30 июля 2019 года. [2] Анализ патента FreeType [3] показывает, что идея субпиксельного рендеринга не охватывается патентом, а фактическим фильтром, используемым в качестве последнего шага для балансировки цвета. Патент Microsoft описывает наименьший возможный фильтр, который распределяет каждое субпиксельное значение на равное количество пикселей R, G и B. Любой другой фильтр либо сделает изображение более размытым, либо привнесет цветовые артефакты.

Apple смогла использовать его в Mac OS X благодаря патентному кросс-лицензионному соглашению. [4]

Характеристики

Один пиксель на цветном дисплее состоит из нескольких субпикселей, обычно трех, расположенных слева направо как красный, зеленый и синий (RGB). Компоненты легко видны при просмотре с помощью небольшого увеличительного стекла, например лупы . Эти компоненты пикселей кажутся человеческому глазу одним цветом из-за размытия оптикой и пространственной интеграции нервными клетками глаза. Однако глаз гораздо более чувствителен к местоположению. [ необходимо пояснение ] Поэтому включение G и B одного пикселя и R следующего пикселя справа создаст белую точку, но она будет казаться на 1/3 пикселя правее белой точки, которая была бы видна из RGB только первого пикселя. Субпиксельная визуализация использует это преимущество, чтобы обеспечить в три раза большее горизонтальное разрешение визуализированного изображения, хотя для получения правильного цвета ей приходится размывать это изображение, обеспечивая включение того же количества красного, зеленого и синего, что и при отсутствии субпиксельной визуализации.

Субпиксельный рендеринг не требует использования сглаживания и дает более плавный результат независимо от того, используется сглаживание или нет [5], поскольку он искусственно увеличивает разрешение. Однако он вводит цветовой алиасинг, поскольку субпиксели окрашены. Последующая фильтрация, применяемая для удаления цветовых артефактов, является формой сглаживания, хотя ее целью не является сглаживание зубчатых форм, как при обычном сглаживании.

Субпиксельный рендеринг требует, чтобы программное обеспечение знало расположение субпикселей. Наиболее распространенная причина, по которой это неправильно, — мониторы, которые можно повернуть на 90 (или 180) градусов, хотя мониторы производятся с другими расположениями субпикселей, такими как BGR или в треугольниках, или с 4 цветами, такими как квадраты RGBW. На любом таком дисплее результат неправильного субпиксельного рендеринга будет хуже, чем если бы субпиксельный рендеринг вообще не выполнялся (он не приведет к появлению цветовых артефактов, но создаст шумные края).

Реализации

Яблоко II

Стив Гибсон утверждал, что Apple II , представленный в 1977 году, поддерживает раннюю форму субпиксельного рендеринга в графическом режиме высокого разрешения (280×192). [6] В патенте Возняка использовалось только 2 «субпикселя». [7] Байты , составляющие буфер экрана высокого разрешения Apple II, содержат семь видимых битов (каждый соответствует непосредственно пикселю) и бит флага, используемый для выбора между наборами цветов фиолетовый/зеленый или синий/оранжевый. Каждый пиксель, поскольку он представлен одним битом, либо включен, либо выключен; внутри самого пикселя нет битов для указания цвета или яркости. Вместо этого цвет создается как артефакт схемы кодирования цвета NTSC , определяемый горизонтальным положением: пиксели с четными горизонтальными координатами всегда фиолетовые (или синие, если установлен бит флага), а нечетные пиксели всегда зеленые (или оранжевые). Два светящихся пикселя рядом друг с другом всегда белые, независимо от того, является ли пара четной/нечетной или нечетной/четной, и независимо от значения бита флага. Это приблизительное значение, но именно его имели в виду большинство программистов того времени, работая с режимом высокого разрешения Apple.

Пример Гибсона утверждает, что поскольку два соседних бита создают белый блок, на самом деле на пиксель приходится два бита: один, который активирует фиолетовую левую половину пикселя, и другой, который активирует зеленую правую половину пикселя. Если программист вместо этого активирует зеленую правую половину пикселя и фиолетовую левую половину следующего пикселя, то результатом будет белый блок, который находится на 1/2 пикселя правее, что действительно является примером субпиксельного рендеринга. Однако неясно, рассматривали ли какие-либо программисты Apple II пары бит как пиксели, вместо этого называя каждый бит пикселем.

Флаговый бит в каждом байте влияет на цвет, сдвигая пиксели на половину ширины пикселя вправо. Этот сдвиг на половину пикселя использовался некоторыми графическими программами, такими как HRCG (High-Resolution Character Generator), утилитой Apple, которая отображала текст с использованием графического режима высокого разрешения для сглаживания диагоналей.

ClearType

Microsoft анонсировала свою технологию субпиксельного рендеринга, названную ClearType , на выставке COMDEX в 1998 году. [8] В мае 2000 года Microsoft опубликовала статью Displaced Filtering for Patterned Displays, в которой описывалась фильтрация, лежащая в основе ClearType. [9] Затем она стала доступна в Windows XP , но не была активирована по умолчанию до Windows Vista . ( Однако OEM-производители Windows XP могли и делали это.) [10]

FreeType

FreeType , библиотека, используемая большинством современных программ в X Window System , содержит две реализации с открытым исходным кодом . Оригинальная реализация использует фильтры сглаживания ClearType и содержит следующее уведомление: "Алгоритм фильтрации цвета технологии Microsoft ClearType для субпиксельного рендеринга защищен патентами; по этой причине соответствующий код в FreeType по умолчанию отключен. Обратите внимание, что субпиксельный рендеринг как таковой является предшествующим уровнем техники; использование другого цветового фильтра таким образом легко обходит патентные претензии Microsoft". [3] [2]

FreeType предлагает множество цветовых фильтров. Начиная с версии 2.6.2, фильтром по умолчанию является light , фильтр, который является как нормализованным (сумма значений равна 1), так и сбалансированным по цвету (устраняет цветные полосы за счет разрешения). [11]

Начиная с версии 2.8.1, существует вторая реализация, называемая Harmony , которая «предлагает высококачественный вывод, оптимизированный для ЖК-дисплеев, не прибегая к методам ClearType утроения разрешения и фильтрации». Этот метод включен по умолчанию. При использовании этого метода «каждый цветовой канал генерируется отдельно после сдвига контура глифа, используя тот факт, что цветовые сетки на ЖК-панелях смещены на треть пикселя. Этот вывод неотличим от ClearType с легким 3-точечным фильтром». [12] Поскольку метод Harmony не требует дополнительной фильтрации, он не покрывается патентами ClearType.

CoolType

Adobe создала собственный субпиксельный рендерер под названием CoolType , позволяющий отображать документы одинаково в различных операционных системах: Windows, MacOS, Linux и т. д. Когда он был запущен примерно в 2001 году, CoolType поддерживал более широкий спектр шрифтов, чем ClearType от Microsoft, который в то время был ограничен шрифтами TrueType , тогда как CoolType от Adobe также поддерживал шрифты PostScript (и их эквиваленты OpenType ). [13]

macOS

Mac OS X (позже OS X, теперь macOS) также использовала субпиксельный рендеринг как часть Quartz 2D . Однако он был удален после появления дисплеев Retina. В отличие от реализации Microsoft, которая отдает предпочтение плотному прилеганию к сетке ( хинтинг шрифтов ) для максимальной читаемости, реализация Apple отдает приоритет форме глифов, заданной их дизайнером. [14]

Смотрите также

Ссылки

  1. Джон Маркофф, «Cleartype от Microsoft разжигает споры об оригинальности», архив 21 апреля 2017 г. на Wayback Machine , New York Times , 7 декабря 1998 г.
  2. ^ Дэвид Тернер (1 июня 2007 г.). "ClearType Patents, FreeType и Unix Desktop: an Explain". Архивировано из оригинала 2009-03-31 . Получено 9 апреля 2009 г.
  3. ^ ab "FreeType and Patents". FreeType.org. 13 февраля 2018 г. Архивировано из оригинала 2018-11-10 . Получено 29 ноября 2018 г.
  4. ^ "LCD Rendering Patches". 24 сентября 2006 г. Архивировано из оригинала 2011-06-03 . Получено 9 апреля 2009 г.
  5. ^ «Трактат о растеризации шрифтов с упором на свободное программное обеспечение». 2010-09-15 . Получено 2023-11-11 .
  6. ^ "GRC - Истоки субпиксельной визуализации шрифтов". grc.com . Архивировано из оригинала 2006-03-06 . Получено 2006-03-02 .
  7. ^ Дэвид Тернер (24 сентября 20:00 2006) Патчи рендеринга ЖК-дисплея Архивировано 2007-02-08 на Wayback Machine
  8. ^ ICT Билл Гейтс 1998 основной доклад comdex 1998, архивировано из оригинала 2021-11-30 , извлечено 2021-11-30
  9. ^ Платт, Джон; Кили, Берт; Хилл, Билл; Дресевич, Бодин; Бетриси, Клод; Митчелл, Дон П.; Хичкок, Грег; Блинн, Джим; Уиттед, Тернер (2000-05-01). «Смещенная фильтрация для узорчатых дисплеев»: 296–299. Архивировано из оригинала 2021-11-30 . Получено 2021-11-30 . {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  10. Грег Хичкок (с введением Стивена Синофски ) «Технические изменения в ClearType в Windows 7», архив 2012-12-18 на Wayback Machine , блоги MSDN, 23 июня 2009 г.
  11. ^ "О легком намеке, правильном отображении текста, затемнении основы и ЖК-фильтрах". freetype.org . Архивировано из оригинала 2020-11-12 . Получено 2020-11-14 .
  12. ^ Лемберг, Вернер (2017-09-16). "Анонс FreeType 2.8.1". Архивировано из оригинала 2019-11-16 . Получено 2019-04-30 .
  13. Феличи, Джеймс (апрель 2000 г.) «ClearType, CoolType: The Eyes Have It», Seybold Report on Internet Publishing, том 4, выпуск 8
  14. ^ "The Ails Of Typographic Anti-Aliasing". 2 ноября 2009 г. Архивировано из оригинала 2014-08-09 . Получено 2014-08-11 .

Внешние ссылки