Flux rss
Collection CommentÇaMarche.net

Polices: anti-aliasing, hinting et sub-pixel rendering

Bookmark Ajouter aux favoris / Partager
Dernière mise à jour le 21 novembre 2008 à 14:19 par Nilou17
Publié par sebsauvage

Le problème


L'aspect d'un texte à l'écran est toujours beaucoup plus grossier que son équivalent papier.

Le problème vient du fait qu'un caractère est une définition géométrique fine, et qu'il est difficile de lui rendre son aspect original à l'écran à cause de la grosseur des pixels (Un peu comme si vous vouliez représenter un cercle avec des légos.)

Différentes techniques ont donc été inventées pour améliorer l'aspect du texte à l'écran:
  • l'anti-aliasing (encore appelé "lissage", "anti-crénelage" ou "smoothing").
  • le "hinting"
  • le sub-pixel rendering

Brut


Si on essaie de dessiner directement les caractères à partir de leur définition géométrique, on obtient ceci:



C'est assez laid.

Hinting


Un humain pourrait aider le programme en donnant des indices (hints) sur la meilleure manière de placer les pixels pour donner un aspect plus lisible aux caractères. C'est le hinting.


Anti-aliasing


Une autre technique consiste à ne plus utiliser seulement des pixels noirs et blancs, mais d'utiliser toute la palette des gris pour faire des transitions. C'est l'anti-aliasing:


Anti-aliasing + Hinting


Toutefois, cela donne un aspect un peu "baveux" aux caractères, surtout sur les lignes horizontales ou verticales. On peut donc combiner l'anti-aliasing avec le hinting pour de meilleurs résultats:


Sub-pixel rendering


Le sub-pixel rendering utilise une particularité des écrans LCD et de l'oeil humain:

Un pixel d'écran LCD est constitué de trois barres verticales rouge, vert et bleu positionnées les unes à côté des autres.
Si on "s'amuse" à n'allumer que le rouge du pixel, on allume effectivement qu'un tiers de la surface du pixel.
En allumant rouge et vert, on allume deux tiers du pixel. etc.

On peut donc, en quelques sortes, tripler la résolution horizontale d'un affichage LCD et donc augmenter la finesse des détails affichés.



La méthode est similaire à l'anti-aliasing, mais on utilise des pixels de couleur au lieu des niveaux de gris afin de n'allumer qu'une partie du pixel.
Cela permet donc d'afficher des détails plus fins, au prix d'un léger décalage des couleurs à l'écran.
Mais l'oeil humain étant plus sensible à la luminosité qu'aux couleurs, cela ne pose généralement pas de problème.



Note: Vous ne pourrez apprécier vraiment l'amélioration apportée par le sub-pixel rendering que si vous possédez un moniteur LCD.

Sub-pixel rendering + Hinting



Comparaison des solutions


Rendu direct:


Hinting:


Anti-aliasing:


Anti-aliasing + Hinting:


Sub-pixel rendering:


Sub-pixel rendering + Hinting:

Remarques

  • La technique du sub-pixel rendering est disponible dans la majorité des systèmes d'exploitation actuels (Windows, MacOS X, Linux, etc.). Le freeware ClearTweak vous permet de le paramétrer dans Windows.
  • Même si elles sont très proches, plusieurs méthodes de sub-pixel rendering font l'objet de brevets. On les retrouve sous la dénomination ClearType (chez Microsoft), CoolType (chez Adobe), Quartz (chez Apple), etc.
  • Les polices de caractères de bonne qualité contiennent les informations de hinting, ce qui leur donne un bon aspect à l'écran. Les polices de piètre qualité ne possèdent pas de hinting, ou un mauvais hinting, ce qui les rend très pénibles à lire à l'écran. Microsoft a toujours apporté un soin tout particulier au hinting de toutes ses polices.
  • Quand une police ne possède pas d'informations de hinting, certains logiciels et systèmes d'exploitation essaient de calculer un hinting automatique. Les différentes méthodes hinting automatiques font également l'objet de brevets (C'est d'ailleurs pour cela que le hinting de Windows est meilleur que celui de Linux (freetype)).
  • Dans la plupart des systèmes, l'anti-aliasing est automatiquement désactivé en dessous d'une certaine taille. Le hinting est généralement conservé. Le sub-pixel rendering, lui, est activé généralement à toutes les tailles.

