Как видео превращается в пиксели
Общая схема пиксель-мэппинга: от картинки до байтов на ленте, и где в ней принимаются решения.
Пиксель-мэппинг — это сопоставление светодиода точке на картинке. Всё остальное — детали реализации.
Схема целиком
источник картинки (TOP)
│
сэмплирование по координатам пикселей
│
TOP → CHOP (или POP)
│
порядок каналов: R G B (W), змейка, направление
│
разбивка по юниверсам
│
DMX Out → Art-Net / sACN
│
пиксель-контроллер → лента
Три места, где принимаются решения: где на картинке находится каждый светодиод, в каком порядке идут данные и как они ложатся по юниверсам.
Где находится светодиод
Два подхода:
Сетка. Лента или панель раскладывается как прямоугольная матрица: 64 × 32 пикселя. Картинка просто масштабируется под этот размер. Просто и работает для панелей и ровных полос.
Произвольные координаты. У каждого светодиода есть позиция в пространстве, и цвет берётся из картинки в этой точке. Это то, ради чего берут TouchDesigner: лента, намотанная по спирали, точки по фасаду, светильники в произвольном порядке — Раскладка.
Порядок данных
Контроллер ждёт байты в определённом порядке:
пиксель 1: R G B
пиксель 2: R G B
...
Порядок цветовых компонент бывает разным (RGB, GRB, BGR), количество компонент тоже (RGB, RGBW). Это настраивается на контроллере, но знать надо: перепутанные красный и зелёный обычно чинятся там, а не в патче — Контроллеры.
Сколько влезает в юниверс
512 каналов на юниверс:
| Тип пикселя | Каналов | Пикселей в юниверсе |
|---|---|---|
| RGB | 3 | 170 (остаётся 2 канала) |
| RGBW | 4 | 128 |
| RGB 16 бит | 6 | 85 |
Отсюда считается количество юниверсов — Юниверсы и контроллеры.
Что решает качество картинки
- Разрешение источника должно соответствовать плотности пикселей. Картинка 1920 × 1080 для ленты из 60 диодов — лишняя работа.
- Сглаживание при выборке: брать один пиксель или усреднять область. Второе даёт более плавное движение на редкой ленте.
- Гамма и цвет — на светодиодах картинка выглядит иначе, чем на мониторе.
- Частота обновления: не выше того, что переваривает контроллер.
Одна лента, один юниверс, простая бегущая волна — Первая лента. Большая поверхность — Пиксельная стена. Отладить схему на десяти пикселях в сто раз проще, чем на пяти тысячах.
Пять тысяч пикселей RGB — это тридцать юниверсов, отправляемых сорок раз в секунду. Сеть должна быть к этому готова — Настройка сети.