J'aimerais proposer une alternative à la réponse bien pensée de David Postill. Dans sa réponse, il aborde la question de la quadrature des pixels, comme le suggère le titre. Cependant, il a fait un commentaire très perspicace dans sa réponse:
Certains diront qu'ils ne sont jamais carrés ("Un pixel est un échantillon de points. Il n'existe qu'en un point.").
Cette position peut en réalité engendrer une réponse totalement différente. Au lieu de se focaliser sur la raison pour laquelle chaque pixel est un carré (ou non), il peut expliquer pourquoi nous avons tendance à organiser ces échantillonnages ponctuels en grilles rectangulaires. En fait, ça n'a pas toujours été comme ça!
Pour faire valoir cet argument, nous allons jouer entre traiter une image comme une donnée abstraite (telle qu'une grille de points) et son implémentation dans du matériel. Parfois, une vue est plus significative que l'autre.
Pour commencer, allons assez loin en arrière. La photographie de film traditionnelle n’avait aucune "grille", ce qui explique en partie pourquoi les images ont toujours été aussi nettes que les images numériques modernes. Au lieu de cela, il avait un "grain" qui était une distribution aléatoire de cristaux sur le film. C'était à peu près uniforme, mais ce n'était pas un joli tableau rectiligne. L’organisation de ces grains découle du processus de fabrication du film, utilisant des propriétés chimiques. En conséquence, le film n'avait vraiment pas de "direction". C'était juste une projection 2D d'informations.
Avance rapide vers le téléviseur, en particulier les anciens tubes cathodiques à balayage. Les tubes cathodiques ont besoin de quelque chose de différent des photos: ils doivent pouvoir représenter leur contenu sous forme de données. En particulier, il devait s'agir de données pouvant être transmises en continu, de manière analogique, sur un fil (généralement sous la forme d'un ensemble de tensions en constante évolution). La photo était en 2D, mais nous avions besoin de la transformer en une structure en 1d afin qu’elle puisse varier d’un dimention (temps). La solution consistait à découper l'image en lignes (et non en pixels!). L'image était encodée ligne par ligne. Chaque ligne était un flux de données analogique et non un échantillonnage numérique, mais les lignes étaient séparées les unes des autres. Ainsi, les données étaient discrètes dans la direction verticale, mais continues dans la direction horizontale.
Les téléviseurs devaient restituer ces données en utilisant des luminophores physiques, et un téléviseur couleur avait besoin d'une grille pour les diviser en pixels. Chaque téléviseur pouvait le faire différemment dans le sens horizontal, offrant plus de pixels ou moins de pixels, mais ils devaient avoir le même nombre de lignes. En théorie, ils auraient pu compenser chaque rangée de pixels, exactement comme vous le suggérez. Cependant, dans la pratique, cela n'était pas nécessaire. En fait, ils sont allés encore plus loin. On s'est vite rendu compte que l'œil humain gérait les mouvements d'une manière qui ne leur permettait d'envoyer que la moitié de l'image par image! Sur une image, ils envoyaient les lignes impaires, et sur l'image suivante, ils envoyaient les lignes paires, et les assemblaient.
Depuis ce temps, la numérisation de ces images entrelacées a été un peu une astuce. Si j'avais une image de 480 lignes, je n'ai en réalité que la moitié des données dans chaque image en raison de l'entrelacement. Le résultat est très visible lorsque vous essayez de voir quelque chose se déplacer rapidement sur l’écran: chaque ligne est décalée temporellement d’ une image à l’autre, créant des traînées horizontales dans les éléments se déplaçant rapidement. Je le mentionne parce que c'est plutôt amusant: votre suggestion décale chaque demi-pixel de la grille de la grille vers la droite, tandis que l'entrelacement décale de moitié toutes les lignes de la grille!
Franchement, il est plus facile de faire ces belles grilles rectangulaires. Sans aucune raison technique de faire mieux que cela, ça a collé. Ensuite, nous sommes passés à l'ère de l'informatique. Les ordinateurs devaient générer ces signaux vidéo, mais ils n’avaient aucune possibilité analogique d’écrire une ligne analogique. La solution était naturelle, les données étaient scindées en pixels. Maintenant, les données étaient discrètes à la fois verticalement et horizontalement. Tout ce qui restait à faire était de choisir comment créer la grille.
Faire une grille rectangulaire était extrêmement naturel. Tout d’abord, chaque téléviseur était déjà en train de le faire! Deuxièmement, le calcul pour tracer des lignes sur une grille rectangulaire est beaucoup plus simple que de les dessiner sur une grille hexagonale. Vous pourriez dire "mais vous pouvez dessiner des lignes lisses dans 3 directions sur une grille hexagonale, mais seulement 2 dans la forme rectangulaire." Cependant, les grilles rectangulaires permettaient de tracer facilement des lignes horizontales et verticales. Les grilles hexagonales ne peuvent être dessinées que pour dessiner l'un ou l'autre. À cette époque, peu de gens utilisaient des formes hexagonales pour leurs efforts non liés à l'informatique (papier rectangulaire, portes rectangulaires, maisons rectangulaires ...). La capacité de rendre lisse horizontale etles lignes verticales surpassent de loin l'intérêt de créer des images en couleur lisses et en couleurs ... surtout compte tenu du fait que les premiers affichages étaient monochromes et qu'il faudrait beaucoup de temps avant que la finesse des images ne joue un rôle majeur dans la réflexion.
De là, vous avez un précédent très fort pour une grille rectangulaire. Le matériel graphique supportait ce que le logiciel faisait (grilles rectangulaires) et le logiciel ciblait le matériel (grilles rectangulaires). En théorie, certains matériels auraient peut-être tenté de créer une grille hexagonale, mais le logiciel ne la récompensait pas et personne ne voulait payer deux fois plus de matériel!
Cela nous fait avancer rapidement à aujourd'hui. Nous voulons toujours de belles lignes horizontales et verticales lisses, mais avec les écrans à rétine haut de gamme, cela devient de plus en plus facile. Cependant, les développeurs sont encore formés pour penser en termes de l’ancienne grille rectangulaire. Nous voyons des nouvelles API prennent en charge « coordonnées logiques » et de faire l' anti-aliasing pour le faire paraître comme il y a un espace 2d continue à jouer avec plein plutôt que d' une grille de pixels 2d rigides, mais son lent. Finalement, nous pourrions voir des grilles hexagonales.
Nous les voyons effectivement, mais pas avec des écrans. En impression, il est très courant d'utiliser une grille hexagonale. L'œil humain accepte la grille hexagonale beaucoup plus rapidement que la grille rectangulaire. Cela a à voir avec les lignes de chemin "alias" dans les différents systèmes. Les grilles hexagonales sont un alias de manière moins dure, avec laquelle l’œil est plus à l’aise (si une grille hexagonale doit monter ou descendre dans une rangée, elle doit le faire en douceur au cours d’une transition diagonale. Les grilles rectangulaires doivent sauter, ce qui crée discontinuité nette)