Может ли шестиугольный массив пикселей хранить изображение более эффективно?


11

Большинство компьютерных мониторов и телевизоров имеют прямоугольную матрицу пикселей, расположенных на квадратной (или почти квадратной) решетке. Будет ли шестиугольная решетка давать лучшее качество изображения при том же количестве пикселей? Другими словами, позволит ли тот же объем памяти хранить больше деталей?

У меня есть интуитивное чувство, что (по крайней мере, немного) больше деталей должно быть возможно из того же числа пикселей с гексагональной решеткой, потому что (для изображения с фиксированной областью) среднее расстояние до ближайшего центра пикселя будет меньше, чем с квадратной решеткой , Я хотел бы видеть разницу более конкретно.


Даже если ответ «да», я не ожидаю, что производители мониторов внезапно начнут создавать пиксели с шестиугольной компоновкой. Однако я задаю вопрос, потому что мне интересно, можно ли получить что-либо от хранения изображений в виде шестиугольных решеток пикселей, даже если они переведены в квадратные решетки пикселей для отображения.


1
Чтобы придумать этот вопрос, вы должны были иметь некоторые преимущества гексагонального расположения пикселей. Вы можете добавить это к вопросу?
нитищ

@nitishch это было только одно преимущество, которое я имел в виду. Мое редактирование лучше?
Трихоплакс

Обмен стеком DSP (обработка сигналов), вероятно, будет иметь более формальный ответ для вас на этом BTW.
Алан Вулф


1
FWIW, я слышал о дисплеях (обычно очень больших дисплеях на стадионах), которые используют конфигурацию дельта-набла. (Назван по буквам греческой дельты «Δ» и букве «n» на иврите, поскольку пиксели представляли собой чередующиеся треугольники с точкой, идущей вверх, затем вниз, затем вверх, затем вниз.) Одним из примеров является Philips Vidiwall.
user1118321

Ответы:


8

Вот мой взгляд на это. Пиксель - это не квадрат и даже не прямоугольник. Пиксель - это точка (бесконечно мала), цвет которой связан с ней.

Единственный способ, которым я лично когда-либо видел пиксели, просматриваемые (интерпретируемые) дисплеем, - это использовать выборку «ближайшего соседа», где пиксели были на прямоугольной сетке, что означает, что цвет любого данного пространства на дисплее - это цвет пиксель, к которому он ближе всего.

Это причудливый способ сказать «пиксели прямоугольные и расположены на сетке», но оставайтесь со мной в этом: P

В результате пиксели форматов изображений также сохраняются в сетке, при условии, что ближайший сосед в сетке также будет использоваться для его отображения. Например, многие изображения будут иметь встроенное сглаживание, чтобы они хорошо выглядели при отображении в «сетке ближайших соседей».

Интерактивные приложения (игры) могут использовать текстуры, которые не должны отображаться как есть в сетках ближайших соседей, поэтому являются своего рода исключением из этого правила. Они делают это потому, что в рамках своего выполнения они выполняют сглаживание, билинейную выборку текстур и т. Д., Так что любое изображение, которое они выдвигают на дисплей, будет хорошо выглядеть, когда на дисплее будет отображаться сетка ближайшего соседа!

Теперь, приближаясь к вашему вопросу: будет ли шестиугольная сетка иметь какие-либо преимущества?

Я думаю, что да, это будет!

Во-первых, я думаю, что ближайший сосед будет выглядеть лучше. У меня нет никаких реальных доказательств этого сожаления, но шестиугольник более близко приближается к кругу, и, поскольку он не является регулярной сеткой данных, я думаю, что ваш взгляд получает лучшее распределение данных. Извините, это немного взволнованно.

Я думаю, что большая часть того, почему это выглядело бы лучше, заключается в том, что линейная фильтрация будет принимать информацию от 6 соседей вместо 4, и будет интерполировать по 3 осям вместо 2. Больше информации из менее регулярно расположенных выборок, чем сетка, дает вам = лучше полученное изображение.

Выполнение кубической интерполяции также будет лучше, чем кубическая интерполяция в сетке, поэтому качество возрастает по мере увеличения качества вашего алгоритма.

Что касается того, насколько эффективно он хранит данные, тот факт, что он может лучше фильтровать с меньшим количеством данных, означает для меня, что да, он может хранить данные более эффективно.

И я думаю, наконец ... может быть, вы могли бы использовать эти свойства в ваших интересах. Возможно, вы могли бы сохранить формат изображения в шестиугольном формате с низким разрешением, а затем, прежде чем вам нужно было отобразить изображение во время выполнения, вы могли бы использовать алгоритмы выборки, чтобы преобразовать его обратно в сетку.

Может быть, даже был бы хороший способ сделать это эффективно в пиксельном шейдере, чтобы он также использовал меньше памяти во время выполнения?

Это интересная идея (:

PS - как здорово было бы иметь аналоговый дисплей (без отдельных пикселей, но с непрерывной цветной поверхностью), который смотрел бы на отправленные вами данные пикселей не в виде прямоугольников, а вместо этого в качестве точек выборки на непрерывной поверхности. Может быть, немного там, хотя ....


2
Вам не нужно хранить каждую цветовую плоскость даже в каждом пикселе или иметь плоскости в одинаковой конфигурации. НО вы теряете разделяемую фильтрацию
joojaa

Хорошие моменты! Раздельная фильтрация довольно большая. Интересно, вы могли бы сделать 3-осевую фильтрацию для шестиугольников?
Алан Вулф

4

Если вы изучите старые телевизоры с электронно-лучевой трубкой, вы увидите красные, зеленые и синие люминофорные точки в треугольной решетке. Некоторые телевизоры с жидкокристаллическим экраном имели несколько похожее расположение; пиксели были прямоугольными, а не квадратными, но последовательные ряды пикселей были смещены таким образом, чтобы горизонтальное положение красного пикселя в одной строке находилось на полпути между положениями ближайших красных пикселей в ряду выше и соответствовало положению красного пиксель на две строки вверх.

При отображении «аналоговых» изображений такие компоновки улучшат визуальное качество изображения, которое может быть получено с заданным количеством пикселей. Однако на компьютерных дисплеях есть много линий, которые должны выглядеть идеально горизонтально, и много линий, которые должны выглядеть идеально вертикально. Прямоугольная сетка может вместить оба легко. Гексагональная сетка, однако, может вместить только одну или другую, и та, которая не размещена, будет выглядеть довольно противной зубчатой.


Так что не очень хорошо для Excel :)
Joojaa
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.