Difference between revisions of "Autoexposure rus"
Line 1: | Line 1: | ||
{{ru|en=Autoexposure|cn=Autoexposure_cn}} | {{ru|en=Autoexposure|cn=Autoexposure_cn}} | ||
− | |||
− | + | Выложил в CVS в camera333mjpeg автоэкспозицию - она запускается сразу же после старта камеры, и настраивается сразу же после первого кадра, полученного через web-интерфейс - т.е. самый первый кадр будет с настройками из web-интерфейса. Теперь поподробнее: | |
− | + | '''1.''' Автоэкспозиция рассчитывается в приложении apps/autoexp (в камере /usr/local/bin/autoexp), управляется (приведу описание без html, через командную строку) с помощью приложения autoexp_ctrl с такими параметрами: | |
− | + | ''-s'' отобразить текущие настройки автоэкспозиции. | |
− | автоэкспозиции | ||
− | |||
− | + | ''-e'' включить автоэкспозицию. | |
− | |||
− | |||
− | |||
− | + | ''-d'' отключить автоэкспозицию | |
− | |||
− | |||
− | + | ''-w, -h'' - ширина и высота окна рассчета автоэкспозиции (гистограммы), в процентах от изображения, получаемого с сенсора (т.е. изображения после сжатия) | |
− | |||
− | + | ''-l, -t'' - смещение окна рассчета автоэкспозиции (гистограммы), в процентах. 0% - крайние левое и верхнее положение, 100% - крайние нижнее и правое положение, 50% - строго по центру. | |
− | + | ||
− | не | + | ''-e'' - максимальное время экспозиции сенсора, которое может установить autoexp, в 0.1ms. (необходимо, чтобы в видеопотоке не падал fps) |
− | + | ||
− | + | ''-o'' - в процентах, максимально допустимое переэкспонированное число пикселей (не от всего изображения, а только от окна гистограммы), с точностью до 0.01% | |
− | + | ||
− | + | '''1.1.''' Сразу же после запуска используются такие установки: - 100% ширина и высота окна гистограммы, максимальное значение экспозиции - 400ms, допустимое число пересвеченных пикселей - 0.5%. | |
− | + | ||
+ | '''1.2.''' autoexp после запуска не убивается. | ||
+ | |||
+ | '''2.''' Алгоритм автоэкспозиции на данный момент изменяет только время экспонирования сенсора, никак не влияя на настройки gain. При этом после первого получения изображения через web-интерфейс, работает постоянно (если включен), не зависимо от работы компрессора (сжатия FPGA). При этом все установки времени экспозиции "перетираются" временем, рассчитанным в apps/autoexp. Латентность каждого пересчета - 4 кадра (1-й - получение гистограммы и передача в autoexp, второй - изменение времени автоэкспозиции в сенсоре без его остановки, поэтому третий - пропуск кадра с искаженной гистограммой, и четвертый - вычисление корректной гистограммы после применения последнего изменения). ''В дальнейшем будет проведена оптимизация латентности.'' | ||
+ | |||
+ | '''2.1.''' Работа с gain будет добавлена в следующей итерации реализации автоэкспозиции, с сохранением баланса белого. | ||
+ | |||
+ | '''3.''' Было уменьшено время программирования регистров сенсора (практически в 10 раз - до ~80микросекунд) - стабильность программирования сенсора сохраняется при его частоте от ~15MHz - в fpcf добавлено ограничение на минимальную частоту сенсора в 20MHz. | ||
+ | |||
+ | '''4.''' Сам расчет экспозиции осуществляется в autoexp.c/hist_analyze() - в ближайшее время будет добавлена опция для autoexp_ctrl блокирования continuous режима работы автоэкспозиции. | ||
+ | |||
+ | '''4.1.''' В алгоритме была проведена оптимизация механизмов повышения и понижения экспозиции, чтобы не наблюдался резонанс, в связи с этим понижение экспозиции работает несколько медленнее, чем её повышение. | ||
+ | |||
+ | '''4.2.''' Алгоритм настроен так, что переэкспонированная сцена - при '''S > SQ''', недоэкспонированная - '''SQ < SQ/4''', и алгоритм стремится установить '''SQ >= S >= SQ/4''', - это сделано для избежания эффекта "иголки" - когда один небольшой яркий объект повергает всю сцену в мрак, где: '''SQ''' - максимально допустимое число переэкспонированных пикселей; '''S''' - число пикселей с значением 255 (сумма по всем цветам, чтобы не было искажений по балансу белого - т.е. считаем, что баланс белого выставлен корректно) | ||
+ | |||
+ | '''5.''' Из камеры доступен web-интерфейс управления автоэкспозицией (описание ожидается). | ||
+ | |||
+ | '''P.S.''' Вроде пока все. |
Revision as of 02:28, 29 November 2005
in English | autotranslate | по-русски | 中文版
Выложил в CVS в camera333mjpeg автоэкспозицию - она запускается сразу же после старта камеры, и настраивается сразу же после первого кадра, полученного через web-интерфейс - т.е. самый первый кадр будет с настройками из web-интерфейса. Теперь поподробнее:
1. Автоэкспозиция рассчитывается в приложении apps/autoexp (в камере /usr/local/bin/autoexp), управляется (приведу описание без html, через командную строку) с помощью приложения autoexp_ctrl с такими параметрами:
-s отобразить текущие настройки автоэкспозиции.
-e включить автоэкспозицию.
-d отключить автоэкспозицию
-w, -h - ширина и высота окна рассчета автоэкспозиции (гистограммы), в процентах от изображения, получаемого с сенсора (т.е. изображения после сжатия)
-l, -t - смещение окна рассчета автоэкспозиции (гистограммы), в процентах. 0% - крайние левое и верхнее положение, 100% - крайние нижнее и правое положение, 50% - строго по центру.
-e - максимальное время экспозиции сенсора, которое может установить autoexp, в 0.1ms. (необходимо, чтобы в видеопотоке не падал fps)
-o - в процентах, максимально допустимое переэкспонированное число пикселей (не от всего изображения, а только от окна гистограммы), с точностью до 0.01%
1.1. Сразу же после запуска используются такие установки: - 100% ширина и высота окна гистограммы, максимальное значение экспозиции - 400ms, допустимое число пересвеченных пикселей - 0.5%.
1.2. autoexp после запуска не убивается.
2. Алгоритм автоэкспозиции на данный момент изменяет только время экспонирования сенсора, никак не влияя на настройки gain. При этом после первого получения изображения через web-интерфейс, работает постоянно (если включен), не зависимо от работы компрессора (сжатия FPGA). При этом все установки времени экспозиции "перетираются" временем, рассчитанным в apps/autoexp. Латентность каждого пересчета - 4 кадра (1-й - получение гистограммы и передача в autoexp, второй - изменение времени автоэкспозиции в сенсоре без его остановки, поэтому третий - пропуск кадра с искаженной гистограммой, и четвертый - вычисление корректной гистограммы после применения последнего изменения). В дальнейшем будет проведена оптимизация латентности.
2.1. Работа с gain будет добавлена в следующей итерации реализации автоэкспозиции, с сохранением баланса белого.
3. Было уменьшено время программирования регистров сенсора (практически в 10 раз - до ~80микросекунд) - стабильность программирования сенсора сохраняется при его частоте от ~15MHz - в fpcf добавлено ограничение на минимальную частоту сенсора в 20MHz.
4. Сам расчет экспозиции осуществляется в autoexp.c/hist_analyze() - в ближайшее время будет добавлена опция для autoexp_ctrl блокирования continuous режима работы автоэкспозиции.
4.1. В алгоритме была проведена оптимизация механизмов повышения и понижения экспозиции, чтобы не наблюдался резонанс, в связи с этим понижение экспозиции работает несколько медленнее, чем её повышение.
4.2. Алгоритм настроен так, что переэкспонированная сцена - при S > SQ, недоэкспонированная - SQ < SQ/4, и алгоритм стремится установить SQ >= S >= SQ/4, - это сделано для избежания эффекта "иголки" - когда один небольшой яркий объект повергает всю сцену в мрак, где: SQ - максимально допустимое число переэкспонированных пикселей; S - число пикселей с значением 255 (сумма по всем цветам, чтобы не было искажений по балансу белого - т.е. считаем, что баланс белого выставлен корректно)
5. Из камеры доступен web-интерфейс управления автоэкспозицией (описание ожидается).
P.S. Вроде пока все.