Vihjamine


Alates hetkest, kui digitaalsete shriftide ja tarkvara arendajad/tüpograafid asusid lahendama skaleeritavate shriftide rasteriseerimise probleemi madala ekraanisagedusega seadmete tarvis, teadvustasid nad endale ka vihjamise komplitseerituse. Skaleeritavate shriftide puhul on see probleem märgatavalt tõsisem, kui ülejäänud muudetava graafika puhul, kuna tekst nõuab süvenemist ja inimese silmad väsivad kiiresti, kui ta peab lugema ebaühtlast teksti.

Matemaatiliselt korrektne pikslite esitus tähemärgi erinevate suuruste ja madala ekraani lahutusega kuvarite juures ei ole tihti visuaalselt ilus, või on suisa mitteloetav. Vihjamine on käsustik, koondamaks tehnikaid, mis peavad tagama teksti loetavuse ja maitsekuse nii palju, kui see on parajasti võimalik.

Joonis 10. Näide sellest, kuidas bitmapkujutis muutub vastavalt täidetava piirjoone paigutusele ekraaniresolutsiooni suhtes. Ideaalne rasteriseerimine tähendaks aga seda, et täidetud piirjoon on alati (loe: ühe ekraanilaotus sageduse ja suuruse juures) sama kujuga, omadused nagu sümmeetria ja proportsioonid peavad aga kindlasti säilima ka suuruse muutudes. Selline ebakorrektne rasteriseerimine nagu joonisel põhjustabki ebatäpseid tähemärke, seriifide kadumist ja erineva paksusega shriftide teket.

Joonis 11. Näha on rasteriseerimisest tulenev tähemärkide ebakorrektsus, “G”alumise kaare puhul on tegemist “ära jäämise” (ing. drop out) efektiga e tähemärk muutub kat-kendlikuks.

Vihjamine kätkeb endas hoolikalt tehtud ja sageli imepisikesi korrektuure tähemärgi piirjoone täitmise protsessi muutmiseks. Probleemid madalal resolutsiooonil - tähed kaovad osaliselt, mõned detailid ilmuvad paksendatult või peenemalt, tähevahed on erinevad jne. Vihjamine üritab seda parandada, korrigeerides tähemärgi kuju ja üritades tähte teha kuvatavaks ja esteetiliselt korrektseks võimalikult väikese resolutsiooni ja punktide arvu juures.

Vihjamine shriftis

Vihjamine on shrifti süda. Selle loojad, tuginedes tähelepanekutele ja mitmesugustele arvamustele “korrektsest” vihjamisest, otsustasid, et ei ole olemas kindlat unikaalset vihjamise parameetrit, mida rakendada automaatselt kõigile tähemärkidele. Selle asemel sidusid nad lihtsa rasteriseerimisrakenduse uue programeerimis-keelega. Iga tähemärk sisaldab oma isiklikku väikest vihjamise tarkvara, millega saab manipuleerida tähemärgi piirjoone kontrollpunkte vahetult enne rasteriseerimist, täpselt nii nagu vihjamise tarkvara soovib. Praktikas tähendab see, et iga tähemärgi piirjooned on hoolikalt painutatud, muudetud on ainult neid piksleid, mida on vaja, saavutamaks perfektset pikselkujutist.

Joonis 12. 10 punktine New York shrifti “e” 300 dpi (punkti tolli kohta) resolutsiooni korral: esmalt rasterdatud ilma vihjamiseta, teise “e” puhul on näha piirjoone muutumine vastavalt vihjamisjuhistele ja viimane on rasterdus peale vihjamist – juba tunduvalt korrektsem ja sarnasem piirjoonena salvestatud tähekujule.

Tähemärgi suuruse muutmine

Enne kui rakendatakse vihjamist, suurendatakse tähemärk vastava hetke ppem-idele. (Mõõtühik ppem (pixels per em) näitab rasterisatsiooniks vabade pikslite arvu, tuletatud tähemärgi punkti suurusest ja resolutsioonist, kusjuures em võrdub tähemärgi “m” laiusega.) Kõik tähemärgi koordinaadid on mõõdetud murdosa pikslitega, mitte shrifti loomisel kasutatud täisarvuliste ühikutega. Koordinaadid on 32-bitised korrastatud punktid täpsusega kuus kohta peale koma ühe biti kohta. Iga punkt talletatakse kahel korral: esmalt originaalse asetuse jaoks ja teiseks tema uue parandatud positsiooni jaoks.

Punktide liigutamine ja projektsioon

On olemas juhendid absoluutseteks ja suhtelisteks punktide liigutamiseks, vastavalt parameetritele, mis on võetud kontrollväärtuste tabelist, või teistest punktidest, mis on juba liigutatud. Kogu punktide liigutamise protsess juhindub kahest vektorist: projektsiooni vektorist P, piki mida võetakse kõik ühikud ja “vaba” vektoris V, mida mööda muutused tegelikult toimuvad. TrueType tehnoloogia paindlikkus seisneb nende vektorite osalisel iseseisvusel ja võimaluses paigutada neid ka diagonaalselt.

Joonis 13. Kolmele punktile p1, p2 ja p3 antakse ühine väärtus projektsiooni vektoril P. Iga punkti liigutatakse piki tema “vaba” vektorit V, kuni lõikumiskohani projektsioonivektoril defineeritud kaugusega, seejärel defineeritakse sinna punkti uus asukoht.

Shrifti ühtlustamine, kasutades kontrollväärtusi

