Кіріспе
Көрсетілімнің айқындығын арттыру техникасы
Субпикселдік рендеринг – түсті дисплей құрылғысының тиімді ажыратымдылығын арттыруға қолданылатын әдіс. Ол дисплей матрицасында жанында орналасқан, жеке басқарылатын қызыл, жасыл және көк түсті компоненттерден тұратын әрбір пикселдің құрамын пайдаланады, бұл компоненттер субпикселдер деп аталады, және оларды пикселдердің орнына рендерлеу бірліктері ретінде қолданады. Субпикселдік рендеринг негізінен стандартты DPI дисплейлерінде мәтінді көрсету үшін қолданылады. Туындауы мүмкін түс бұрмалануларына қарамастан, оны жалпы графикалық элементтерді көрсету үшін де пайдалануға болады.
Тарих
Субпикселдік рендерингтің қазіргі қолданылу тарихы әлі де даулы болып табылады. Apple Inc., IBM және Microsoft компаниялары өз технологияларының мақсаттарының өзгешелігіне байланысты, түрлі техникалық айырмашылықтары бар әртүрлі іске асыруларды патенттеді. Microsoft компаниясы RGB жолақты макеттерде мәтінді көрсетуге арналған субпикселдік рендеринг технологиясына қатысты АҚШ-та бірнеше патентке ие болды. 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 патенттері 1998 жылдың 7 қазаны мен 1999 жылдың 7 қазаны аралығында тіркелді және 2019 жылдың 30 шілдесінде олардың қолданылу мерзімі аяқталды.
Сипаттамалары
Түсті дисплейдегі бір пиксель бірнеше субпикселден тұрады, әдетте қызыл, жасыл және көк (RGB) түстері солдан оңға қарай орналастырылған. Бұл құрылымды кішкентай үлкейту көзігіш (лупа) арқылы қарағанда оңай көруге болады. Адам көзіне бұл пиксель компоненттері бір түс ретінде көрінеді, себебі көздің оптикасы бұрмалайды және көз ішіндегі жүйке жасушалары кеңістіктік интеграция жасайды. Дегенмен, көз орналасуға өте сезімтал. Сондықтан, бір пикселдің жасыл (G) және көк (B) түстерін, ал келесі пикселдің қызыл (R) түсін қоссақ, ақ нүкте пайда болады. Бірақ бұл нүкте, тек бірінші пикселдің RGB түстерінен көрінетін ақ нүктеге қарағанда, оң жаққа 1/3 пикселге ықпал етеді. Субпикселдік рендеринг осы қасиетті пайдаланып, рендерингтелген кескіннің көлденең ажыратымдылығын үш есеге арттырады. Бірақ, дұрыс түс беру үшін, қызыл, жасыл және көк түстердің бірдей мөлшерде қосылуын қамтамасыз ету үшін бұл кескінді бұрмалау қажет. Субпикселдік рендеринг антиалиазингті міндетті түрде қолдануды талап етпейді және антиалиазинг қолданылса да, қолданылмаса да тегіс нәтиже береді, себебі ол ажыратымдылықты жасанды түрде арттырады. Алайда, субпиксельдер түсті болғандықтан, түс қабынуына (color aliasing) әкеледі. Түс артефактілерін жою үшін қолданылатын келесі сүзгілеу антиалиазингтің бір түрі болып табылады, бірақ оның мақсаты дәстүрлі антиалиазингтегідей қабырғаларын тегістеу емес. Субпикселдік рендеринг бағдарламалық құралдың субпикселдердің орналасуын білуін қажет етеді. Бұл қате болудың ең көп кездесетін себебі – мониторларды 90 (немесе 180) градусқа бұру мүмкіндігі. Бірақ мониторлар BGR немесе үшбұрыш тәрізді субпикселдердің басқа орналасуымен, немесе RGBW квадраттары сияқты 4 түспен де жасалады. Кез келген мұндай дисплейде субпикселдік рендерингті дұрыс емес пайдалану нәтижесі, субпикселдік рендерингті мүлдем қолданбағаннан да нашар болады (ол түс артефактілерін тудырмайды, бірақ шулы жиектерді шығарады).
Apple II
Стив Гибсон Apple II компьютерінің 1977 жылы ұсынылғанын және оның жоғары ажыратымдылықтағы (280×192) графикалық режимінде субпикселдік рендерингтің алғашқы түрін қолдайтынын мәлімдеді. Возняк патенты тек 2 "субпикселді" пайдаланған. Apple II жоғары ажыратымдылық экрандық буферін құрайтын байттарда жеті көрінетін бит (әрқайсысы пикселге тікелей сәйкес келеді) және қызғылт/жасыл немесе көк/қызғылт сары түс жиынтығын таңдау үшін қолданылатын флаг биті бар. Әрбір пиксель бір битпен бейнеленгендіктен, ол қосылған немесе өшірілген күйде болады; түсін немесе жарықтығын көрсету үшін пикселдің ішінде биттер жоқ. Түс NTSC түстік кодировка схемасының артефактісі ретінде жасалады, ол көлденең орналасуымен анықталады: жұп көлденең координаттары бар пиксельдер әрқашан күлгін (немесе флаг биті орнатылған болса, көк), ал тақ пиксельдер әрқашан жасыл (немесе қызғылт сары) болады. Бір-біріне жақын орналасқан екі жанатын пиксел жұбының жұп/тақ немесе тақ/жұп екеніне қарамастан, флаг битінің мәніне де қарамастан, әрқашан ақ түсті болады. Бұл жуықтау, бірақ Apple-дің жоғары ажыратымдылық режимімен жұмыс істеген көптеген бағдарламашылар осыны есінде ұстаған. Гибсонның мысалында екі іргелес бит ақ блок жасаса, онда пикселге екі бит келеді: біреуі пикселдің сол жағындағы күлгін түсті, екіншісі пикселдің оң жағындағы жасыл түсті белсендіреді. Егер бағдарламашы пикселдің оң жағындағы жасыл түсті және келесі пикселдің сол жағындағы күлгін түсті белсендірсе, нәтижесінде оң жаққа 1/2 пикселге ығысқан ақ блок пайда болады, бұл шын мәнінде субпикселдік рендерингтің мысалы. Дегенмен, Apple II бағдарламашылары биттер жұбын пиксел деп қарастырған-қарамағаны белгісіз, олар әр битті пиксел деп атаған. Әр байттағы флаг биті пикселдерді жарты пиксел енімен оңға жылдыру арқылы түске әсер етеді. Бұл жарты пикселдік ығысу кейбір графикалық бағдарламалық құралдармен, мысалы HRCG (Жоғары ажыратымдылықтағы таңба генераторы) сияқты, жоғары ажыратымдылық графикалық режимін пайдаланып мәтінді көрсетуге арналған Apple құралымен пайдаланылды, бұл диагональдарды тегістеуге мүмкіндік берді.
ClearType түрі
Microsoft компаниясы 1998 жылы COMDEX көрмесінде ClearType деп аталатын субпиксельдік рендеринг технологиясын таныстырды. Microsoft 2000 жылдың мамырында ClearType технологиясының негізіндегі сүзгілеуді сипаттайтын «Үлгілі дисплейлер үшін ығыстырылған сүзгілеу» деген мақала жариялады. Бұл технология Windows XP жүйесінде қолжетімді болды, бірақ Windows Vista-ға дейін автоматты түрде қосылған жоқ. (Дегенмен, Windows XP құрастырушылары әдепкі параметрді өзгерте алды.)
FreeType-тің түрі
FreeType, X Window System-дегі қазіргі бағдарламалық жасақтаманың көпшілігі қолданатын кітапхана, екі ашық кодты іске асыруды қамтиды. Алғашқы іске асыру ClearType антиалиазингтік сүзгілерін пайдаланады және мынадай ескертуді ұсынады: "Microsoft-тың ClearType технологиясының субпикселдік рендеринг үшін түсті сүзгілеу алгоритмі патенттермен қорғалған; осы себепті FreeType-тегі тиісті код әдепкі бойынша өшірілген. Ескеріңіз, субпикселдік рендеринг өзі бұрыннан белгілі технология; басқа түсті сүзгіні пайдалану Microsoft патенттік талаптарын оңай айналып өтеді". FreeType түрлі түсті сүзгілерді ұсынады. 2.6.2 нұсқасынан бастап әдепкі сүзгі – жарық, ол нормаланған (мәндері 1-ге тең) және түс теңгерілген (айқындық есебінен түс жиектерін жою) сүзгі. 2.8.1 нұсқасынан бастап Harmony деп аталатын екінші іске асыру пайда болды, ол "рұқсатты үш еселеу және сүзгілеутің ClearType әдістерін қолданбай, жоғары сапалы ЖКД-оптимизацияланған шығыс ұсынады". Бұл әдепкі бойынша қосылған әдіс. Бұл әдіс қолданылғанда, "глиф контурын жылдырғаннан кейін әрбір түс арнасы жеке жасалады, ЖКД панельдеріндегі түс торлары пиксельдің үштен бірін жылдырылғандығын пайдаланады. Бұл шығыс, 3-төбелі жарық сүзгісі бар ClearType-тен ажыратылмайды". Harmony әдісі қосымша сүзгіні қажет етпегендіктен, ClearType патенттері оған қолданылмайды.
CoolType-пен
Adobe CoolType деп аталатын өз субпиксельдік рендерерін жасады, бұл оларға Windows, MacOS, Linux сияқты әртүрлі операциялық жүйелерде құжаттарды бірдей көрсетуге мүмкіндік берді. 2001 жыл шамасында пайда болған CoolType, Microsoft-тің ClearType-іне қарағанда көбірек қаріптерді қолдады, ол кезде ClearType тек TrueType қаріптерімен ғана шектелген еді, ал Adobe-дің CoolType-і PostScript қаріптерін де (соның ішінде OpenType форматтағыларын да) қолдады.
macOS
Mac OS X (кейін OS X, қазір macOS) бұрын Quartz 2D құрамында субпиксельдік рендерингті де пайдаланды. Бірақ, Retina дисплейлері енгізілгеннен кейін ол жойылды. Microsoft-тың нұсқасынан өзгеше, ол оқылғыштықты арттыру үшін піксельдік торға (шрифттік белгілер) жақын болуға басымдық береді, ал Apple-дың нұсқасы глифтердің пішінін, дизайнерлер қалаған түрінде сақтауға көбірек мән береді.