214 votes

Pourquoi les pixels sont-ils carrés ?

Les pixels des écrans sont carrés, mais je ne sais pas trop pourquoi.

Les deux images pixelisées ont l'air assez mauvaises - mais je ne suis pas sûr que les carrés soient plus avantageux que les hexagones ici.

Les hexagones se divisent également bien en 3 couleurs :

Quel est donc l'avantage des carrés dans un écran LCD / CRT ?

9voto

Les pixels carrés étaient "la chose logique à faire", déclare leur inventeur, Russel Kirsch :

"Bien sûr, la chose logique n'était pas la seule possibilité mais nous avons utilisé des carrés. C'était quelque chose de très stupide dont tout le monde a souffert depuis."

http://www.wired.com/2010/06/smoothing-square-pixels/

9voto

orion Points 251

Certaines des réponses abordent déjà ce sujet... Je pense que les tableaux non-rectangulaires en termes de stockage de données créerait une complexité presque inimaginable et serait extrêmement propice aux erreurs. J'ai beaucoup d'expérience dans la modélisation de systèmes physiques dont la grille n'est pas rectangulaire (grilles décalées - points de données à mi-bords, etc.). L'indexation est un cauchemar.

Tout d'abord, il y a le problème de la définition de la frontière. Les images sont généralement rectangulaires (encore une fois, c'est une question d'histoire - si nos écrans étaient hexagonaux, les choses seraient un peu plus faciles). Ainsi, même la limite de l'image n'est pas une ligne droite. Mettez-vous le même nombre de pixels dans chaque rangée ? Est-ce que vous alternez pair/impair ? Et... le pixel inférieur gauche est-il à gauche de celui qui le précède, ou à droite ? Vous obtenez immédiatement près de 10 normes différentes, et les programmeurs doivent se souvenir à chaque fois de la façon dont cela se passe (même la différence de rangée-majeur et de colonne-majeur ou la différence d'indexation de haut en bas/bas-haut provoque parfois des erreurs). Cela entraîne l'immense problème de la conversion paysage/portrait (transformation naturelle, qui est triviale sur une grille rectangulaire, mais nécessite une interpolation et est presque nécessairement une procédure avec perte sur une grille hexagonale ou différente). C'est même un problème pour les pixels rectangulaires (rapport d'aspect != 1).

Ensuite, il y a l'instinct naturel des gens pour la disposition rectangulaire. En mathématiques, les matrices ont la même disposition. De même, un cadre de coordonnées cartésiennes est à peu près le plus facile à utiliser et à comprendre dans la plupart des cas généraux. Obtenir l'index d'un pixel à (x,y) est juste x+largeur*y (et non l'inverse - héritage de l'indexation par ligne de balayage). Si la largeur est un multiple de 2, la multiplication n'est même pas nécessaire. Travailler avec des angles non droits entraîne de nombreuses complications qui proviennent de l'algèbre vectorielle, lorsque les vecteurs de base ne sont pas orthogonaux : les rotations ne sont plus de simples superpositions cos/sin. La translation devient bizarre. Cela apporte beaucoup de complexité de calcul (ce serait plusieurs fois plus cher à calculer), et la complexité du code (je me souviens avoir codé l'algorithme de Bresenham une fois, et je n'aimerais vraiment pas essayer de le faire en hexagone).

L'interpolation et l'anticrénelage en général ont beaucoup d'algorithmes qui dépendent de la grille carrée. L'interpolation bilinéaire, par exemple. Toutes les méthodes de traitement basées sur la méthode de Fourier sont également liées à la grille rectangulaire (la FFT est très utile dans le traitement de l'image)... enfin, à moins que vous ne fassiez d'abord des transformations coûteuses et avec perte.

Tout cela montre que données dans la mémoire et les formats de fichiers doivent être stockés sous forme de grille rectangulaire. La façon dont vous l'affichez dépend du périphérique d'affichage/de l'imprimante, mais cela devrait être le problème du pilote. Les données sont censées être indépendantes du périphérique et ne devraient pas supposer quel matériel vous avez. Comme le montrent les messages ci-dessus, il y a de nombreux avantages à utiliser des pixels non rectangulaires, en raison de la physiologie de l'oeil humain et d'autres facteurs plus technologiques - gardez simplement les données sur la grille carrée, ou vous aurez une horde de programmeurs névrosés à qui vous devrez répondre :)

Malgré tout, j'ai eu l'idée d'avoir une disposition circulaire des pixels pour l'intégration dans les cadrans de montres (en faisant des mains des lignes droites). Lorsque j'ai commencé à imaginer à quel point il serait difficile de dessiner quelque chose d'aussi simple qu'une ligne droite qui ne passe pas par le centre, je suis arrivé à un grand nombre des conclusions que je mentionne ci-dessus.

7voto

alfC Points 303

Cette question porte davantage sur la disposition que sur la forme réelle d'un pixel.

Le problème des arrangements hexagonaux est que la traduction d'un site hexagonal en coordonnées cartésiennes et vice versa n'est pas triviale.

Soit vous travaillez avec un indice de treillis de Bravais primitif

https://en.wikipedia.org/wiki/Bravais_lattice

soit vous travaillez avec une cellule rectangulaire conventionnelle et ajoutez plusieurs "vecteurs de base" internes. (Il faut deux vecteurs de base pour le plus petit réseau rectangulaire et environ 16 pour le plus petit réseau carré).

Dans le premier cas, il s'agit d'une transformation d'angle et dans le second, chaque pixel doit être transformé. x, y et un indice de base j à spécifier.

Donc, en fin de compte, les pixels "carrés" doivent être un sous-produit de notre culture cartésienne.

D'ailleurs, ce serait très cool d'avoir cette technologie mais elle est très incompatible avec le paradigme actuel. En fait, les systèmes biologiques préfèrent les hexagones lorsqu'ils produisent des treillis pour les systèmes visuels. Pensez aux yeux de mouche. La rétine humaine suit également quelque chose de plus proche de l'hexagone (que du carré).

Voir ici http://www.kybervision.com/resources/Blog/HumanRetinaMosaic.png et retour au point d'affichage http://www.kybervision.com/Blog/files/AppleRetinaDisplay.html

Je ne doute pas qu'un treillis hexagonal soit plus approprié pour la visualisation. Mais vous pouvez y penser de cette façon, chaque fois que les ingénieurs veulent améliorer un affichage, ils sont confrontés au dilemme suivant, 1) passer à l'hexagonal, changer le paradigme, réécrire des trillons de lignes de code et de matériel 2) rendre les "carrés" plus petits, ajouter de la mémoire, augmenter le nombre de deux pour les dimensions d'affichage mesurées en pixels. L'option 2) est toujours moins chère.

