Un réseau de pixels hexagonal pourrait-il stocker une image plus efficacement?

11

La plupart des moniteurs et téléviseurs d'ordinateur ont une matrice rectangulaire de pixels disposés sur un réseau carré (ou presque carré). Un réseau hexagonal donnerait-il une meilleure qualité d'image pour le même nombre de pixels? En d'autres termes, la même quantité de mémoire permettrait-elle de stocker plus de détails?

J'ai le sentiment intuitif que (au moins légèrement) plus de détails devraient être possibles à partir du même nombre de pixels avec un réseau hexagonal parce que (pour une image à zone fixe), la distance moyenne au centre du pixel le plus proche sera inférieure à celle d'un réseau carré . J'aimerais que la différence soit définie plus concrètement.


Même si la réponse est "oui", je ne m'attends pas à ce que les fabricants de moniteurs commencent soudainement à créer des pixels disposés en hexagone. Cependant, je pose la question parce que je me demande s'il y aurait quelque chose à gagner à stocker des images sous forme de réseaux hexagonaux de pixels, même si elles sont converties en réseaux carrés de pixels à des fins d'affichage.

trichoplax
la source
1
Pour poser cette question, vous devez avoir eu certains avantages de la disposition hexagonale des pixels. Pouvez-vous les ajouter à la question?
nitishch
@nitishch, ce n'était que le seul avantage que j'avais en tête. Ma modification est-elle mieux transmise?
trichoplax
L'échange de pile DSP (traitement du signal) aurait probablement une réponse plus formelle pour vous sur ce BTW.
Alan Wolfe
1
FWIW, j'ai entendu parler d'écrans (généralement de très grands écrans dans les stades) qui utilisent une configuration delta-nabla. (Nommé pour la lettre delta grecque "Δ" et la lettre hébraïque nabla "∇" parce que les pixels étaient des triangles alternés avec le point montant, puis descendant, puis montant, puis descendant.) Un exemple est le Philips Vidiwall.
user1118321

Réponses:

8

Voici mon point de vue là-dessus. Un pixel n'est pas un carré et ce n'est même pas un rectangle. Un pixel est un point (infiniment petit) auquel une couleur lui est associée.

La seule façon dont j'ai personnellement vu des pixels vus (interprétés) par un écran est d'utiliser l'échantillonnage du "plus proche voisin" là où les pixels étaient sur une grille rectangulaire, ce qui signifie que la couleur de tout espace donné sur un écran est la couleur du pixel dont il est le plus proche.

C'est une façon élégante de dire "les pixels sont rectangulaires et disposés sur une grille", mais restez avec moi sur ce point: P

Par conséquent, les formats d'image ont également leurs pixels stockés dans une grille, avec l'hypothèse que le plus proche voisin dans une grille sera également utilisé pour l'afficher. Par exemple, de nombreuses images auront un anti-crénelage intégré afin qu'elles soient belles lorsqu'elles sont affichées sur une "grille de voisin le plus proche".

Les applications interactives (jeux) peuvent utiliser des textures qui ne sont pas censées être affichées telles quelles sur les grilles des voisins les plus proches, elles constituent donc une sorte d'exception à cette règle. Ils le font parce que dans le cadre de leur exécution, ils font de l'anti-aliasing, de l'échantillonnage de la texture bilinéaire, etc.

Maintenant, se rapprochant de votre question: une grille hexagonale aurait-elle des avantages?

Je pense que oui, ce serait le cas!

Tout d'abord, je pense que le voisin le plus proche serait mieux. Je n'ai aucune preuve réelle de cela, mais l'hexagone se rapproche plus étroitement d'un cercle, et comme il ne s'agit pas d'une grille de données régulière, je pense que votre œil obtient une meilleure distribution des données. Désolé, c'est un peu onduleux.

Je pense que la raison principale pour laquelle cela semblerait mieux est que le filtrage linéaire prendrait des informations de 6 voisins au lieu de 4, et interpolerait sur 3 axes au lieu de 2. Plus d'informations provenant d'échantillons moins régulièrement espacés qu'une grille vous donne = meilleure image résultante.

Faire une interpolation cubique serait également préférable à une interpolation cubique sur une grille, donc la qualité évolue à mesure que vous augmentez la qualité de votre algorithme.

En ce qui concerne le stockage plus efficace des données, le fait qu'il puisse mieux filtrer avec moins de données signifie pour moi que oui, il pourrait stocker les données plus efficacement.

Et je suppose enfin ... vous pourriez peut-être utiliser ces propriétés à votre avantage. Peut-être pourriez-vous avoir un format d'image stocké dans un format hexagonal de résolution inférieure, puis avant d'avoir besoin d'afficher l'image au moment de l'exécution, vous pouvez utiliser des algorithmes d'échantillonnage pour la reconvertir en grille.

Peut-être qu'il y aurait même un bon moyen de le faire efficacement dans un pixel shader, de sorte qu'il utiliserait également moins de mémoire lors de l'exécution?

C'est une idée intéressante (:

PS - ce serait cool d'avoir un affichage analogique (pas de pixels individuels, mais une surface colorée continue) qui regardait les données de pixels que vous avez envoyées non pas sous forme de rectangles, mais plutôt comme points d'échantillonnage sur une surface continue. Peut-être un peu là-bas cependant ...

Alan Wolfe
la source
2
Vous n'avez pas besoin de stocker chaque plan de couleur dans chaque pixel, ni d'avoir les plans dans la même configuration. MAIS vous
perdez
Bons points! Le filtrage séparable est assez important. Je me demande si vous pourriez faire un filtrage 3 axes pour les hexagones?
Alan Wolfe
4

Si l'on examine de vieux écrans de télévision à tube cathodique, on observera des points de phosphore rouge, vert et bleu dans un réseau triangulaire. Certains téléviseurs LCD avaient une disposition quelque peu similaire; les pixels étaient rectangulaires plutôt que carrés, mais les rangées de pixels successives étaient échelonnées de sorte que la position horizontale d'un pixel rouge sur une ligne serait à mi-chemin entre les positions des pixels rouges les plus proches sur la ligne ci-dessus, et correspondrait à la position d'un rouge pixel deux lignes vers le haut.

Lorsque vous montrez des images "analogiques", de telles dispositions amélioreront la qualité visuelle de l'image qui peut être obtenue avec un nombre donné de pixels. Sur les écrans d'ordinateur, cependant, il y a beaucoup de lignes qui doivent apparaître parfaitement horizontales et beaucoup de lignes qui doivent apparaître parfaitement verticales. Une grille rectangulaire peut facilement accueillir les deux. Une grille hexagonale, cependant, ne peut accueillir que l'un ou l'autre, et celle qui n'est pas logée apparaîtra plutôt irrégulièrement dentelée.

supercat
la source
Donc pas bon pour excel :)
joojaa