Un array di pixel esagonali può memorizzare un'immagine in modo più efficiente?


11

La maggior parte dei monitor e dei televisori ha una matrice rettangolare di pixel disposti su un reticolo quadrato (o quasi quadrato). Un reticolo esagonale darebbe una migliore qualità dell'immagine per lo stesso numero di pixel? In altre parole, la stessa quantità di memoria consentirebbe la memorizzazione di maggiori dettagli?

Ho la sensazione intuitiva che (almeno leggermente) dovrebbero essere possibili più dettagli dallo stesso numero di pixel con un reticolo esagonale perché (per un'immagine ad area fissa) la distanza media dal centro del pixel più vicino sarà inferiore rispetto a un reticolo quadrato . Mi piacerebbe vedere la differenza definita più concretamente.


Anche se la risposta è "sì", non mi aspetto che i produttori di monitor inizi improvvisamente a creare pixel disposti in modo esagonale. Tuttavia, faccio la domanda perché mi chiedo se ci sarebbe qualcosa da guadagnare dalla memorizzazione delle immagini come reticoli esagonali di pixel, anche se vengono tradotti in reticoli quadrati di pixel a scopo di visualizzazione.


1
Per formulare questa domanda, è necessario disporre di alcuni vantaggi della disposizione esagonale dei pixel. Puoi aggiungerli alla domanda?
nitishch,

@nitishch era l'unico vantaggio che avevo in mente. La mia modifica riesce meglio?
trichoplax,

Lo scambio di stack DSP (elaborazione del segnale) probabilmente avrebbe una risposta più formale per te su questo BTW.
Alan Wolfe,


1
FWIW, ho sentito parlare di display (di solito display molto grandi negli stadi) che usano una configurazione delta-nabla. (Chiamato per la lettera delta greca "Δ" e la lettera ebraica nabla "∇" perché i pixel alternavano i triangoli con il punto che saliva, quindi verso il basso, quindi verso l'alto, quindi verso il basso.) Un esempio è il Philips Vidiwall.
user1118321

Risposte:


8

Ecco la mia opinione su di esso. Un pixel non è un quadrato e non è nemmeno un rettangolo. Un pixel è un punto (infinitamente piccolo) a cui è associato un colore.

L'unico modo in cui ho visto personalmente i pixel visualizzati (interpretati) da un display è utilizzare il campionamento del "vicino più vicino" in cui i pixel si trovavano su una griglia rettangolare, il che significa che il colore di qualsiasi spazio dato su un display è il colore del pixel a cui è più vicino.

Questo è un modo elegante di dire "i pixel sono rettangolari e disposti su una griglia", ma stai con me su questo: P

Di conseguenza, anche i formati di immagine hanno i loro pixel memorizzati in una griglia, con il presupposto che per visualizzarlo verranno utilizzati anche i vicini più vicini in una griglia. Ad esempio, molte immagini avranno l'anti-aliasing incorporato in modo che sembrino buone quando vengono visualizzate su una "griglia vicina più vicina".

Le applicazioni interattive (giochi) possono usare trame che non sono pensate per essere visualizzate come nelle griglie dei vicini più vicini, quindi sono una specie di eccezione a quella regola. Lo fanno perché come parte della loro esecuzione, fanno l'antialiasing, il campionamento delle trame bilineari, ecc., In modo che qualsiasi immagine che inviano al display appaia bene, quando il display lo mostra come una griglia vicina più vicina!

Ora, avvicinandoti alla tua domanda: una griglia esagonale avrebbe dei vantaggi?

Penso che sì, lo farebbe!

Prima di tutto, penso che il vicino più vicino avrebbe un aspetto migliore. Non ho alcuna prova reale di questo dispiacere, ma l'esagono si avvicina più da vicino a un cerchio, e dal momento che non è una griglia regolare di dati, penso che il tuo occhio stia ottenendo una migliore distribuzione dei dati. Mi dispiace, è un po 'ondulato.

Penso che la maggior parte del motivo per cui sembrerebbe migliore, però, è che il filtraggio lineare prenderà informazioni da 6 vicini invece di 4, e si interpolerebbe su 3 assi anziché su 2. Maggiori informazioni da campioni con spaziatura meno regolare rispetto a una griglia ti danno = migliore immagine risultante.

Fare l'interpolazione cubica sarebbe anche meglio dell'interpolazione cubica su una griglia, quindi la qualità aumenta man mano che aumenti anche la qualità del tuo algoritmo.

Per quanto riguarda il fatto che memorizzi i dati in modo più efficiente, il fatto che sia in grado di filtrare meglio con meno dati significa per me che sì, potrebbe archiviare i dati in modo più efficiente.

E immagino infine ... forse potresti usare queste proprietà a tuo vantaggio. Forse potresti avere un formato di immagine memorizzato in un formato esagonale a bassa risoluzione, e quindi prima di visualizzare l'immagine in fase di runtime, potresti utilizzare algoritmi di campionamento per riconvertirlo in una griglia.

Forse ci sarebbe anche un buon modo per farlo in modo efficiente in un pixel shader, quindi userebbe anche meno memoria in fase di esecuzione?

È un'idea interessante (:

PS: quanto sarebbe bello avere un display analogico (senza singoli pixel, ma una superficie colorata continua) che guardasse i dati pixel inviati non come rettangoli, ma come punti campione su una superficie continua. Forse un po 'là fuori però ...


2
Non è necessario memorizzare ogni piano di colore in ogni pixel, o avere i piani nella stessa configurazione. MA
perdi i

Punti buoni! Il filtro separabile è piuttosto grande. Mi chiedo se potresti fare un filtro a 3 assi per gli esagoni?
Alan Wolfe,

4

Se si esaminano i vecchi schermi televisivi CRT, si osserveranno punti di fosforo rosso, verde e blu in un reticolo triangolare. Alcuni televisori LCD avevano una disposizione in qualche modo simile; i pixel erano rettangolari anziché quadrati, ma le successive file di pixel erano sfalsate in modo tale che la posizione orizzontale di un pixel rosso su una riga fosse a metà strada tra le posizioni dei pixel rossi più vicini sulla riga sopra e corrispondesse alla posizione di un rosso pixel due righe in alto.

Quando si mostrano immagini "analogiche", tali disposizioni miglioreranno la qualità visiva dell'immagine che può essere ottenuta con un determinato numero di pixel. Sui display dei computer, tuttavia, ci sono molte linee che dovrebbero apparire perfettamente orizzontali e molte linee che dovrebbero apparire perfettamente verticali. Una griglia rettangolare può adattarsi facilmente entrambi. Una griglia esagonale, tuttavia, può ospitare solo l'una o l'altra e quella che non è sistemata apparirà piuttosto frastagliata.


Quindi non va bene per eccellere :)
joojaa,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.