Könnte ein hexagonales Pixelarray ein Bild effizienter speichern?


11

Die meisten Computermonitore und Fernseher haben eine rechteckige Anordnung von Pixeln, die auf einem quadratischen (oder fast quadratischen) Gitter angeordnet sind. Würde ein hexagonales Gitter bei gleicher Pixelanzahl eine bessere Bildqualität ergeben? Mit anderen Worten, würde dieselbe Speichermenge die Speicherung von mehr Details ermöglichen?

Ich habe das intuitive Gefühl, dass (zumindest geringfügig) mehr Details aus der gleichen Anzahl von Pixeln mit einem hexagonalen Gitter möglich sein sollten, da (für ein Bild mit festem Bereich) der durchschnittliche Abstand zum nächsten Pixelzentrum geringer ist als mit einem quadratischen Gitter . Ich würde gerne sehen, dass der Unterschied konkreter definiert wird.


Selbst wenn die Antwort "Ja" lautet, erwarte ich nicht, dass Monitorhersteller plötzlich anfangen, hexagonal angeordnete Pixel zu erstellen. Ich stelle die Frage jedoch, weil ich mich frage, ob durch das Speichern von Bildern als hexagonale Pixelgitter etwas gewonnen werden kann, selbst wenn sie zu Anzeigezwecken in quadratische Pixelgitter übersetzt werden.


1
Um diese Frage zu beantworten, müssen Sie einige Vorteile der hexagonalen Anordnung von Pixeln gehabt haben. Können Sie diese der Frage hinzufügen?
Nitishch

@nitishch es war nur der eine Vorteil, den ich im Sinn hatte. Vermittelt meine Bearbeitung es besser?
Trichoplax

Der DSP-Stapelaustausch (Signalverarbeitung) hätte wahrscheinlich eine formellere Antwort für Sie auf diese BTW.
Alan Wolfe


1
FWIW, ich habe von Displays gehört (normalerweise sehr große Displays in Stadien), die eine Delta-Nabla-Konfiguration verwenden. (Benannt nach dem griechischen Delta-Buchstaben "Δ" und dem hebräischen Nabla-Buchstaben "∇", weil die Pixel abwechselnd Dreiecke bildeten, wobei der Punkt nach oben, unten, dann nach oben und dann nach unten ging.) Ein Beispiel ist der Philips Vidiwall.
user1118321

Antworten:


8

Hier ist meine Meinung dazu. Ein Pixel ist kein Quadrat und es ist nicht einmal ein Rechteck. Ein Pixel ist ein Punkt (unendlich klein), dem eine Farbe zugeordnet ist.

Die einzige Möglichkeit, wie ich persönlich jemals Pixel gesehen habe, die von einer Anzeige angezeigt (interpretiert) wurden, ist die Verwendung der Stichprobe "nächster Nachbar", bei der sich die Pixel in einem rechteckigen Raster befanden. Dies bedeutet, dass die Farbe eines bestimmten Bereichs auf einer Anzeige die Farbe der ist Pixel, dem es am nächsten ist.

Dies ist eine ausgefallene Art zu sagen, "Pixel sind rechteckig und in einem Raster angeordnet", aber bleiben Sie bei mir: P.

Infolgedessen werden die Pixel von Bildformaten auch in einem Raster gespeichert, wobei davon ausgegangen wird, dass der nächste Nachbar in einem Raster auch zur Anzeige verwendet wird. In vielen Bildern ist beispielsweise Anti-Aliasing integriert, sodass sie gut aussehen, wenn sie in einem "Raster des nächsten Nachbarn" angezeigt werden.

Interaktive Anwendungen (Spiele) verwenden möglicherweise Texturen, die nicht wie in den Gittern der nächsten Nachbarn angezeigt werden sollen. Dies ist also eine Art Ausnahme von dieser Regel. Sie tun dies, weil sie im Rahmen ihrer Ausführung Anti-Aliasing, bilineare Texturabtastung usw. durchführen, damit jedes Bild, das sie auf das Display übertragen, gut aussieht, wenn das Display es als Raster des nächsten Nachbarn anzeigt!

