Karl Ove Hufthammer

Skrifthinting

24. juli 2005

Vising av skrift på dataskjermar er problematisk. I små skriftstorleikar vert nemlig teksten gjerne stygg og vanskelig å lesa. Heldigvis finst det ei god og mykje brukt løysing på problemet: hinting. Men kva er no hinting for noko?

La oss først sjå på eit par problem med elektronisk skriftvising. Mens skriftene internt er definert som matematiske linjer og kurver, med nær uendelig oppløysing, må dei på skjermen teiknast på eit endelig, veldig grovmaska rutenett. (Sjå artikkelen om kantutjamning for fleire detaljar om akkurat dette.) Men strekane på bokstavane er ikkje like tjukke overalt:

[Teksten «ABC», skriven i Times New Roman i stor storleik. Ein ser at dei ulike strekane bokstavane er bygde opp av varierer veldig i storleik.]

Dette kan bli eit problem når me skal visa tekst i låg skriftstorleik. Når me senker skriftstorleiken, vil me til slutt komma til eit punkt der ein vanlig strek tar opp berre éin piksel. Viss ein annan strek er berre litt breiare, kan han lett bli to pikslar brei (er han litt tynnare, kan han faktisk forsvinna heilt), og denne blandinga av breidder ser lite bra ut. Her er eit eksempel på skrifta Times New Roman i 12 punkts storleik (96 ppt.):

[Teksten «Hinting og mykje rart!», skriven i 12 punkts Times New Roman. Strekane varierer i breidd mellom éin og to pikslar, og teksten er vanskelig å lesa.]

Tekst i programmenyar er for ofte på berre 10–12 pikslar, so dette er eit aktuelt problem. Og det vert verre! Det er ikkje berre breidda på (den teoretiske streken) som avgjer kor brei resultatet vert; òg plasseringa har noko å seia. Her er same strek (breidd litt større enn éin piksel) plassert to forskjellige plassar:

[Bilde av to like breie loddrette strekar, som er litt breiare enn ein piksel. Eine begynner der ein piksel begynner, og den andre er sentrert på ei pikselgrensa.]

Når streken skal teiknast opp på skjermen, vil kvar piksel bli fylt (svart) viss og berre viss streken dekker meir enn halvparten av pikselen:

[Bilde av dei same strekane teikna på rutenett. Ein vart éin piksel brei, og den andre to pikslar brei.]

Dette er to problem som kan oppstå ved teikning av (lita) skrift på skjerm. Men ei løysing er nærliggande: kantutjamning. Og ja, kantutjamning av skrift kan forbetra kvaliteten mykje:

[Teksten «Hinting og mykje rart!», skriven i 12 punkts Times New Roman, med kantutjamning. Resulatet er mykje betre enn før.]

Men det går an å gjera det endå betre, ved bruk av sokalla hinting (òg kalla grid-fitting). Skriftprodusentane kan bygga inn informasjon («hint») om korleis skriftene skal visast i små skriftstorleikar. Nøyaktig korleis dette føregår reint teknisk sett er ikkje so interessert her (og varierer dessutan mellom ulike skriftteknologiar), men resultatet er viktig: Kvaliteten på småtekst vert dramatisk forbetra:

[Teksten «Hinting og mykje rart!», skriven i 12 punkts Times New Roman, med hinting. Resulatet er utrulig mykje betre enn før.]

Hinting kan til dels gjerast automatisk, men skikkelig manuell kvalitetshinting av ei skrift for fleire små skriftstorleikar kan ta fleire timar per teikn. Det er arbeidskrevande, og vert berre gjort for kvalitetsskrifter meint for skjermbruk. Her er endå eit eksempel, av skrifta Arial i 7 punkts storleik, med og utan hinting:

[Teksten «Hinting og mykje rart!», skriven i 7 punkts Arial, med og utan hinting. Den hinta teksten er lett leselig, mens den uhinta er uleselig.]

