Найти в Дзене
Александр Золотов

PixiVisor: передача видео через звук

Знаете ли вы, что видеосигнал можно услышать и передать по аудио кабелю или по воздуху, принимая микрофоном? Для этого потребуется: 1) небольшое разрешение картинки (~64x64) и/или низкая частота кадров (~10 fps); 2) приемник и передатчик - например, два телефона или планшета под управлением iOS/Android с установленным приложением PixiVisor. PixiVisor - программа для Windows, macOS, Linux, iOS и Android. Состоит из двух частей: передатчик (Transmitter) и приемник (Receiver). Передатчик загружает картинку (JPG, PNG, GIF), анимацию (GIF) или видеопоток с камеры и начинает вещать, на лету конвертируя каждый кадр в звук пиксель за пикселем (построчное сканирование). Выглядит это примерно так: на экране играет анимация, а из динамиков доносится не очень приятное на слух жужжание. Приемник выполняет обратное преобразование - звук, принятый через микрофон или линейный вход, превращается в изображение, которое мы видим на экране. Изображение черно-белое, но для него можно назначить одну из

Знаете ли вы, что видеосигнал можно услышать и передать по аудио кабелю или по воздуху, принимая микрофоном?

Для этого потребуется:

1) небольшое разрешение картинки (~64x64) и/или низкая частота кадров (~10 fps);

2) приемник и передатчик - например, два телефона или планшета под управлением iOS/Android с установленным приложением PixiVisor.

PixiVisor - программа для Windows, macOS, Linux, iOS и Android. Состоит из двух частей: передатчик (Transmitter) и приемник (Receiver).

Передатчик загружает картинку (JPG, PNG, GIF), анимацию (GIF) или видеопоток с камеры и начинает вещать, на лету конвертируя каждый кадр в звук пиксель за пикселем (построчное сканирование). Выглядит это примерно так: на экране играет анимация, а из динамиков доносится не очень приятное на слух жужжание.

Приемник выполняет обратное преобразование - звук, принятый через микрофон или линейный вход, превращается в изображение, которое мы видим на экране. Изображение черно-белое, но для него можно назначить одну из 64 цветовых палитр. Принятая анимация сохраняется в GIF.

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

Что мы видим? Красивые искажения картинки, связанные в первую очередь с отражением звука в комнате и с фильтрацией на уровне железа передатчика и приемника.

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

Влияние положения руки на распространение звука особенно хорошо видно в следующем ролике:

Теперь попробуем передать видеосигнал по аудио кабелю. На мобильных устройствах отсутствует линейный аудиовход, но есть возможность подключения гарнитуры через разъем TRRS (Jack) с четырьмя контактами - один из контактов можно превратить в линейный моно вход, спаяв нехитрый переходник или взяв готовый конвертер:

По проводу качество заметно улучшилось. Осталось лишь влияние фильтров на входе и выходе подопытных устройств. iPad заметно глушит низкие частоты при получении сигнала из вне. На картинке это проявляется так: более заметными становятся контуры изображения, а равномерно закрашенные области теряются. Старенький Android-телефон наоборот глушит высокие при приеме - картинка теряет четкие контуры.

Но если теперь видео идет у нас по обычному аудио проводу, то почему бы не попробовать исказить этот сигнал при помощи звукового оборудования (процессоры эффектов, микшеры)? Для примера возьмем карманный аналоговый синтезатор Korg Monotron, который послужит нам в роли низкочастотного фильтра:

Monotron размывает картинку по горизонтали. При этом параметр Peak (Resonance) добавляет контрастные хвосты и искажает изображение до неузнаваемости.

Попробуем воспользоваться аналоговым микшером Behringer Xenyx 1202FX для микширования двух видеосигналов и наложения эффектов Reverb и Delay (микшер имеет встроенный процессор эффектов):

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

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

Я уверен, что видео-арт - не единственное достойное применение для PixiVisor. Попробуйте сами - желаю успехов в экспериментах!