Почему пиксели квадратные?

207

Пиксели на экранах квадратные, но я не уверен почему.

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

Шестиугольники также делятся на 3 цвета:

Так в чем же преимущество квадратов в ЖК / ЭЛТ-дисплее?

Тим
источник
20
Пожалуйста, уточните о контексте. Вы имеете в виду дисплеи, форматы изображений или распечатки? И даже тогда этот вопрос может быть слишком широким.
Даниэль Б
66
Пиксели являются безразмерными логическими единицами и не всегда являются квадратными в действительности, как предполагает @DanielB, каждый растеризатор обрабатывает их по-своему. Google изображения "пикселей экрана", например.
Йорик
5
Этот вопрос, возможно, следует перенести в пользовательский опыт или электротехнику .
curiousdannii
13
Я не понимаю Почему за это вообще проголосовали, и почему его не перенесли на форум по машиностроению?
Карл Виттофт

Ответы:

264

Пиксели на экранах квадратные, но я не уверен почему.

Они не (обязательно) квадратные.

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


Так в чем же преимущество квадратов в ЖК / ЭЛТ-дисплее?

  • Другие схемы (такие как треугольники, шестиугольники или другие многоугольники заполнения пространства ) являются более дорогостоящими в вычислительном отношении.

  • Каждый формат изображения основан на пикселях (независимо от их формы), расположенных в виде прямоугольного массива.

  • Если бы мы выбрали какую-то другую форму или макет, многие программы пришлось бы переписать.

  • Все фабрики, в настоящее время производящие дисплеи с прямоугольной компоновкой пикселей, должны быть переоборудованы для какой-то другой компоновки.


Практические аспекты использования гексагональной системы координат

Как правило, при использовании гексагональной системы координат необходимо учитывать четыре основных момента:

  • Преобразование изображений. Аппаратные средства, способные захватывать изображения из реального мира непосредственно на шестиугольную решетку, являются высокоспециализированными и поэтому обычно недоступны для использования. Следовательно, перед выполнением какой-либо обработки требуются эффективные средства преобразования стандартного квадратно-решеточного изображения в шестиугольное.
  • Адресация и хранение. Любые манипуляции, выполняемые с изображениями, должны иметь возможность индексировать и получать доступ к отдельным пикселям (в данном случае это шестиугольники, а не квадраты), а любое изображение в шестиугольной форме должно храниться в шестиугольной форме (в противном случае преобразование изображения должно выполняться каждый раз). время доступа к изображению). Более того, система индексации, которой легко следовать и которая упрощает арифметику некоторых функций, была бы очень полезна.
  • Операции обработки изображений - чтобы эффективно использовать шестиугольную систему координат, должны быть разработаны или преобразованы операции, предназначенные для использования сильных сторон системы, в частности сильных сторон системы адресации, используемой для индексации и хранения.
  • Отображение изображения - Как и в случае с фактическим получением изображения, устройства отображения вообще не используют гексагональные решетки. Поэтому преобразованное изображение должно быть возвращено в форму, которую можно отправить на устройство вывода (монитор, принтер или какой-либо другой объект) с результирующим отображением, отображаемым в естественных пропорциях и масштабе. Точный характер этого преобразования зависит от используемого метода индексации. Это может быть простой возврат к исходному процессу преобразования или более значительная свертка.

Проблемы с гексагональной системой координат

Однако есть некоторые проблемы с гексагональными системами координат. Одна проблема заключается в том, что люди очень привыкли к традиционной квадратной решетке.

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

Отсутствие устройств ввода, которые отображаются на шестиугольные решетки, и отсутствие устройств вывода, которые отображают как таковые, также являются препятствием:

  • Необходимость преобразования из квадратов в шестиугольники и обратно снижает полезность работы на шестиугольных решетках.

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

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

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

Исходные гексагональные системы координат


Были ли опробованы другие формы или макеты?

Дисплей XO-1 обеспечивает один цвет для каждого пикселя. Цвета выравниваются по диагонали, идущим от верхнего правого до нижнего левого. Чтобы уменьшить цветовые артефакты, вызванные этой геометрией пикселя, цветовой компонент изображения размыт контроллером дисплея при отправке изображения на экран.

