Depuis quelques années, je vois des gens acheter des Mac ou des consoles pour jouer en pixel perfect. Mais avec les solutions actuelles, c’est une quête assez vaine, sans même prendre en compte que le pixel perfect n’est pas nécessairement le rendu correct.
D’abord, le pixel perfect, c’est quoi ? Dans l’absolu, il s’agit d’un choix qui permet de faire coïncider un pixel logique (calculé dans la mémoire de l’appareil) avec un pixel physique (affiché). Pour beaucoup de gens, il s’agit du rendu correct, attendu, mais en réalité, pendant longtemps, ce n’était absolument pas le cas. En fait, avant l’arrivé des écrans LCD avec une grille de pixels fixes, le concept n’existait pas réellement.
Je vais commencer par les consoles et les anciens ordinateurs, qui sortaient un signal analogique sur des écrans cathodiques. A l’époque, le rendu en interne pouvait travailler dans des définitions atypiques, qui semblent bizarres actuellement. Un prompt DOS, par exemple, affiche du 720 x 400. Mais le rendu en pratique s’effectuait sur un écran cathodique analogique, sans grille de pixels au sens actuel du terme. Un écran avec un ratio de 4:3… et des pixels rectangulaires. C’est d’ailleurs le cas de pas mal de modes graphiques de l’époque, comme avec le classique 320 x 200. Le ratio de l’image avec des pixels carrés est en 16:10, mais l’image s’affiche avec des pixels rectangulaires, sans bandes noires sur un écran 4:3. Sur les Mac, les écrans utilisaient généralement des pixels carrés, avec dans certains cas des contraintes bizarres.
Les consoles suivent la même logique. L’image est calculé dans une définition précise, mais les pixels affichés seront rectangulaires. C’est assez flagrant avec les consoles qui disposent de plusieurs modes graphiques : qu’un jeu Mega Drive soit calculé en 320 x 224 ou en 256 x 224 (deux modes courants), l’image affichée est en 4:3 à l’écran, avec des pixels rectangulaires. Toutes les consoles de la génération analogique (en gros avant la Xbox 360 et la PlayStation 3) peuvent poser des problèmes de ce type. Sur les plus récentes, la technique existe, mais vous ne le verrez pas parce qu’elles upscalent dans la majorité des cas dans la définition attendue (720p, 1080p, 2160p, etc.). En interne, elles peuvent utiliser des pixels rectangulaires ou des définitions plus faibles, mais elles sortent une image dans le bon format dans la majorité des cas.
La question à 1 000 €, comment doit-on afficher sur un écran LCD ? En faisant correspondre un pixel calculé et un pixel affiché (pixel perfect) ou en utilisant le bon ratio (généralement le 4:3) ? Ce n’est pas innocent : dans le premier cas, l’image sera très nette sur un écran LCD, pas nécessairement dans le second, en fonction des méthodes utilisées (je vais y revenir). Les émulateurs et les consoles rétro modernes proposent généralement le choix, mais pour moi, le 4:3 avec des pixels rectangulaires semble plus logique. Dans pas mal de titres (même si ce n’est pas systématique), ça se voit rapidement sur les trucs qui doivent êtres circulaires : ils ne le sont pas nécessairement en pixel perfect parce que les développeurs prenaient en compte le souci. Cette vidéo montre bien qu’il faut prendre en compte ce point.
DVD, Blu-ray and co.
Le problème se pose aussi avec la vidéo, même si le seul média qui permet de montrer est le DVD. Les LaserDisc, VHS et autres médias des années 80 utilisaient de l’analogique, donc sans réelle notion de pixel. Le signal disposait d’un nombre de lignes qui permettait de calculer la définition mais il n’y a pas de pixels, juste des lignes. Les Blu-ray et les autres formats modernes utilisent généralement du pixel perfect, avec des pixels carrés, même si dans certains cas l’upscale s’impose vu qu’il existe des Blu-ray en 720p et même en 480i. Mais chaque pixel de la vidéo correspond à un pixel de nos écrans plats. Par contre, avec le DVD, les pixels de la vidéo ne correspondent pas à un pixel d’un écran. Un DVD en NTSC contient souvent une image en 720 x 480, ce qui n’est ni un ratio 4:3 ni un ratio 16:9. Dans tous les cas, les DVD affichent des pixels rectangulaires. Par nature, un DVD n’est pas pixel perfect. Sur les Blu-ray Ultra HD, on revient d’ailleurs à un rendu plus hybride, dans le sens ou l’image enregistrée sur le disque est bien en Ultra HD, mais pas nécessairement la source. Sur la TNT, la majorité des chaîne diffuse avec des pixels carrés (en 1 920 x 1 080, donc) sauf France 4, qui est en 1 440 x 1 080. En clair, on a une image 4:3 élargie. Mais pendant très longtemps, le 1 440 x 1 080 était la norme en TNT HD, le changement reste assez récent. Dans le monde de la vidéo, ce changement porte un nom : anamorphique. Parfois, il s’agit d’une astuce technique à la captation, avec des objectifs qui déforment. Dans d’autres cas, avec certains DVD, ça permet de caser plus de vidéos sur le même disque.
Les écrans LCD
J’en arrive aux Mac et aux écrans Retina. Mais avant, parlons de l’affichage sur les écrans LCD. Un écran LCD a par nature une dalle avec une grille de pixels. Pour obtenir une image de bonne qualité, la solution la plus simple consiste donc à faire correspondre un pixel calculé avec un pixel physique, soit la définition native. Si vous tentez d’afficher autre chose, souvent une définition plus faible, le rendu variera de flou à affreux en passant par très mauvais et passable. Il existe deux méthodes pour le faire dans les PC, le scaler de l’écran et le scaler du GPU. Dans le premier cas, l’ordinateur envoie une image dans la définition qu’il attend. Par exemple, au début des années 2000, du 800 x 600. L’écran, qui a une dalle en 1 024 x 768, reçoit du 800 x 600 et agrandit l’image en 1 024 x 768, plus ou moins bien. Plutôt mal que bien à l’époque. La seconde solution consiste à calculer l’image en 800 x 600 et l’agrandir avec la carte graphique pour l’envoyer en 1 024 x 768. Cette solution donne généralement un meilleur résultat parce que le GPU est plus efficace que le scaler d’un écran. Dans certains cas, certains passent par des scaler externes (et efficaces), mais c’est plutôt dans des cas particuliers, sur des appareils incapables de faire la mise à l’échelle. De plus, au début des années 2000, la liaison entre la carte graphique et le moniteur se faisait encore souvent en analogique, avec une double conversion : de numérique à analogique dans le GPU – avec une qualité parfois discutable, comme sur les premières GeForce – et d’analogique à numérique dans l’écran. L’arrivée des premiers écrans LCD avec une interface numérique (DVI, mais aussi OpenLDI ou DFP) améliorait directement la qualité de l’image.
Dans les Mac, c’est la seconde méthode qui est utilisée, pour une raison qui va sembler évidente : les écrans Apple n’intègrent pratiquement jamais de scaler. En dehors de quelques vieux (vieux) modèles, ils attendent uniquement la définition native. Apple a toujours proposé quelques options dans les réglages, comme la possibilité de rester en pixel perfect sur un écran avec une définition plus élevée, en mettant des barres noires. Dans l’exemple précédent, ça donne une image en 800 x 600 entourée de noir sur une dalle en 1 024 x 768 avec évidemment pas mal de pertes sur l’espace affiché.
Pixel perfect ou pas, il faut bien se rendre compte que sauf à prendre du matériel d’entrée de gamme ou trop vieux, le redimensionnement sur du matériel moderne amène un peu de flou, mais reste assez éloigné (heureusement) des horreurs des vieux LCD. A l’époque, un scaler peu évolué couplé à des dalles peu performances et avec une résolution faible donnaient des résultats ignobles. Mais afficher du 1080p sur un écran en 1440p en 2019 donne un résultat au pire passable, loin d’être horrible.
Le cas du Retina
Pour les premières générations de Retina, Apple travaille en pixel perfect. Un Mac avec une dalle en 2 880 x 1 800 affiche par défaut du pseudo 1 440 x 900 par exemple. Chaque pixel logique s’affiche sur quatre pixels physiques. C’est forcément très propre, mais ça amène un défaut : l’espace de travail bouge peu. Beaucoup de gens restent bloqués sur cette époque (2012/2015 chez Apple) et veulent travailler dans ce mode. Ce n’est plus vraiment nécessaire dans la pratique.
Depuis quelques années maintenant, Apple a d’ailleurs abandonné ce choix. Les MacBook Pro, par défaut, ne sont pas en pixel perfect. Un MacBook Pro avec une dalle en 2 880 x 1 800 affichera du pseudo 1 680 x 1 050, avec un rendu tout aussi propre. Certains modèles, comme le MacBook ou les iPhone Plus, ne proposent même pas de mode pixel perfect. Sous Windows, c’est la même chose : par défaut, le rendu est agrandi mais pas en 200 % (pixel perfect) mais plutôt en 125 ou 150 %.
En pratique, les dalles actuelles permettent une résolution assez élevée qui – premièrement – va permettre de cacher les éventuels défauts liés au redimensionnement. Deuxièmement, le fonctionnement même du Retina sous macOS fait que la différence (qui existe) est ténue. Une personne déterminée à prouver que c’est mieux en pixel perfect (à raison dans l’absolu) pourra le faire en prenant des photos en macro ou en zoomant. Mais en pratique, c’est indiscernable sur les définitions proposées par défaut.
Pour rappel, macOS effectue pas mal de calculs quand vous choisissez une pseudo-définition. Si vous sélectionnez du 2 560 x 1440 sur un écran Ultra HD par exemple, l’OS va prendre la pseudo-définition, la passez en 200 % en pixel perfect (ce qui donne du 5 120 x 2 880) avant de réduire le tout en 3 840 x 2 160. Le point intéressant, c’est que les algorithmes de réduction marchent mieux que ceux d’agrandissement (c’est plus simple de supprimer des pixels que d’en ajouter) avec même parfois une impression de meilleure qualité (un cas assez typique sur les vidéos). Si vous choisissez une pseudo-définition pixel perfect (l’ancien choix par défaut), vous zappez simplement la réduction. Et si vous prenez une définition plus faible, la réduction devient un agrandissement.
Forcément, mettre une définition plus élevée a un impact sur les performances : si vous mettez du pseudo 1440p au lieu d’un pseudo 1080p, le Mac doit calculer plus de choses. En 2019, le redimensionnement a peu d’impact visible en Retina pour deux raisons. La première, c’est qu’avec les premiers écrans LCD, les utilisateurs mettaient une définition plus basse que la native, alors que sur les écrans Retina, la norme semble être de mettre une définition plus élevée. Ensuite, la résolution des écrans Retina et l’amélioration des algorithmes (liée à l’amélioration des performances) rend de toute façon le redimensionnement moins sujets aux défauts.
Si vous achetez un écran Ultra HD, surtout s’il a une diagonale élevée (28″, 32″, etc.), vous pouvez donc sortir sans soucis du carcan du pixel perfect. Afficher du pseudo 1440p en Retina donnera un résultat d’excellente qualité avec un espace de travail appréciable et sans défauts visibles, même pour les puristes. Avec l’augmentation de la résolution et de la définition, le pixel perfect reste juste un accident de parcours, une contrainte technique qui devrait disparaître d’ici quelques années. Et on pourra enfin afficher la définition que l’on souhaite sans se prendre la tête sur la qualité et les éventuels défauts.
Pour terminer, un mot sur le rendu des polices. Pendant de longues années, de l’avènement des LCD jusqu’à récemment, les OS filtraient le rendu des polices pour améliorer le rendu, en partie pour une raison qui semble idiote : la précision des écrans LCD. Sur un écran cathodique, le flou inhérent à la technologie et à l’absence de grille fixe permettait d’obtenir des polices lissées par défaut. Avec les premiers LCD, beaucoup plus nets que les écrans cathodiques, certains n’appréciaient pas le rendu des polices. Les développeurs d’OS ont donc utilisé des filtrages spécifiques (ClearType, anti-aliasing, etc.) pour adoucir le rendu. Mais avec la démocratisation des écrans (très) haute définition, les filtres de ce type n’ont plus de raison d’être, tout du moins pas avec les techniques utilisées (sous-pixels). De fait, avec Mojave, Apple a changé de type de filtre pour passer sur quelque chose de plus adapté aux écrans Retina. Et est-ce vraiment pixel perfect ?
Maintenant, quel est votre avis sur le sujet ? Personnellement, j’ai longtemps configuré mes écrans en pixel perfect mais ce n’est plus le cas : je ne remarque pas réellement la différence sur les OS modernes et le gain en espace de travail est appréciable. Par contre, je reste évidemment en définition native sur les vieux écrans LCD.
–Sur un écran cathodique, le flou inhérent à la technologie et à l’absence de grille fixe–
Vu que ton article ne présente que des écrans couleur, je te précise qu’ils avaient une grille fixe -ou masque, voire passoire :-)), appelles le truc comme tu veux- pour pouvoir bien séparer les couleurs (contrairement au noir & blanc antédiluviens)
–Maintenant, quel est votre avis sur le sujet ?–
aucun, je viens encore d’apprendre quelque chose ! moi je connaissais uniquement le pixel mort qui fait ch… au milieu de l’écran et qu’on te refuse en garantie apple..
Par contre, j’ai toujours laissé un moniteur LCD dans sa définition native, alors qu’avec un tube, je cherchais à afficher le plus possible d’éléments tout en gardant une bonne lisibilité. Mais faut pas me demander pourquoi, je ne m’en souviens plus.
A mon avis cette notion de « pixel perfect » est surtout importante pour les jeux vidéos et beaucoup moins pour le reste (c’est le parti pris d’un gros gamer retro qui parle là :D)
Elle est effectivement vaine sur nos écrans actuels puisque les graphismes de l’époque se basaient sur une contrainte software (la résolution) ET une contrainte physique (la technologie des tubes cathodique CRT). Malheureusement pour nos machines actuelles, les devs jouaient beaucoup sur cette dernière contraintes pour créer leur effets graphiques (je pense notamment a Sonic avec son effet de transparence derrière la cascade, magnifique sur CRT et une horreur sur LCD). Et encore j’occulte les notions de fréquence de rafraîchissement , lag, 15khz/31khz…qui plombent l’expérience pixel perfect sur LCD.
Après tu dois peut être connaitre, mais aujourd’hui il y a deux écoles concernant le pixel perfect sur nos machines récentes (et à ma connaissance cela concerne très peu les MAC) :
– L’école du hokuto….non je déconne
– L’école des puristes, qui fait l’impasse sur le LCD avec un combo PC récent + les CRTemudriver + un écran cathodique (mon école actuelle), https://www.youtube.com/watch?v=GiEzouwnRDk
– L’école des « shaders », qui garde les LCD et utilise la puissance des GPU pour simuler les fameux effets physiques (qui deviendra surement mon école quand les derniers stocks de CRT auront crevés de leur belle mort), https://www.youtube.com/watch?v=s4QOHe4bOZc
Bref, cela serait pas mal d’aborder le sujet dans un futur CPC hardware non ? :)
Je ne sais pas si c’est dans la ligne éditoriale du mag (et bien que le sujet était déjà abordé dans un ancien numéro… mais de façon trop light à mon gout), mais un dossier orienté pratique pour mettre en place ces solutions ci-dessus serait top ! (le retrogaming c’est plus une niche depuis la PS classic mini non?? :’)
Très intéressant billet. Pour les jeux vidéo, je m’attendais à voir apparaître le tweet de quelqu’un qui avait montré récemment qu’un personnage était nettement « mieux » sur un CRT qu’un LCD tout pixellisé, photos à l’appui, car avec le CRT le cerveau comblait les trous bien mieux, pour un rendu plus sympa à l’oeil (personne ne pourrait contredire ça selon moi, c’était vraiment flagrant).
Pour la partie « retina », c’est fantastique le chemin parcouru depuis l’époque du « low-dpi ». Sur macOS, je ne sais pas si c’est moi, mais j’ai particulièrement souffert avec les écrans LCD classiques (même branchés en numérique) car je trouvais le lissage immonde comparé à Cleartype de Windows. Je n’arrive pas à me souvenir si le lissage était pareil sous OSX 10.6.
Question : Avec mon Dell 4K 24″ affiché en pseudo FullHD, toutes les autres pseudo-définitions font apparaître le message « L’utilisation d’une résolution à l’échelle peut affecter les performances ». J’en déduis que ce message apparaît pour les résolutions non pixel-perfect, ou c’est dû à autre chose ? (j’ai pas tout compris sur l’histoire de la réduction/agrandissement qui est plus lourde dans un sens que dans l’autre).
Vu que certains modèles de Mac fonctionnent pas en mode pixel perfect, pourquoi conserver ce message ?
Merci pour cet article vraiment intéressant. C’est assez commun ici (les articles intéressants) mais je suis toujours scié de lire ces articles aussi bons et complets disponibles publiquement.
De nouveau et simplement: merci
@ov3rsoul : je ne sais pas pourquoi le message est là.
Pour l’agrandissement/rétrécissement. Quand t’es en pixel perfect, y en a pas vraiment, c’est calculé et rendu dans la définition de la dalle. Si tu prends une définition plus grande que le pixel perfect : c’est calculé en plus grand que l’écran (donc ça demande plus de puissance), et ensuite c’est rétréci à la taille de l’écran (assez peu d’impact sur la qualité). Quand on prend plus petit que le pixel perfect ; ça demande forcément moins de puissance, mais c’est agrandi à la définition de l’écran, avec des artefacts potentiellement plus visible.
@pyroh : merci :)
Merci pour ces explications sur l’agrandissement/rétrécissement, je comprends mieux.
Bonjour,
Au risque d’ un peu hors-sujet, je viens partager mon expérience :
Possesseur d’un Macbook pro Retina 15’’, branché sur un écran externe 32’’ UHD-4K, il est impossible de travailler en définition native (3840×2160) à une distance raisonnable car les éléments textuels sont très petits.
J’utilise donc une définition inférieure en Hi-DPI (2560×1440) pour une lisibilité excellente, mais du coup on pert en surface d’affichage, et la réactivité est plus lente aussi.
Il aurait été bien meilleur de pouvoir afficher en définition native tout donnant la possibilité d’appliquer un zoom général, comme c’est le cas sur Windows 10.
Existe-t-il un moyen de faire cela sur MacOS ?
Non, mais en pratique, mettre en 1440p, c’est à peu près mettre de l’Ultra HD en zoom 150 % sous Windows, en fait.
Parce que zoomer l’interface, ça réduit aussi l’espace de travail, assez logiquement
Merci Pierre ; C’est pas faux.
Mais question ressource, c’est certainement plus gourmant de calculer une définition en Hi-DPI que de faire un zoom de l’interface, non ? (sur écran externe)
En tout cas je le ressens dans les animations (launchpad, modification taille de fenêtre…) sur mon Macbook qui est pourtant puissant même s’il date de 2012 (i7 quad, nVidia GT650m, 16Go).
Désolé, je me suis trompé ; mon Macbook est un fin 2013 avec une nVidia GT750m (2 Go)
>Pour les premières générations de Retina, Apple travaille en pixel perfect. Un Mac avec une dalle en 2 880 x 1 800 affiche par défaut du pseudo 1 440 x 900 par exemple. Chaque pixel logique s’affiche sur quatre pixels physiques.
Bonjour j’aimerais bien savoir par quel miracle cela fonctionne :p
Tout les écrans que je connais ne font que de l’interpolation type bilinéaire, pas de pixel perfect en cas de définition de même multiple.
Peut être que les écrans PC font ça, mais sur ma TV je ne pense pas qu’elle fonctionne comme ça.
Sur la 4k de mes parents, je vois bien que les images 1080p sont « adoucie » et pas affiché comme 1 pixel = 4 pixels
Y a pas de miracle, c’est juste la façon d’afficher.
Mais le Mac envoie bien une image en 2 880 x 1 800, alors que ton téléviseur il reçoit une image en 1080p. Y a techniquement pas d’upscale sur le Mac, c’est l’image qui est générée au départ qui est comme ça.
Et ça marche sur un écran de 15 pouces avec une résolution élevée, sur un téléviseur de 50 pouces (par exemple), ce serait une mauvaise idée. Afficher du 1080p sans traitement, ça donnerait une image avec des effets d’escalier bien visibles.