Üks vihjamise võtmefunktsioon on säilitada shrifti “hinge” läbi kõigi tähemärkide. Sellel eesmärgil ongi loodud TT puhul kontrollväärtuste tabel KVT. See peab sisaldama ühikuid, tähemärkide sarnaste omaduste defineerimiseks, et neid siis ühtlustada terve tähestiku lõikes. KVT-tabeli väärtused on alati skaleeritud vastavalt hetkel kasutatavale resolutsioonile (ppem).

Näidis KVT-tabeli kirjed võiksid olla järgnevad:
- Kui jämedad on tähe vertikaalsed detailid?
- Kui jämedad on tähe horisontaalsed detailid?
- Kui paksud on seriifid?
- Kui palju kalduvad ümarjooned kõrvale põhijoonest (algsest tähe kontuurist)?

Tihti on sobiv manipuleerida punktidega, mis ei ole lõplikul piirjoonel, nende defineerimiseks kasutatakse “hämar ala” ja nende väärtused talletatakse jällegi KVT-tabelisse. KVT-tabelis asuvad ka vihjamise funktsioonid. Igas programmeerimiskeeles muudavad funktsioonid või asendused programmi väiksemaks ja kergemini hallatavaks. TT võib funktsioone defineerida KVT-tabelis, aga mitte tähemärgi programmis. Enne kui tähemärgid rasteriseeritakse pikselpinnaks, käivitatakse KVT-tabelis asuvad funktsioonid.

Delta-vihjamine

TT kood (kui ta on hästi kirjutatud) võimaldab shrifti suurendada ja vähendada väga erinevatele suurustele, parimad shriftid kasutavad selleks otstarbeks Delta-vihjamist, juhendit nihutamaks kontrollpunkte veidi erinevate suuruste puhul. Instruktsioon kõlab umbes järgnevalt: “12 pikslise kirja korral nihuta viiendat kontrollpunkti 1,25 pikslit”, pöörates tähelepanu vektoritele P ja V. Samuti teeb Delta-juhend korrektuure KVT-tabeli väärtustele, tavaliselt toimub see eelprogrammis ja kiirendab seega tööks vajalikku protsessi.

“Ära jäämise” kontroll

Mõningate tähemärkide puhul on vihjamist äärmiselt raske teostada, eelkõige keerukate tähemärkide puhul, või juhul kui tähemärke on “keeratud”. Sellistel juhtudel on kasulik lülitada välja TT “ära jäämise” funktsioon, mis tähendab, et tööprotsessi kiirendamiseks ei üritata keerukaid tähemärke kuvada perfektselt.

Esitlus

Te võite ette kujutada, et eelnevalt kirjeldatud vihjamise programmi jooksutamine tekstide kuvamiseks kulutab suure hulga riistvara ressursist ja kindlasti ei taha ju keegi, et shriftid arvuti aeglaseks teevad. TT vähendab riistvara koormust:

- Kasutades vihjamise meeldejätmist (ing cache), kui tähemärk on juba ükskord vihjatud, siis kasutatakse selle pikselkujutist korduvalt (nagu enamuse skaleeritavate shriftide puhul). Macintosh ning Windows süsteemid suurendavad ja vähendavad meeldejäetavate märkide arvu vastavalt vajadusele automaatselt.
- Sageli kasutatud väärtuste eelarvutamine, kasutatakse kõige tähtsamate väärtuste ette arvutamiseks nagu tähemärkide laius ja levinumad suurused.

TrueType ja automaatne vihjamine

Tarkvara lahendused, mis väidetavalt konverteerivad Type 1 shrifte TT shriftideks, teevad sageli katseid kopeerimaks vihjamist TT shrifti. DTP Type Designer ja FontLab 3.0 tõlgivad vihjamist Type 1 shriftis. Fontographer pakub kolmel tasandil TT shrifti auto-vihjamist: väljajätmise vältimine, auto-vihjamine ja auto-vihjamine + diagonaalne kontroll. Aga ei ole üheselt mõistetav, mis rakendusi kasutatakse auto-vihjamise protsessis, niisiis parimad tulemused saavutab kolmekordse vihjamisega, mis sageli lõppeb paraku veateatega.

Probleeme on ka TT shriftide tööstuslikus tootmises, ülesanne kirjutada vihjamisrakendused igale tähele igas shriftis, mis sa lood, on väga ajamahukas (näiteks shriftiperekonnale, kus on 8 shrifti, tuleb kirjutada umbes 2000 pisikest programmi). Isegi ekspert TT vihjajad kasutavad vahel auto-vihjamist, kus nad siis hiljem käsitsi korrektuurid teevad. Shrifti tarkvara StingRay on selleks sobilik, aga Fontographer‘it või FontLab‘i on võimalik kasutada ainult mõnedel juhtudel.

Auto-vihjamine saab olla efektiivne ainult juhul, kui shriftis on palju tähemärke, mida on vaja omavahel ühendada. Kui automaatseid rakendusi kasutada logo või graafilise kujundi juures, ei muutu see sugugi paremaks, kui vihjamata versioon.


Materjalid
______________________________________________________________________
How does TrueType hinting differ from other outline font formats? – Microsoft - www.microsoft.com/typography/hinting
Font Quality Spetcifications – Apple - developer.apple.com/fonts
TrueType Typography - TYPE chimérique - www.truetype.demon.co.uk
TrueType Hinting - Microsoft - www.microsoft.com/typography/hinting
Basic hinting philosophies and TrueType instructions - Microsoft - www.microsoft.com/typography/hinting
Get The Hint! – Tom Rickner, Daniel Will-Harris - www.will-harris.com
The raster tragedy at low resolution – Microsoft - www.microsoft.com/typography

<< TAGASI