Andre skrifter er frå grunnen av utforma for vising på skjerm (og tar seg nødvendigvis ikkje like godt ut på utskrift), slik som Verdana, Georgia, Myriad Web og Minion Web. Desse skriftene ser vanligvis betre ut med berre hinting og utan kantutjamning. Dette gjeld òg Times New Roman og Arial nemnt ovanfor, som var utvikla før kantutjamning fanst (i Windows), men mens hinting var i utstrakt bruk. Her er 10 punkts Verdana, med og utan hinting:

[Teksten «Hinting og mykje rart!», skriven i 10 punkts Verdana, med og utan hinting. Den hinta teksten ser veldig bra ut, mens den uhinta er mindre bra.]

Moderne teknologi gjer det òg mulig å forbetra skriftkvaliteten endå meir. Som du kanskje veit, består kvar piksel av ei blanding av primærfargane raud, grøn og blå. Ei blanding av raud og blå i like forhold gjev for eksempel ein lillaaktig farge. Blanding av alle tre fargane gjev gråtonar i like forhold (og kvit, viss alle primærfargane har full intensitet). Det er gjerne vanlig at kvar primærfarge kan ha 256 forskjellige intensitetar, frå null (svart), til full (skarp raud, grøn eller blå). Blandar me primærfargane kan me då i teorien få 256 · 256 · 256 = 16 777 216 forskjellige fargar.

Til forskjell frå tradisjonelle skjermar, brukar nye flatskjermar gjerne LCD-teknologi, der kvar piksel består av tre fysiske delpikslar – éin raud, éin grøn og éin blå.

[Bilde av ein piksel, med tre delpikslar.]

Når alle pikslane er av, ser skjermen svart ut, og når alle er på, er han kvit. Her har me sett den midtre pikselen kvit:

[Bilde av tre pikslar, der den midtre er på.]

Vanligvis kan me berre kontrollera storleikar på éin piksel om gongen, men sidan me no veit korleis pikslane fysisk sett er sett saman, kan me bruka dette. Viss me for eksempel set midtre piksel cyanblå (blanding av grøn og blå), og den til høgre raud, får me dei same tre fargane (raud, grøn og blå, som til saman gjev kvit), berre ein tredels piksel til høgre.

[Bilde av tre pikslar, der den midtre er gul, og den til høgre er raud.]

Slik kan me halda fram:

[Bilde av tre pikslar, der den midtre er gul, og den til høgre er raud.]

Me kan altso kontrollera teikna med tredels pikslar i breidda, og har i prasis fått tre gongar so høg vassrett (men ikkje loddrett) oppløysing. Teknikken kallast «sub-pixel rendering». Slik ser det gamle Times New Roman-eksempelet ut når me brukar denne teknikken (med kantutjamning i tillegg):

[Teksten «Hinting og mykje rart!», skriven i 12 punkts Times New Roman, med delpikseloppteikning. Kvaliteten er veldig bra på LCD-skjermar.]

LCD-skjermar vil dette sjå veldig bra ut, mens på «vanlige» skjermar ser det uklart og «farga» ut. Her er samme bilde, forstørra opp ni gongar:

[Teksten «Hinting og mykje rart!», skriven i 12 punkts Times New Roman, med delpikseloppteikning, forstørra opp ni gongar.]

Slik delpikseloppteikning vert vanligvis ikkje brukt som standard i operativsystem, men viss du har ein LCD-skjerm, vil du gjera klokt i å slå det på. (I nokre operativsystem er dessverre ikkje eingong kantutjamning eller (god) hinting på som standard.)

Som du sikkert har forstått, er hinting heilt nødvendig for god vising av skrift på skjerm. Og med gode skjermskriftar kan datakvardagen verta mykje behageligare!

Emne: Ymse

[Abonner på kommentarar til artikkelen]

Legg til kommentar





Du kan bruka dei vanligaste elementa og attributta i HTML. Avsnitt lagar du med vanlige linjeskift. Eg kan komma til å gjera typografiske og ortografiske endringar i innlegg (men vil aldri endra sjølve innhaldet), samt fjerna upassande innlegg.

Skriven av Karl Ove Hufthammer og driven med WordPress. Du kan abonnera på innleggs-RSS eller kommentar-RSS.