Regole antialiasing sub-pixel


11

Di recente ho avuto un problema con l'anti-aliasing sub-pixel del testo , che produce colori molto duri e mi ha fatto chiedermi come debba essere fatto correttamente:

inserisci qui la descrizione dell'immagine

Ho disegnato alcuni casi di una tessera nera che copre i terzi di pixel in basso.

inserisci qui la descrizione dell'immagine

I colori corrispondono a quelli che vedo, tuttavia quando guardo un testo con antialiasing, il risultato non è altrettanto brillante e distraente:

da www.lagom.nl

Presumo che ci debba essere un equilibrio tra una buona intensità della luce e il colore giusto. Quali metodi vengono utilizzati per l'antialiasing sub-pixel che offre risultati così buoni?


Aggiornare:

Ho reso una teiera bianca su un'immagine con larghezza 3x e con multicampionamento. Di seguito confronto la media ogni 3 pixel con l'assegnazione di ciascuno a RGB. I colori sembrano ancora eccessivamente luminosi in alcuni casi (soprattutto rispetto all'esempio sopra da qui ), non che il mio telefono li catturi bene.

inserisci qui la descrizione dell'immagineinserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagineinserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagineinserisci qui la descrizione dell'immagine OK, quindi il mio monitor ha bisogno di un po 'di polvere


Credo che alcuni schermi abbiano una diversa disposizione dei colori primari. Hai visualizzato i tuoi risultati su diversi tipi di schermo?
trichoplax,

@trichoplax no, ma sono sicuro che entrambi i miei monitor siano RGB. Anche qui sono più interessato a come le tecniche di antialiasing subpixel sono pensate per funzionare rispetto a una soluzione al mio problema.
jozxyqk,

Non intendevo diversi colori primari, intendevo solo che il rosso, il verde e il blu sono disposti in diversi motivi geometrici, quindi il tuo algoritmo dovrebbe sapere quale modello viene utilizzato per ottenere buoni risultati.
trichoplax,

1
@trichoplax sì, scusami avrei dovuto chiarire, entrambi i monitor hanno pixel divisi in terzi in ordine RGB da sinistra a destra come in questa foto .
jozxyqk,

1
In una certa misura, il testo in corsivo avrà frange di colore meno evidenti poiché le linee inclinate non consentono lo stesso colore di essere presente per più di alcuni pixel consecutivi in ​​verticale.
trichoplax,

Risposte:


3

Non sono sicuro di cosa accada lì. Guardando il rendering delle "considerazioni" nel tuo esempio, i "contro" sembrano quelli che ottieni quando esegui l'antialiasing sub pixel grezzo, senza applicare le necessarie "correzioni" per renderlo buono. Ma poi il "der" nella stessa parola sembra che non ci sia anti-aliasing sub-pixel.

Puoi trovare un buon articolo su come funziona l'anti-aliasing sub-pixel di bell'aspetto qui https://www.grc.com/ct/ctwhat.htm e per la parte "fix up" qui https: //www.grc. com / ct / freeandclear.htm e qui https://www.grc.com/ct/cttech.htm

Ciò che si riduce è: se calcoli semplicemente le intensità R / G / B calcolando l'area coperta per ciascun sottopixel, le frange di colore risultanti sono molto brutte / irritanti. Per risolverlo devi applicare un filtro sfocatura orizzontale / passa basso all'immagine sub-pixel. Il risultato è un'immagine meno nitida ma con colori molto meno saturi. Vale a dire qualcosa come il tuo esempio "Check you".


2

Quali metodi vengono utilizzati per l'antialiasing sub-pixel che offre risultati così buoni?

Devi semplicemente rasterizzare le lettere come se fossero 3 volte più larghe.

I risultati differiscono nel modo in cui si rasterizzano le curve, in particolare quale tipo di schema di antialiasing / campionamento utilizza e se utilizza il suggerimento per i caratteri . Per una panoramica ottimale, vedere Testi Esposizioni di rasterizzazione per geometria anti-grano (IIRC, questo è ciò che utilizza Chromium / PDFium) o rendering Subpixel su Wikipedia.

Qual è l'immagine allegata, non credo che abbia nulla a che fare con il rendering sub-pixel. Potrebbe essere qualsiasi cosa: geometria dei pixel sbagliata, gamma errata, conversione dello spazio colore errata, ...


Mi aspetterei che problemi con la geometria dei pixel, la gamma o la conversione dello spazio colore vengano visualizzati come distorsione del colore in punti arbitrari nell'immagine, piuttosto che nel normale ciclo visto nell'immagine della domanda. Il fatto che si alterni in senso orizzontale tra antialiasing a colori esagerati e antialiasing in scala di grigi pura suggerisce che la prima applicazione dell'antialiasing è stata eseguita su una scala diversa.
trichoplax,

Non ho la spiegazione completa, poiché la distorsione non sembra essere allineata tra le diverse righe di testo, ma sembra che il problema sia correlato al rendering sub-pixel di testo già rasterizzato piuttosto che a testo vettoriale.
trichoplax,

@trichoplax Quello che cerco di dire è che dubito che ci sia un problema con il rendering sub-pixel di Anti-Grain. Immagino invece che l'input venga alterato prima che entri nel rasterizzatore. O più tardi, ma non nello stesso rasterizzatore.
Ecir Hana,

Sì, penso che il rendering sub-pixel sia applicato correttamente, ma se applicato a testo pre-rasterizzato non è possibile ottenere un buon risultato. Non penso che il renderer sia rotto, penso solo che venga alimentato il tipo sbagliato di testo.
trichoplax,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.