Сравнение дисплея XO-1 (слева) с типичным жидкокристаллическим дисплеем (LCD). Изображения показывают 1 × 1 мм каждого экрана. Типичный ЖК-дисплей отображает группы из 3 мест в виде пикселей. ЖК-дисплей OLPC XO адресует каждое место в виде отдельного пикселя:

введите описание изображения здесь

Источник OLPC XO

Другие дисплеи (особенно OLED) используют разные макеты, такие как PenTile :

введите описание изображения здесь

Компоновка состоит из quincunx, содержащего два красных подпикселя, два зеленых подпикселя и один центральный синий подпиксель в каждой элементарной ячейке.

Он был вдохновлен биомимикрией сетчатки человека, которая имеет почти одинаковое количество колбочек L и M типа, но значительно меньше S колбочек. Поскольку S-конусы в первую очередь отвечают за восприятие синих цветов, которые не оказывают заметного влияния на восприятие яркости, уменьшение количества синих субпикселей по отношению к красному и зеленому субпикселям на дисплее не снижает качество изображения.

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

Источник PenTile матрица семьи


Простое определение пикселя

Любая из очень маленьких точек, которые вместе образуют картинку на экране телевизора, мониторе компьютера и т. Д.

Источник http://www.merriam-webster.com/dictionary/pixel


пиксель

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

...

Пиксель не нужно отображать как маленький квадрат . На этом изображении показаны альтернативные способы восстановления изображения из набора значений пикселей с использованием точек, линий или плавной фильтрации.

введите описание изображения здесь

Исходный пиксель


Пиксельное соотношение сторон

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

Соотношение сторон исходного пикселя


Пиксель - это не маленький квадрат!

Пиксель - это точечный образец. Это существует только в точке.

Для цветного изображения пиксель может фактически содержать три образца, по одному для каждого основного цвета, вносящего вклад в изображение в точке выборки. Мы все еще можем думать об этом как о точечном образце цвета. Но мы не можем думать о пикселе как о квадрате или о чем-то кроме точки.

Есть случаи, когда вклады в пиксель могут быть смоделированы, в порядке низкого порядка, маленьким квадратом, но не самим пикселем.

Источник Пиксель - это не маленький квадрат! (Техническое примечание Microsoft 6, Элви Рэй Смит, 17 июля 1995 г.)

ДэвидПостилл
источник
5
Цитирование необходимо на «более дорогой в вычислительном отношении» точке. В идеале ссылка на исследовательскую работу с учетом гексагональной тесселяции, например, и вычислительного анализа. Похоже, вы просто называете некоторые правдоподобные объяснения.
Джечлин
4
Кроме того, мы постоянно переписываем много программного обеспечения как часть улучшений. Я не уверен, что ваша точка зрения.
Джечлин
5
@djechlin В настоящее время все спецификации видео / изображений основаны на прямоугольном массиве пикселей. Для отображения любого видео или изображения потребуется преобразование из прямоугольной (декартовой) системы координат в шестиугольную систему координат. Расчеты для рисования линий в прямоугольной системе координат проще, чем в шестиугольной (это базовая математика). Нужно ли объяснять дальше?
DavidPostill
2
@djechlin Ответ обновлен и цитата включена
DavidPostill
4
+1 для вашего источника Microsoft Tech Memo. Обалденный ответ в общем.
shock_gone_wild
71

Я хотел бы предложить альтернативу хорошо продуманному ответу Дэвида Постилла. В своем ответе он подошел к вопросу о квадратах пикселей, как и предполагалось в названии. Тем не менее, он сделал очень проницательный комментарий в своем ответе:

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

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

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

Для начала давайте пойдем довольно далеко назад. Традиционная пленочная фотография вообще не имела «сетки», и это одна из причин, почему фотографии всегда выглядели такими четкими по сравнению с современными цифровыми. Вместо этого он имел «зерно», которое представляло собой случайное распределение кристаллов на пленке. Это было примерно равномерно, но это не было хорошим прямолинейным массивом. Организация этих зерен возникла в процессе производства пленки, используя химические свойства. В результате у фильма действительно не было «направления». Это было просто 2-е распространение информации.

