Описана отработка и исследование алгоритма улучшения динамического диапазона. Выбрана структура хранения видеопотока в виде файлов формата BMP. Приведена последовательность проведения экспериментов.
Ключевые слова: динамический диапазон, видеокамера, формат BMP.
Экспериментальная отработка и исследование возможностей алгоритма проводились не в реальном времени. Это позволило на данном этапе обойтись минимальными затратами на оборудование. Для ввода видео использовалась web-камера. Обработка не в реальном времени достаточно быстро осуществлялась на обычных персональных компьютерах.
Так как исследуемый алгоритм имеет дело не с одиночным кадром, а с большой их последовательностью, было необходимо выбрать структуру хранения видеопотока в виде файлов формата BMP, хранящих отдельные кадры видеопотока (той же длительности). Ввод кадров в виде изображений BMP легко программируется. Сжатые форматы также были отвергнуты по причине неконтролируемых потерь информации, которые они добавляют.
Известно сравнительно мало свободно распространяемых приложений, способных ввести видеоинформацию с камеры в таком виде. Была применена популярная и надежная свободно распространяемая программа VirtualDub [1]. Так как и она не может непосредственно записывать видеопоток с камеры в кадры BMP, работа с этой программой проходила в 2 этапа:
— запись в AVI без дополнительного сжатия;
— экспорт из AVI в последовательность кадров BMP.
Последующие этапы обработки проводились с помощью специально разработанного приложения. Кроме того, для быстрой оценки возможных алгоритмов и тональной компрессии использовалась программа — растровый редактор Corel PhotoPaint, а для построения графиков яркости пикселей — программа DSTest, ранее разработанная на кафедре ИиЭС.
Выполнявшиеся этапы технологии проведения экспериментов:
- Камера была подключена к компьютеру с помощью интерфейса USB. Настройки камеры включали в себя выбранное разрешение 640*480 пикселей в кадре и кадровую частоту 15 Гц. При этом были приняты меры, чтобы камера не увеличивала выдержку и не вставляла из-за этого дублированных кадров, что могло бы исказить результаты опытов. В частности, была отключена авторегулировка выдержки.
- Файл в формате AVI записывался с помощью приложения VirtualDub 1.9.11.
- Также с помощью VirtualDub файл из формата AVI конвертировался в последовательность растровых изображений без сжатия в формате BMP. Для этого выбирался интересующий участок видео и применялись функции меню VirtualDub:
— начало выделения (Edit — Set selection start);
— перемотка вперед на 256 кадров;
— конец выделения (Edit — Set selection end);
— сохранение выделения в последовательность изображений (File — Export — Image sequence).
Таким способом в заданной папке формировалось по 256 отдельных растровых кадров в формате BMP.
Здесь и далее обозначим: отдельный кадр с номером z :
, ,
где x , y — координаты пикселей, соответственно, по горизонтали и по вертикали;
— цветовые каналы (красный, зеленый, синий) пикселей.
4. В разработанном приложении DDProject производилось суммирование кадров для нахождения изображения фона:
.
5. В приложении DDProject вычитался фон:
.
где — интересующий, например, текущий кадр.
Множитель 256 необходим из-за того, что после сложения кадров диапазон значений яркостей в 256 раз шире (0…255256).
Для правильного отображения на экране разностное изображение преобразовывалось из диапазона со знаком -255256…+255256 в обычный 8-битовый диапазон без знака. Для этого сначала находились значения для корректировки границ диапазона получившегося разностного изображения:
,
.
Здесь — минимальное (отрицательное) значение разностного изображения, — корректирующий коэффициент, показывающий, во сколько раз надо уменьшить диапазон значений.
Само преобразование диапазонов осуществлялось по формулам:
,
где — изображение, выводимое на обычный монитор с 8-битовыми цветовыми каналами.
6. Тональная компрессия производилась в программе Corel PhotoPaint 13.0 с помощью функции меню настройка — цветовая кривая (Adjust — Tone curve). Наиболее полезными оказались функции, похожие на S-образные функции при больших = 10 (рис. 3.18).
7. Для некоторых экспериментов перед дальнейшей обработкой в программе Corel PhotoPaint проводилось сглаживание по Гауссу с радиусом примерно 5 пикселей (рис. 3.19).
8. В некоторых экспериментах полученные после этого изображения вновь обрабатывались в приложении DDProject с целью выделения сигнала, характеризующего насыщенность цвета (отклонение от серого).
Каналом насыщенности условно считался результат вычисления по формулам
,
9. Графики зависимостей яркости от координаты пикселя вдоль строки строились с помощью приложения DSTest, разработанного на кафедре ИиЭС.
Литература:
1. Динамический диапазон и его практическое значение [Электронный ресурс]. — Режим доступа: http://www.xela.ru/dinamicheskij-diapazon-i-ego-prakticheskoe-znachenie/ (дата обращения: 06.05.2021).