Enfin un mot de l'inventeur du pixel carré http://www.wired.com/2010/06/smoothing-square-pixels

Russell Kirsch, inventeur du pixel carré, retourne au dessin planche à dessin. Dans les années 1950, il faisait partie d'une équipe qui a développé le pixel pixel carré. ''Le carré était la chose logique à faire'', dit Kirsch. "Bien sûr, la chose Bien sûr, la chose logique n'était pas la seule possibilité mais nous avons utilisé les carrés. C'était quelque chose de très stupide que tout le monde dans le monde a a souffert depuis .' Aujourd'hui retraité et vivant à Portland, Oregon, Kirsch a récemment entrepris de se racheter. Inspiré par les constructeurs de mosaïques mosaïques de l'Antiquité qui construisaient des scènes aux détails étonnants avec des avec des morceaux de carreaux, Kirsch a écrit un programme qui transforme les gros carrés trapus d'une image numérique en une image plus lisse faite de pixels de forme variable".

7voto

user3533030 Points 182

Pour comprendre pourquoi un pixel rectiligne a de la valeur, il faut comprendre le processus de fabrication des capteurs et des écrans. Tous deux sont basés sur la disposition du silicium. Tous deux sont issus des origines du VLSI.

Pour que vous puissiez mettre en œuvre un non rectiligne capteur pixel, vous devez être prêt à le faire :

  1. Disposez les éléments photosensibles de manière non rectiligne (par exemple, des cercles empilés en hexagone).
  2. Disposer les fils qui collectent la charge (par exemple CMOS / CCD) de manière non rectiligne.
  3. Mettez cette disposition à l'échelle de >> 1M x 1M pour répondre aux demandes du marché.
  4. Faire correspondre (ou interpoler) les informations à un affichage rectiligne

Pour que vous puissiez mettre en œuvre un programme non rectiligne afficher pixel, vous avez besoin des mêmes choses.

Beaucoup de gens ont essayé de faire fovéal les caméras et les écrans (haute résolution au milieu, là où nos yeux sont le mieux, basse résolution à la périphérie). Le résultat est toujours quelque chose de plus coûteux et de moins performant qu'un capteur rectiligne.

La réalité de l'efficacité commerciale est que l'on peut rêver de capteurs/écrans non rectilignes, mais ce n'est pas rentable ni évolutif pour le moment.

5voto

Micheal Johnson Points 625

Il y a deux façons de répondre à cette question :

  1. Dans le matériel, les pixels ne sont pas nécessairement carrés physiquement, mais peuvent avoir toute forme ou disposition que le fabricant d'un dispositif d'affichage juge appropriée. En réalité, ils ne sont souvent pas carrés.
  2. Dans les logiciels, les pixels sont considérés comme "carrés" en ce sens qu'ils sont censés représenter une zone de même largeur et de même hauteur. Cela ne signifie pas que lorsqu'ils sont rendus, par exemple s'ils sont agrandis, ils doivent être dessinés comme des carrés, mais ils doivent représenter les données d'une zone de l'image qui a des proportions carrées, sinon l'image apparaîtra étirée d'une manière ou d'une autre. Cette règle est purement conventionnelle.

Dans les deux cas, les pixels ne sont pas nécessaires pour être carrés, mais sont ainsi purement par convention. Un exemple concret : les premiers écrans larges utilisaient le même nombre de pixels - tant au niveau matériel que logiciel - que les écrans non larges, mais les pixels étaient conceptuellement rectangulaires (la taille horizontale était supérieure à la taille verticale) plutôt que conceptuellement carrés, comme c'est le cas en général. Néanmoins, l'utilisation de formes de pixels qui ne se rapprochent pas d'un carré n'est pas standard et est susceptible de causer d'énormes problèmes de compatibilité, du moins dans l'usage quotidien.

RÉPONSE COURTE :

Par convention, les pixels sont traités comme des carrés.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X