Перейдем к телевизору, в частности к старым сканирующим электронно-лучевым трубкам. ЭЛТ нуждались в чем-то отличном от фотографий: они должны были иметь возможность представлять свой контент в виде данных. В частности, это должны быть данные, которые могут передаваться аналоговым образом по проводам (обычно в виде непрерывно меняющегося набора напряжений). Фотография была двухмерной, но нам нужно было превратить ее в одномерную структуру, чтобы она могла варьироваться в одном измерении (времени). Решением было нарезать изображение по линиям (а не по пикселям!). Изображение было закодировано построчно. Каждая строка представляла собой аналоговый поток данных, а не цифровую выборку, но линии были отделены друг от друга. Таким образом, данные были дискретными в вертикальном направлении, но непрерывными в горизонтальном направлении.

Телевизоры должны были визуализировать эти данные с использованием физических люминофоров, а цветному телевизору требовалась сетка для разделения их на пиксели. Каждый телевизор мог делать это по-разному в горизонтальном направлении, предлагая больше пикселей или меньше пикселей, но они должны были иметь одинаковое количество строк. Теоретически, они могли бы сместить любой второй ряд пикселей в точности так, как вы предлагаете. Однако на практике это было не нужно. На самом деле они пошли еще дальше. Было быстро понято, что человеческий глаз обрабатывал движение таким образом, что он фактически посылал только половину изображения в каждом кадре! В одном кадре они отправляли нечетные строки, а в следующем кадре отправляли четные строки и склеивали их вместе.

С тех пор оцифровка этих чересстрочных изображений стала хитростью. Если бы у меня было 480-строчное изображение, то из-за чересстрочной развертки у меня было только половина данных в каждом кадре. Результат этого является очень заметен , когда вы пытаетесь увидеть что - то двигаться быстро по экрану: каждая линия временно смещается на 1 кадр из других, создавая горизонтальные полосы в быстро двигающихся вещах. Я упоминаю об этом, потому что это довольно забавно: ваше предложение смещает каждую строку в сетке на полпикселя вправо, а чересстрочное смещение сдвигает каждую вторую строку в сетке вдвое!

Честно говоря, проще сделать эти симпатичные прямоугольные сетки для вещей. Без каких-либо технических причин, чтобы сделать что-то лучше, он застрял. Тогда мы достигли компьютерной эры. Компьютеры должны были генерировать эти видеосигналы, но у них не было аналоговых возможностей для записи аналоговой линии. Решение было естественным, данные были разбиты на пиксели. Теперь данные были дискретными как по вертикали, так и по горизонтали. Осталось только выбрать способ изготовления сетки.

Создание прямоугольной сетки было чрезвычайно естественным. Во-первых, каждый телевизор там уже делал это! Во-вторых, математика для рисования линий на прямоугольной сетке намного проще, чем на шестиугольной. Вы можете сказать: «но вы можете нарисовать плавные линии в 3 направлениях на шестиугольной сетке, но только 2 в прямоугольной». Тем не менее, прямоугольные сетки позволяют легко рисовать горизонтальные и вертикальные линии. Шестиугольные сетки могут быть сделаны только для рисования одного или другого. В ту эпоху не многие люди использовали гексагональные формы для любых своих не вычислительных усилий (прямоугольная бумага, прямоугольные двери, прямоугольные дома ...). Способность делать плавные горизонтальные ивертикальные линии намного превосходили ценность создания гладких полноцветных изображений ... особенно учитывая, что первые дисплеи были монохромными, и прошло бы много времени, прежде чем плавность изображений сыграла важную роль в мышлении.

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

Это быстро отправляет нас на сегодня. Нам все еще нужны красивые плавные горизонтальные и вертикальные линии, но с высококачественными дисплеями сетчатки это становится все проще и проще. Тем не менее, разработчики все еще обучены думать в терминах старой прямоугольной сетки. Мы видим, что некоторые новые API поддерживают «логические координаты» и делают сглаживание, чтобы создать впечатление, что есть полностью непрерывное 2-мерное пространство для игры, а не сетка из жестких 2-мерных пикселей, но она медленная. В конце концов, мы можем увидеть гексагональные сетки.

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

