31
Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

Embed Size (px)

Citation preview

Page 1: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

Sub-pixelfont rendering

Fran

cesc

o Pi

stis

Elem

enti

di g

rafic

a di

gita

le –

pro

f. H

mel

jak

Mag

gio

2007

Page 2: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007
Page 3: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Computer font: “simboli” in formato elettronico (file)

• Tre formati principali:– Bitmap– Outline– Stroke

Page 4: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Nei font Bitmap ogni simbolo è composto da un array di pixel. Per ogni variante del font esiste un set completo di immagini per ogni carattere. Per esempio, se un font ha tre dimensioni, ed ognuna può essere bold e italic, allora ci saranno 12 set completi di immagini.– velocità e semplicità di renderizzazione, semplicità di creazione– resa scarsa se i caratteri vengono ridimensionati rispetto alla loro

dimensione nativa o trasformati in qualche modo.

• I primi computer utilizzavano bitmap fonts esclusivamente a causa della loro scarsa potenza di calcolo e memoria. Restano ancora in uso in sistemi embedded e in altre applicazioni in cui sono importanti velocità e semplicità.

Page 5: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Outline fonts: detti anche vector font, sono collezioni di immagini vettoriali, vale a dire insiemi di linee e curve usati per definire i bordi dei simboli. Lo standard universale per i font vector è Adobe PostScript.

• Il vantaggio principale è che essi possono essere facilmente trasformati applicando funzioni matematiche oppure scalati senza causare pixellation. Questo però richiede una certa capacità di calcolo...

• Inoltre, le curve di Bezier non possono essere renderizzate accuratamente su un display raster e il loro rendering può cambiare la forma a seconda della dimensione e posizione desiderate (da cui il font hinting).

Page 6: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Nei font Stroke based la forma di un simbolo è definita dai vertici di tratti individuali. Rispetto agli outline font, quindi, viene ridotto il numero di vertici necessari per definire un simbolo.

• Grande scalabilità.

Page 7: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Font rasterization: convertire un simbolo “vector” in una descrizione bitmap.

Page 8: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Rasterizzazione “semplice”– No antialiasing– Veloce– Perdita di definizione a piccole dimensioni

Page 9: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Anti-aliasing– Usa “ombre” per smussare gli spigoli taglienti– Problemi in assenza di hinting

Page 10: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Font hinting– “aiutare” il rasterizzatore ad allineare il font alla griglia– Importante a piccole dimensioni

Page 11: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007
Page 12: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007
Page 13: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• In un monitor LCD, un pixel è composto da tre sottopixel

• Quando noi vediamo per es. una linea bianca:

• Essa è in realtà:

R-G-B

Page 14: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Questo significa che se trattassimo i sub-pixel individualmente, la risoluzione orizzontale di un LCD triplicherebbe!

• Ad esempio, se hres = 800 pixel, abbiamo in realtà 800 R + 800 G + 800 B, per un totale di 2400 sub-pixel composti da un singolo colore.

• Ma in che modo possiamo sfruttare tutto ciò?

Page 15: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Supponiamo di voler disegnare un oggetto avente un bordo “pendente”.

• Usando il pixel “normale”, riusciremo a creare un bordo particolarmente frastagliato.

Page 16: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Sfruttando i sub-pixel, invece, si riesce ad ottenere una diagonale molto più gradevole.

• Inoltre, i nostri occhi percepiscono come bianchi i pixel lungo il bordo diagonale, poiché le barrette di colore di un subpixel sono nelle immediate vicinanze degli altri colori primari.

• Vediamo ora come si applica tutto ciò nel caso dei caratteri.

Page 17: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• “A” maiuscola, 8 punti, Times New Roman: si capisce cos’è , ma rispetto alla stampa su carta alla stessa dimensione, è molto meno “liscia”.

Zoom: chi progetta font è decisamente limitato dalla risoluzione del display.

Antialiasing: “ombre” di grigio dove i progettisti vorrebbero mostrare solo parte di un pixel.

Risoluzione triplicata: è possibile creare caratteri digitali che tengono testa a quelli stampati.

Si “prendono in prestito” sub-pixel dai pixel adiacenti.

Page 18: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• KerningSpaziatura tra i caratteri

• EmboldeningGrassetto

• ItalicizingCorsivo

K e r n iemboldItalicizing

Page 19: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007
Page 20: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007
Page 21: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Sub-pixel rendering: posso sfruttare l’indirizzamento diretto dei sub-pixel per triplicare l’effettiva risoluzione orizzontale dell’LCD.

• Quindi, anche per ogni testo dobbiamo triplicare la quantità di informazione, e lo possiamo fare triplicando la larghezza orizzontale di ogni font.

Page 22: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Consideriamo, quindi, in che modo verrà mappata la lettera “m” sui sub-pixel di un LCD.

• Ciascuna gamba verticale è larga 5 pixel… che non è multiplo di 3… Perciò, esse risultano circondate a sinistra e a destra da sub-pixel rossi.

Local Color Imbalance

Page 23: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Suddividiamo “l’energia” di ciascun sub-pixel su se stesso e sui suoi due vicini:

• Così, se un sub-pixel e i suoi vicini sono tutti “ON”, allora esso sarà completamente acceso. Ma se esso e uno o due suoi vicini sono spenti, allora l’intensità risultante sarà rispettivamente 2/3, 1/3 o completamente spento.

Page 24: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Un testo renderizzato in questo modo è solitamente affetto da blurring, causato dal fatto che i sub-pixel vicini hanno appena un po’ di energia in più rispetto a quello centrale.

• E’ sufficiente ripetere il filtraggio:

“five-element low-pass windowing filter with coefficients of [1/9, 2/9, 3/9, 2/9, 1/9]”

Page 25: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Unfiltered

• Filtered (5-element)

• Risultato finale

Page 26: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007
Page 27: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Poiché un monitor CRT utilizza un fascio di elettroni per eccitare i pixel e non dispone di pixel specifici in posizioni specifiche, non è possibile godere degli stessi vantaggi ottenuti con uno schermo LCD.

• Tuttavia, poiché questa tecnologia comprende comunque il supporto all’anti-aliasing, si possono in ogni caso notare dei lievi vantaggi attivando sub-pixel su uno schermo CRT.

Page 28: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• Meglio nero su bianco

• Only landscape… not portrait

• Ordine nel sub-pixel

Page 29: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007
Page 30: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007

• http://www.grc.com/cleartype.htm

• http://www.microsoft.com/typography/ClearTypeInfo.mspx

• http://en.wikipedia.org/wiki/Subpixel_rendering

Page 31: Sub-pixel font rendering Francesco Pistis Elementi di grafica digitale – prof. Hmeljak Maggio 2007