Avantages et inconvénients du sub-pixel rendering


Le sub-pixel rendering a des avantages et inconvénients, et il existe des arguments dans les deux camps. Au final, c'est surtout une question de goût.

Avantages

  • Aspect graphique à l'écran plus proche du design original de la police (C'est le principal avantage).
  • Meilleure finesse des caractères (par exemple les petits détails comme les virgules, parenthèses ou les pointes de polices sérif comme Times New Roman, etc.)
  • Meilleure lisibilité dans les petites tailles
  • En l'absence de hinting, il permet d'avoir un espacement des caractères plus fidèle (important dans le domaine de la mise en page). Cela évite d'avoir, par exemple, un mot qui passe à la ligne à l'écran et qui reste sur la ligne à l'impression (car le hinting place de force les pixels).

Inconvénients

  • Microsoft possède un brevet très étendu sur la technique, exposant tout développeur d'une technique similaire à un procès.
  • Ne fonctionne que sur les écran LCD.
  • Franges colorées plus ou moins importantes (bien qu'il existe des techniques pour mitiger le problème).
  • Sans hinting, peur donner un aspect "flou" aux polices.
  • Le rendu n'est pas toujours très bon sur des fonds colorés.

Qui a raison ? Apple ou Microsoft ?


Apple utilise l'antialiasing, mais sans hinting, le but étant d'obtenir un affichage le plus fidèle possible à la police d'origine.

Microsoft utilise le sub-pixel rendering (disponible sous XP mais désactivé, et activé par défaut dans Vista), mais le plus souvent avec un hinting assez fort. Le but étant d'avoir un affichage le plus net possible.

Dans la théorie, Apple a raison: Autant afficher les polices de caractères aussi fidèlement possible que l'ont conçu leur designers.
Dans la pratique, Microsoft a raison: Nos écran ont des résolutions faibles (72 ou 96dpi), alors autant faire ce qu'il faut pour avoir un affichage net et clair en faisant rentrer les caractères dans la grille de pixels.

Ensuite, c'est une question de choix personnel.

Ceci dit, si on envisage le futur avec des écran haute résolution (200 dpi et plus), la technique de Microsoft commencera à poser des problèmes en induisant inutilement des décalages.

Si l'avenir est aux écrans haute-résolution, hinting et sub-pixel rendering deviendront peu à peu inutiles.

(Voir dans les liens pour plus d'informations.)

Liens


(articles en anglais):
[MS Paint] police "anti-aliasée" possibl Bonjour, il y a t-il une astuce pour ecrire avec MS-paint avec une police "anti-aliasée" ? En effet, ej dois créeer des boutons pour uen appli, et certaines fois, pour une même police, elle s'écrit avec "anti-aliasing" et parfois sans. Y a t-il une... www.commentcamarche.net/forum/affich-3091018-ms-paint-police-anti-aliasee-possibl
Largeur en pixel d'un Texte "TextOut" en Resalut ! J'aurais voulut savoir si il est possible de savoir la largeur que prend un texte écrit avec la fonction TextOut(..) den c++ sous Windows ? La taille en Pixel bein sur ^^ Merci... www.commentcamarche.net/forum/affich-217923-largeur-en-pixel-d-un-texte-textout-en
Anti-aliasing Bonjour, J'aimerais savoir comment désactiver l'anti-aliasing car apparemment il est la source de mes problèmes avec assassin's creed. Ma configuration: Se:Vista 32 bit Carte Graphique:Ati radeon x1650 series 512mb Ram:2 go Processeurs; AMD athlon... www.commentcamarche.net/forum/affich-7782813-anti-aliasing
[TFT - LCD] Réanimer un pixel défectueux sur un écran platVous venez de recevoir un nouvel écran plat ? Et celui-ci comporte des pixels défectueux ? Il s'agit d'abord de savoir si ce sont des pixels ou sous pixels, morts ou vifs : Un pixel est le plus petit élément d'une image. C'est simplement un... www.commentcamarche.net/faq/sujet-2424-tft-lcd-reanimer-un-pixel-defectueux-sur-un-ecran-plat
Installer les polices TrueType MicrosoftIl est possible de profiter des polices TrueType Microsoft sous Linux sans problème (Arial, Times New Roman, Courrier, Impact, Trebuchet MS...) Pour cela, il suffit de taper: sudo aptitude install msttcorefonts C'est tout ! Liste des... www.commentcamarche.net/faq/sujet-5403-installer-les-polices-truetype-microsoft
[Gravure] Graver ou lire un fichier .IMG / .CCD / .SUBLes fichiers portant une extension .img, .ccd et .sub sont respectivement : IMG : une image de CD, c'est-à-dire une copie binaire d'un CD ou d'un DVD sous forme d'un fichier CCD et SUB : informations sur les pistes du disque. Les fichiers... www.commentcamarche.net/faq/sujet-3349-gravure-graver-ou-lire-un-fichier-img-ccd-sub
éteindre OpenGL anti-aliasingBonjour, est ce que vous pouvez me dire comment je peu éteindre OpenGL anti-aliasing merci. www.commentcamarche.net/forum/affich-7584507-eteindre-opengl-anti-aliasing
[gta san andreas] La police (Résolu)Bonjour à tous, Voila je voudrais savoir comment on fait pour diminuer les étoiles quand la police nous recherche ? Par exemple on a 2 étoiles de recherche pour la police, mais comment on fait pour repasser à 1 étoile puis 0 étoile ? Merci pour votre... www.commentcamarche.net/forum/affich-2932405-gta-san-andreas-la-police
Taille de police orangeBonjour, je ne sais pas ce qui se passe sur ma messagerie orange mais je ne peut pas changer la taille de la police pour expedier un message et quand j'envoie un message texte il se retrouve en bas de la page anti virus bitdefender pas de vieus si... www.commentcamarche.net/forum/affich-4165556-taille-de-police-orange
Télécharger AVG Anti-VirusComme son nom l’indique AVG Anti-virus permet d’éradiquer : les spywares, adwares, les vers, les virus, logiciels espions, cheval de Troie ou autres logiciels malveillants qui infectent votre système. Son interface conviviale permet de... www.commentcamarche.net/telecharger/telecharger-218-avg-anti-virus
Télécharger Anti-pornAnti-Porn est un logiciel de filtrage de page web. En effet, il permet de bloquer tout page web à caractère pornograhique. Le logiciel bloque l'affichage et l'accès aux fichiers suspects. Anti-porn effectue aussi un verrouillage des chats lorsqu'un... www.commentcamarche.net/telecharger/telecharger-34056781-anti-porn
Télécharger Anti yeux RougesAnti Yeux Rouges est un logiciel très simple permettant uniquement de corriger les yeux rouges sur une photo en quelques clics : Nouvelles commandes ergonomiques pour rendre visibles les rectangles de sélection (un bouton pour amener les... www.commentcamarche.net/telecharger/telecharger-34055143-anti-yeux-rouges
Connecteur VGA (SUB-D15)Prises SUB-D15 Le connecteur mini Sub-D (ou SUB-D15) est un connecteur possédant 15 broches (3 séries de 5 broches). Ce type de connecteur équipe notamment la plupart des cartes graphiques en permettant d'envoyer à l'écran 3 signaux analogiques... www.commentcamarche.net/contents/elec/connecteur-prise-vga-sub-d15.php3
Fichier SUBFormat SUB Les fichiers IMG, CCD et SUB sont respectivement : .IMG : une image de CD, c'est-à-dire une copie binaire d'un CD ou d'un DVD sous forme d'un fichier .CCD et .SUB : informations sur les pistes du disque. Les fichiers .IMG sont... www.commentcamarche.net/contents/fichier/sub.php3