Корт Аммон
источник
2
Отлично подходит для объяснения того, как телевидение появилось: аналоговый поток. Этот стандарт действовал 70 лет, и добавление цвета было сделано таким образом, чтобы сохранить совместимость с ч / б, попробуйте сделать это в наши дни! Сколько видео форматов сейчас?
3
"" "Телевизоры должны были визуализировать эти данные с использованием физических люминофоров с сеткой, чтобы разделить их на пиксели." "" - это было верно для черно-белых телевизоров? Насколько я понимаю, дискретные «физические люминофоры» (которые до сих пор никогда не соответствовали ни одному пиксельно-подобному элементу в потоке данных) сопровождались цветным телевидением, а монохромные ЭЛТ просто покрыты непрерывным слоем люминофоров.
Random832
Мне нравится история, но я не согласен относительно перехода на современные устройства. Хотя наследие кажется прямолинейным, телевизор фактически является аналоговым в горизонтальном направлении, пока вы не посмотрите на цветной люминофор на телевизоре. Это на самом деле гексагональной! Я полагаю, что реальная причина, по которой мы имеем прямолинейный характер, заключается в том, что компоновка VLSI проще, поскольку она прямолинейна, а не упакована в шестиугольник.
user3533030
1
В черно-белом телевизоре, почему бы вам просто не размазать люминофоры по поверхности и не позволить электронному потоку быть сильнее / слабее и заставить их светиться более / менее полностью аналоговым способом? Короче, зачем вообще (горизонтальные) пиксели? Как только у вас есть цвет, все становится сложнее; но даже в этом случае цветовой сигнал не определен для каждого пикселя, если я правильно помню. Что касается горизонтальных отсчетов, количество отсчетов, необходимых для восстановления сигнала из отсчетов с одинаковой интенсивностью, является функцией ширины полосы частот, и смещения половинных отсчетов не улучшают это.
Якк
2
@Yakk Большинство черно-белых ЭЛТ были построены именно так - ранние ЭЛТ-телевизоры BW были получены из ЭЛТ радара / осциллографа, которые часто контролируются аналоговым X / Y или полярным способом без растра. Телевизоры все еще использовали построчное сканирование, потому что это соответствует тому, как кодируется сигнал, но нет пикселей на линиях. Некоторые специальные дисплеи (в основном для кабины самолета) даже использовали люминофоры, которые меняли цвет в зависимости от того, насколько сильно на них воздействовал электронный луч (такой вид дисплея называется пенетроном).
rackandboneman
21

Две причины:

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

  • Пиксельный дисплей общего назначения - тот, который может использоваться для отображения информации любого типа, должен иметь пиксели, которые не поддерживают определенные типы фигур. Таким образом, пиксели должны быть квадратными, а не длиннее или шире в одном направлении, и не должны быть сдвинуты или повернуты каким-либо образом.

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

    • Если пиксели повернуты, то только наклонные линии, соответствующие углу поворота, будут выглядеть гладкими, любые другие линии будут выглядеть неровными. Большинство операционных систем и производительного программного обеспечения основаны на прямых линиях, так что это будет много окаймлений или неровностей.

    • Срезанные пиксели (ромбы) будут худшим из обоих миров - ни диагонали, ни горизонтали / вертикали не будут гладкими.

Если вас не интересует дисплей общего назначения, а ориентированный на конкретную цель, то вы можете быть более гибкими. Экстремальным примером является 7-сегментный светодиод, если все, что вам нужно сделать, это отобразить число, то вам нужно 7 неквадратных пикселей, расположенных таким образом. Или 15-сегментные светодиоды, которые позволяют буквы.

LawrenceC
источник
Хм, я не уверен, что аргумент стоимости работает для шестиугольников (я могу ошибаться).
Тим
@Tim - Вы должны немного изучить предмет. Если бы у шестиугольников было техническое преимущество, их использовал бы производитель дисплеев, поскольку тот факт, что они не используются, указывает на то, что они не обладают каким-либо преимуществом по сравнению с преимуществами в отношении стоимости или производительности.
Ramhound
2
@ Да, конечно. Мне нужно больше исследовать - ну, этот вопрос - мое исследование. Я спрашиваю причины, почему не шестиугольники, а не почему квадраты (и ссылка на какое-то сравнение цен было бы неплохо - иди, если кто-нибудь когда-либо их делал)
Тим
2
«Они, вероятно, были бы более сложными в производстве, чем простые квадраты или прямоугольники», - необходимо упомянуть. «пока не вводить никаких дополнительных преимуществ» - цитирование необходимо.
Рафаэль
1
@ Рафаэль Ну, вам не нужна цитата для этого - на ЭЛТ «пиксели» не были квадратами или прямоугольниками. Они имели отличное распределение цвета и требовали меньше «трюков» для рендеринга субпикселей. Когда появились ЖК-дисплеи, они просто не могли сравнивать - технология была чрезвычайно прямоугольной, поэтому более традиционная компоновка была более или менее невозможна. Конечно, современные ЖК-дисплеи не обязательно являются ЖК-дисплеями, например, вы не найдете «жидких кристаллов» в OLED. Наконец, шестиугольники (или ЭЛТ старой школы, это похоже) будут хорошо работать для картинок и фильмов, но не для интерфейсов.
Луан
15

