Понадобилось для нескольких проектов накладывать на аналоговое видео информацию в виде текста или простой графики.
Известны проекты генерации видео основанные на Arduino или ESP32. В основном они только генерируют свое видео, а не накладывают на имеющееся. Там требуется считывание сигналов синхронизации кадровой развертки, но даже при этом невозможно по желанию отключить видеопоток и оставить только информацию на экране.
Мне же нужно именно наложить информацию на видео и иметь возможность отключить или видео или информацию.
Решение не новое, широко применяется в экранных меню старых телевизоров, аналоговых видеокамер и мониторов, но наиболее известное применение — телеметрия беспилотных летательных и «катательных» аппаратов. называется эта технология OSD.
OSD (на англ. On-Screen Display) – это экранное меню настроек устройства, показываемое поверх основного изображения, выводимого с видеокамеры на монитор.
Покопавшись в море информации Интернета, нашел несколько готовых реализаций в основном реализованных на микросхеме MAX7456 чаще в связке с Atmega328.
Основные возможности:
- вывод 256 символов, загруженных в память MAX7456;
- мигание символами;
- инверсия цвета символов;
- прозрачность части знакоместа незанятого символом;
- включение и отключение вывода информации;
- включение и выключение фонового видео;
- имеются несколько библиотек под Arduino для управления;
- имеется программа создания и загрузки символов в MAX7456.
Из недостатков:
- схема привередлива к видеосигналу. Попалась видеокамера, при работе с которой видеоизображение было хорошим, а OSD пропадало. Иногда появлялось при закрытии объектива камеры. Возможно уровень белого сбивает синхронизацию;
- три найденных мной библиотеки не умеют выводить русский шрифт, в них нет возможности выводить информацию с выравниванием по центру или по краю;
- вывод текста жрет много памяти, поэтому целесообразно вместо Mega328 применить ESP32 (например).
После реверса библиотек и примеров кода, были написаны дополнительные функции и немного изменена одна из библиотек. Ниже результат.
Общее впечатление положительное. В рамках 256 символов, которые можно запрограммировать самостоятельно и небольшом количестве знакомест вполне можно организовать интересный симбиоз аналогового видео и компьтерных технологий.