Kommen wir nun Ihrer Frage näher: Hätte ein sechseckiges Gitter irgendwelche Vorteile?

Ich denke das ja ja würde es!

Zunächst einmal denke ich, dass der nächste Nachbar besser aussehen würde. Ich habe keinen wirklichen Beweis dafür, aber das Sechseck nähert sich einem Kreis näher an, und da es kein reguläres Datenraster ist, denke ich, dass Ihr Auge eine bessere Datenverteilung erhält. Entschuldigung, das ist eine kleine Handbewegung.

Ich denke, der Hauptgrund, warum es besser aussehen würde, ist, dass die lineare Filterung Informationen von 6 Nachbarn anstelle von 4 nimmt und auf 3 Achsen statt 2 interpoliert. Mehr Informationen von weniger regelmäßig beabstandeten Abtastwerten als ein Raster liefert = besseres Ergebnisbild.

Eine kubische Interpolation ist auch besser als eine kubische Interpolation in einem Raster. Daher erhöht sich die Qualität, wenn Sie auch die Qualität Ihres Algorithmus erhöhen.

Wenn es darum geht, Daten effizienter zu speichern, bedeutet die Tatsache, dass es mit weniger Daten besser filtern kann, für mich, dass es Daten effizienter speichern kann.

Und zum Schluss denke ich ... vielleicht könnten Sie diese Eigenschaften zu Ihrem Vorteil nutzen. Möglicherweise können Sie ein Bildformat in einem hexagonalen Format mit niedrigerer Auflösung speichern. Bevor Sie das Bild zur Laufzeit anzeigen müssen, können Sie es mithilfe von Stichprobenalgorithmen wieder in ein Raster konvertieren.

Vielleicht gibt es sogar eine gute Möglichkeit, dies in einem Pixel-Shader effizient zu tun, sodass zur Laufzeit auch weniger Speicher benötigt wird?

Es ist eine interessante Idee (:

PS - wie cool wäre es, eine analoge Anzeige (keine einzelnen Pixel, sondern eine durchgehende farbige Oberfläche) zu haben, die die von Ihnen gesendeten Pixeldaten nicht als Rechtecke, sondern als Abtastpunkte auf einer durchgehenden Oberfläche betrachtet. Vielleicht ein bisschen da draußen ...


2
Sie müssen nicht jede Farbebene in jedem Pixel selbst speichern oder die Ebenen in derselben Konfiguration haben. ABER Sie verlieren trennbare Filterung
joojaa

Gute Argumente! Die trennbare Filterung ist ziemlich groß. Ich frage mich, ob Sie eine 3-Achsen-Filterung für Sechsecke durchführen könnten.
Alan Wolfe

4

Wenn man alte CRT-Fernsehbildschirme untersucht, beobachtet man rote, grüne und blaue Leuchtstoffpunkte in einem dreieckigen Gitter. Einige LCD-Fernseher hatten eine ähnliche Anordnung; Pixel waren eher rechteckig als quadratisch, aber aufeinanderfolgende Pixelreihen waren versetzt, so dass die horizontale Position eines roten Pixels in einer Reihe auf halbem Weg zwischen den Positionen der nächsten roten Pixel in der oberen Reihe lag und mit der Position eines roten übereinstimmte Pixel zwei Zeilen nach oben.

Wenn "analoge" Bilder gezeigt werden, verbessern solche Anordnungen die visuelle Qualität des Bildes, das mit einer gegebenen Anzahl von Pixeln erhalten werden kann. Auf Computerbildschirmen gibt es jedoch viele Linien, die perfekt horizontal erscheinen sollten, und viele Linien, die perfekt vertikal erscheinen sollten. Ein rechteckiges Gitter kann beide problemlos aufnehmen. Ein sechseckiges Gitter kann jedoch nur das eine oder das andere aufnehmen, und dasjenige, das nicht untergebracht ist, erscheint ziemlich unangenehm gezackt.


Also nicht gut für Excel :)
Joojaa
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.