Пиксели не обязательно квадратные!

В прошлом пиксели имели прямоугольные формы. Вот почему в любом профессиональном редакторе изображений / видео, таких как Photoshop, Premiere, Sony Vegas ... вы видите вариант соотношения сторон в пикселях . Только современные стандарты телевизоров и мониторов имеют квадратные пиксели.

Фотошоп формат изображения

Известные примеры:

  • PAL Аналоговое ТВ / DVD: 720x576, что явно не 16: 9 или 4: 3, а 5: 4. Однако при установке правильного соотношения сторон в пикселях будет получено правильное нерастянутое выходное изображение.

  • NTSC Аналоговое ТВ / DVD: 720x480, что составляет 3: 2. После установки соотношения сторон оно станет 16: 9 или 4: 3, как PAL выше. Более низкое вертикальное разрешение также объясняет, почему диски NTSC выглядят намного менее четкими, чем PAL.

  • VCD : PAL 352x288 , NTSC 352x240 . Оба используют соотношение сторон экрана 4: 3
  • SVCD : 480x480 , и неудивительно, что он не дает квадратного вывода
  • DV : 1440x1080 16: 9 Full HD разрешение
  • CGA : 320x200 и 640x200 в формате 4: 3 (да, старые компьютерные экраны имеют прямоугольные пиксели)
  • EGA поддерживает 640x350 для экранов 4: 3 в дополнение к 320x200 и 640x200

Adobe Premiere Pro - Работа с форматами изображения

phuclv
источник
7
Этот ответ можно улучшить, объяснив немного больше о соотношении сторон (в отличие от просто ссылки). Само собой не понятно, почему конкретное разрешение экрана не может иметь квадратные пиксели.
Джон Бентли
1
Я не понимаю связь между квадратными пикселями и разрешением.
AL
@AL, как я уже говорил выше. 720: 576 - это 5: 4, а если пиксели квадратные, то получится соотношение сторон 5: 4. Однако, если для пропорции пикселей установлено значение, отличное от 1, будет получено другое соотношение сторон. Но где я сказал о разрешении здесь? Я только что сказал, что соотношение сторон
phuclv
3
@AL: Этот ответ доказывает, что не все пиксели на экранах (или в файлах) являются квадратными: некоторые являются прямоугольными.
Slebetman
1
У 8-битных компьютеров Atari было несколько графических режимов с разрешением 80x192, в результате чего получались очень неквадратные пиксельные штриховые пиксели.
DaveP
10

Ответ таков: они должны быть гексагональными, потому что гексагональная мозаика обеспечивает оптимальное оптическое качество, поэтому это будет будущее.
Но я думаю, что есть две основные причины, почему они все еще квадратные:

  • Проще представить данные растрового изображения на квадратной сетке в виде двумерного массива (как для простоты аппаратного обеспечения, так и для человека)
  • Это случилось исторически, так будет в течение некоторого времени по причине №1.

Обновить

Эта тема триллера. Почти 10 тысяч просмотров. Люди хотят освоить пиксель :) Забавно, как кто-то находит связь вопроса с разрешением экрана или «квадратичностью» квадратора.
Для меня это так: какой строительный блок, квадрат или шестиугольник дает лучшие оптические результаты ?

Во-первых, нам нужна простая мозаика, но она лучше покрывает пользовательскую область, и это действительно мозаика шестиугольника. Что легко понять из простых тестов. Сильный тест был бы так называемым «кольцевым» тестом. Для простоты здесь я делаю триединый цвет: 0 - фон, 1 - серый и 2 - черный.

Начиная с точки, мы попытаемся расширить кольцо, чтобы оно выглядело непрерывным:

введите описание изображения здесь

Конечно, я также хочу рисовать горизонтальные / вертикальные линии для многих задач, таких как пользовательский интерфейс и дизайн печати, или для игры в платформер. Давайте назовем это «Бар-тест»:

введите описание изображения здесь

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


Для цветов RGB это, вероятно, потребует более сложных структур. На самом деле, я хотел бы иметь устройство в градациях серого, как на изображениях выше. Было бы здорово иметь быстрый пиксельный отклик для создания анимации.

Просто для забавы я придумал простую шестиугольную структуру, где пиксели могут быть RGB. Конечно, я не знаю, как это могло бы выглядеть на реальном устройстве, но все равно выглядит здорово.

введите описание изображения здесь


Неформальное объяснение-иллюстрация, которая может
помочь описать ситуацию:

введите описание изображения здесь

Михаил V
источник
1
Я частично не согласен с обеими частями 1, потому что: а) 3dmdesign.com/development/hexmap-coordinates-the-easy-way (хотя, конечно, его может быть немного сложнее настроить, но при сопоставлении с ними нет никаких проблем) и б) С каких это пор были детали компьютеров, разработанных для людей?
Тим
@Tim Подробная информация о компьютере не так, но человеческая личность имеет тенденцию обрабатывать информацию «прямоугольным» образом, что, в свою очередь, приводит к странным конструкциям. Есть много примеров, таких как этот робонавт. Так зачем же робот выглядеть как человек? С эргономической точки зрения этот робот должен быть больше похож на осьминога, но люди - это люди.
Михаил V
1
@MikhailV делает робота похожим на человека, позволяет ему использовать вещи, созданные для людей. В противном случае все должно быть специально сделано для робота.
Торбьерн Равн Андерсен
@ ThorbjørnRavnAndersen Да, как футболка и солнцезащитные очки :)
Михаил V
1
Разве треугольники не превосходят шестиугольники, поскольку они могут делать все, что могут шестиугольники, и даже больше?
Райнет
9

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

Во-первых, существует проблема определения границы. Изображения обычно прямоугольные (опять же, это вопрос истории - если бы наши экраны были шестиугольными, все было бы немного проще). Таким образом, даже граница изображения не является прямой линией. Вы ставите одинаковое количество пикселей в каждой строке? Вы чередуете четные / нечетные? И ... нижний левый пиксель слева от того, что над ним, или справа? Вы сразу получаете почти 10 различных стандартов, и программисты должны каждый раз вспоминать, как это происходит (даже разница в основных строках и столбцах или в индексах сверху вниз / вверх иногда вызывает ошибки). Это влечет за собой огромную проблему преобразования ландшафта / портрета (естественное преобразование, которое тривиально на прямоугольной сетке, но требует интерполяции и почти обязательно является процедурой с потерями на гексе или другой сетке).

Тогда есть естественный инстинкт у людей с прямоугольным расположением. У вас есть матрицы по математике, которые имеют одинаковое расположение. Точно так же, декартова система координат является наиболее простой в использовании и понимании в большинстве общих случаев. Получение индекса пикселя в точке (x, y) - это просто x + width * y (а не наоборот - наследие индексации по отсканированной линии). Если ширина кратна 2, вам даже не нужно умножение. Работа с непрямыми углами создает много сложностей, связанных с векторной алгеброй, когда базисные векторы не ортогональны: вращения больше не являются простыми суперпозициями cos / sin. Перевод становится странным. Это значительно усложняет вычисления (в несколько раз дороже вычисляет) и сложность кода (я помню кодирование алгоритма Брезенхема однажды, и я действительно не хотел бы пытаться делать это в шестнадцатеричном виде).

Интерполяция и сглаживание в целом имеют множество алгоритмов, которые зависят от квадратной сетки. Билинейная интерполяция, например. Все методы обработки на основе Фурье также привязаны к прямоугольной сетке (БПФ очень полезно при обработке изображений) ... ну, если сначала вы не сделаете некоторые дорогостоящие преобразования с потерями.

Это все показывает, что данные в памяти и форматах файлов должны храниться в виде прямоугольной сетки. Способ отображения зависит от устройства отображения / принтера, но это должно быть проблемой драйвера. Предполагается, что данные не зависят от устройства и не должны предполагать, какое у вас оборудование. Как показано в постах выше, использование непрямоугольных пикселей дает много преимуществ из-за физиологии человеческого глаза и других более технологических факторов - просто сохраняйте данные в квадратной сетке, иначе у вас будет масса невротических программистов, которые ответят за: )

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

Орион
источник
«Это влечет за собой огромную проблему преобразования пейзажа / портрета» <...> «Это даже проблема для прямоугольных пикселей» - Оксиморон? Лично у меня нет привычки поворачивать монитор, так зачем поворачивать изображение на 90 *.
Михаил V
Существует множество вертикальных экранов (экраны прибытия / отправления на некоторых вокзалах, различные рекламные панели и т. Д.), Которые вы видите на самом деле просто обычные экраны, повернутые на 90 градусов. Обратите внимание: img.worsethanfailure.com/images/200710/error'd/…
orion
Это называется «неправильное использование оборудования». Кстати, алгоритм рисования линий для произвольных точек на шестигранной сетке, вероятно, может быть решен без хлопот. Я никогда не делал этого, поэтому я пытаюсь угадать, может оказаться, что это будет даже более элегантно, чем для квадратной сетки.
Михаил V
Другим примером являются телефоны-планшеты, которые все время динамически поворачивают изображение. И данные (форматы файлов), и экраны должны иметь логически квадратные пиксели для этого (независимо от того, что оборудование делает для отображения). Алгоритм рисования линий проблематичен в определении: Брезенхем гарантирует, что линия имеет толщину ровно в один пиксель по горизонтали или вертикали (в зависимости от наклона). Смещения половинной ширины каждой другой строки в шестнадцатеричной сетке делают двусмысленным, что означает «один пиксель толщиной». Конечно, это можно сделать, но сначала вам нужно заново определить и вывести алгоритм.
Орион
«Нужно иметь квадратные пиксели». Здесь кроется проблема. Устройство отображения никогда не должно создаваться с учетом того, что кто-то захочет его повернуть. Это просто неправильное представление, которое также приводит к неправильному пониманию программного обеспечения и избыточным уровням абстракции. Что касается вычислений: в частности, в компьютерном зрении многие эффективные решения по своей природе являются трехнаправленными, если вы будете делать такие вещи, полярные координаты очень помогают.
Михаил V
8

Квадратные пиксели были «логичной вещью», говорит их изобретатель Рассел Кирш:

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

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

Вирджил МакКракен
источник
7

Этот вопрос больше касается расположения, чем фактической формы пикселя.

Проблема с гексагональной компоновкой заключается в том, что перевод гексагональной точки в декартовы координаты и наоборот не является тривиальным.

Либо вы работаете с примитивным индексом решетки Браве

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

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

В первом случае используется преобразование угла, а во втором необходимо указать каждый пиксель x, yи базовый индекс j.

В конце концов, «квадратные» пиксели должны быть побочным продуктом нашей декартовой культуры.

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

Смотрите здесь http://www.kybervision.com/resources/Blog/HumanRetinaMosaic.png и вернитесь к точкам показа http://www.kybervision.com/Blog/files/AppleRetinaDisplay.html.

Я не сомневаюсь, что шестиугольная решетка больше подходит для визуализации. Но вы можете думать об этом таким образом, каждый раз, когда инженеры хотят улучшить отображение, с которым они сталкиваются, перед следующей дилеммой: 1) переключиться на шестиугольник, изменить парадигму, переписать триллионы строк кода и аппаратного обеспечения 2) сделать «квадраты» меньше, добавить память, увеличить два числа для измерения размера дисплея в пикселях. Вариант 2) всегда дешевле.

Напоследок слово от изобретателя квадратного пикселя http://www.wired.com/2010/06/smoothing-square-pixels

Рассел Кирш, изобретатель квадратного пикселя, возвращается к чертежной доске. В 1950-х годах он был частью команды, которая разработала квадратный пиксель. «Квадраты были логичной вещью, - говорит Кирш. «Конечно, логичная вещь была не единственной возможностью, но мы использовали квадраты. Это было что-то очень глупое, от чего все в мире страдали с тех пор» . Уходя на пенсию и живя в Портленде, штат Орегон, Кирш недавно намеревался возместить ущерб.Вдохновленный создателями мозаики античности, которые строили сцены с ошеломляющими деталями из кусочков плитки, Кирш написал программу, которая превращает массивные, неуклюжие квадраты цифрового изображение в более плавное изображение из пикселей различной формы. '

alfC
источник
2
Я бы сказал так: 3dmdesign.com/development/hexmap-coordinates-the-easy-way довольно тривиально?
Тим
Да, (хорошая точка), но эта система координат все еще не декартова. Например, область "hexmap" поверхности "3x3" не 9 (даже приблизительно). Это не вопрос угла, это вопрос метрики, гексагональная решетка не является вращающейся прямоугольной (или квадратной) решеткой.
alfC
Справедливая точка зрения - но декартова не требуется, не так ли?
Тим
1
Как я уже сказал, не в принципе, я думаю, что это скорее проблема парадигмы. (Культура предвзята, технологии и технологии липкие, технологии трудно изменить изолированно).
alfC
Я бы не согласился, что это большая смена парадигм. Для чисто цифрового случая это довольно простая смена адресов. Практически вам нужен один и тот же дискретный набор, чтобы функция "blit" знала, куда записывать данные. Что касается данных изображения из прямоугольных источников, да, есть проблемы. А создать шрифт для шестнадцатеричного отображения будет еще проще, чем на квадрате (меньше головной боли при уклонах).
Михаил V
7

Чтобы понять, почему прямолинейный пиксель имеет значение, вам необходимо понять процесс изготовления датчиков и дисплеев. Оба основаны на силиконовой компоновке. Оба получены из происхождения СБИС.

Чтобы реализовать пиксель с непрямолинейным датчиком , вы должны быть готовы:

  1. Размещайте светочувствительные элементы не прямолинейным способом (например, шестигранные кружки).
  2. Расположение проводов, которые собирают заряд (например, CMOS / CCD) не прямолинейным способом
  3. Масштабируйте этот макет до >> 1M x 1M, чтобы удовлетворить требования рынка
  4. Сопоставить (или интерполировать) информацию на прямолинейном дисплее

Для реализации не прямолинейного пикселя дисплея вам нужны все те же вещи.

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

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

user3533030
источник
Обычный пиксельный сенсор квадратного размера превратится в сенсор с прямоугольными пикселями, если использовать его за анаморфной линзой. Так же, как боке становится эллиптическим.
JDługosz
4

Хотя они не могут быть физически квадратными. Они абстрактно представлены в виде квадрата, а при отображении на дисплеях с пониженным разрешением они видны как квадраты. Главным образом из-за лени и меньшей обработки. Масштабирование различных форм, таких как шестиугольники, требует больше обработки, поскольку вы пересекаете долю пикселей. В то время как квадрат просто умножает каждую сторону на константу. Кроме того, пытаясь построить гексагональную сетку, вы не можете просто сделать легкую локацию X, Y.

Тодд
источник
Вы строите график + х 100%, чтобы получить полный ряд. Затем следующий ряд смещается на + 50% и перемещается вниз на 75%. Третья строка смещена от второй на -50% (или на 0% от первой строки). Хотя это более сложно, я бы сказал, что это все еще легко - и существует шестнадцатеричная система координат, в отличие от стандартной декартовой системы - наклон Y на 30 ° 3dmdesign.com/development/hexmap-coordinates-the-easy-way .
Тим
4

Есть два способа ответить на этот вопрос:

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

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

КРАТКИЙ ОТВЕТ:

По условию пиксели обрабатываются как квадратные.

Майкл Джонсон
источник
-1

От POV свидетеля, я должен был бы сказать, что это потому, что экран, на котором вы обычно смотрите это в любом случае, имеет прямоугольную форму. Общее соотношение сторон составляет 1920 на 1080. В прошлом определенная длина, такая как 720, позволяет распознавать «высокое разрешение». Этого вполне может быть труднее достичь с помощью круглых или шестиугольных пикселей.

ДР Арчила
источник
3
Ну, круговой не тесселяция, но я не понимаю, почему вы не можете просто сжать шестиугольники. Посмотрите на изображение, которое я сделал из машины - просто поместите больше?
Тим
И эти пропорции хорошо прямоугольные, потому что пиксели формы расположены в ... сетке.
Тим
1
@ Тим, тесселяция может быть не так важна с точки зрения «пользователя», как только вы откажетесь от декартовой или регулярной индексации. Сетчатка не является мозаичной (идеально), и это может быть даже оптимальным (например, чтобы избежать муара en.wikipedia.org/wiki/Moir%C3%A9_pattern или артефактов дифракции света).
alfC