PDA

Просмотр полной версии : Зачем нужна "железная" переделка вебкамеры?


Unforgiven
11.06.2003, 14:51
Если можно управлять частотой кадров из драйверов, то почему нельзя поставить частоту 0.1к/сек, изменив пару байт в драйверах к веб-камере.

Jawad
11.06.2003, 15:22
Потому, как выше головы не прыгнешь, т.е. больше, чем заложено в камеру на аппаратном уровне, получить никакими дровами не получится. Поэтому-то и приходится заниматься не хирургией дров, а хирургией камеры... images/smiles/icon_wink.gif

Alexander L
11.06.2003, 15:32
Выдержку определяет не частота кадров, а скорость работы затвора. Так, например можно установить частоту 5 кадров в сек. и выдержку 1/500 сек. WEB камера – устройство, содержащее свой микропроцессор, микропрограммой которого и определяется диапазон выдержек, при которых WEB камера работает. Времена WEB камер с открытым интерфейсом, т.е. таких WEB камер в которых этого микропроцессора нет, и синхронизатор которых доступен программисту, прошли. Примером такой WEB камеры является Logitech Black and White QuickCam. Подключалась эта камера к LPT порту и была сделана на ч/б ПЗС матрице с пикселем в 10 мкм. Именно эта WEB камера стала первой использоваться для астрофотографии. Вопрос увеличения выдержки был решен программным путем. Точно не уверен, но таким же свойством обладала камера Logitech Color QuickCam. Все последующие модели камер закрыли свой синхронизатор микропроцессором.
Для существующих в настоящее время WEB камер численное значение выдержки передается компьютером в WEB камеру в качестве параметра командного пакета. Набор команд WEB камеры тайна фирмы, возможно и не тайна, но не публикуют. Исключение фирма Logitech. На ее сайте есть документ с набором команд WEB камер. Максимальное заявленное значение выдержки 2.7 сек. Ссылку на документ можно найти в теме “ПЗС для бедных” здесь же в Астрофотографии где-то ниже. Раньше на сайте QCUIAG была соответствующая программа для камер Logitech.

Unforgiven
13.06.2003, 15:03
Я несколько раз прочитал, но все равно не совсем понял. Опыта работы с камерами Philips и Logitech у меня нет, но меня программно меняя выдержку на веб-камере креатив 750 у меня менялась яркость картинки и частота кадров. Т.е. все-таки возможно определенное влияние на выдержку. Обычно "интерфейс" драйвера с человеком содержит бегунок "выдержка", так вот если найти где он прописан в драйвере и с помощью HEX редактора изменить нижнюю границу на что-то еще меньшее. Или там все забито железно:
0- 1/5 сек
1 - 1/10 сек
и т.д.?

Jawad
13.06.2003, 15:36
Может быть в программе что-то поправить и удастся, но если сама электроника камеры не способна отрабатывать выдержки большие, чем, скажем, 1/5 секунды, то это не поможет: даже если в драйвере задать 1 секунду и он "проглотит" такую подмену, "железо" все равно честно будет отрабатывать максимальную доступную выдержку - 1/5 секунды. Поэтому править надо, повторяюсь, не на программном, а на аппаратном уровне.
Хороший пример (картинку выложу чуть позже): попробовал поймать МКС при съемке с объективом "Юпитер-9". Не смотря на то, что софт показывает длительность выдержки 1 сек, на кадре видно, что трек МКС состоит из отдельных почти "точечных" изображений, разделенных значительным промежутком, т.е. камера работала в штатном для себя режиме, отрабатывая выдержку в 1/50 секунды.

Alexander L
17.06.2003, 00:17
<blockquote>Цитата:<hr />Автор - Dennis Sakva:
Я несколько раз прочитал, но все равно не совсем понял. Опыта работы с камерами Philips и Logitech у меня нет, но меня программно меняя выдержку на веб-камере креатив 750 у меня менялась яркость картинки и частота кадров. Т.е. все-таки возможно определенное влияние на выдержку?<hr /></blockquote>Все таки выдержка и частота кадров независимы. Выдержкой называется время, в течение которого происходит накопления заряда в ячейках ПЗС. Частота кадров – это кол-во кадров, которое выводит камера в единицу времени (в секунду). В тех WEB камерах, с которыми я имел дело, частота кадров и выдержка устанавливаются независимо. Тоже самое могу сказать и о видеокамерах, которые имеют возможность ручной установки выдержки при помощи ручных переключателей. Отдельный вопрос ситуация, когда выдержка превышает время вывода одного кадра. Например, 5 кадров в секунду частота и 1 сек выдержка. В принципе такая ситуация тоже возможна, но камера в этом случае во первых должна иметь внутреннюю память на один кадр, а во вторых будет выводит пять одинаковых кадров подряд из этой самой памяти. В случае отсутствия памяти по мере увеличения времени выдержки и достижении ею величины времени вывода кадра кадровая частота должна уменьшиться. Например, при выдержке 0.2 сек нельзя установить кадровую частоту 10 кад/сек, а только 5 кад/сек. Может быть это ваш вариант ? Абсолютно не исключен вариант когда выдержка и частота кадров как-то завязаны, не знаю правда зачем это надо, но может быть разработчикам как-то удалось таким образом упростить цифровой автомат управляющий ПЗС матрицей.

<blockquote>Цитата:<hr />Автор - Dennis Sakva:
Обычно "интерфейс" драйвера с человеком содержит бегунок "выдержка", так вот если найти где он прописан в драйвере и с помощью HEX редактора изменить нижнюю границу на что-то еще меньшее. Или там все забито железно:
0- 1/5 сек
1 - 1/10 сек
и т.д.?<hr /></blockquote>Любое внешнее устройство компьютера имеет некий набор команд. Команда это некая последовательность байтов, которую внешнее устройство поймет. Как правило, командная последовательность состоит из трех частей - код операции, поле данных, контрольная сумма или корректирующий код. Бывают и более сложные командные последовательности. Давайте сочиним команду для установки выдержки. Пусть она состоит из трех байт 1-ый байт код команды – 1, второй байт код выдержки некая переменная величина, и контрольная сумма , т.е. например сумма первых двух байт.
Например, компьютер пересылает следующую последовательность байт 1,2,3 а WEB камера устанавливает выдержку 1/25 сек, а при пересылке последовательности 1,3,4 1/50 сек. Может ли поле выдержки в системе команд иметь более широкий диапазон, чем представленный в драйвере ? В принципе да, но ответить на этот вопрос очень сложно. Поскольку система команд неизвестна, то существуют два способа ответить на этот вопрос. Первый вскрыть микропрограммы процессора WEB камеры, если они не защищены, второй расколоть протокол обмена и попробовать поменять поле данных команды. У людей, которые специально занимаются подобной работой на вскрытие протоколов или получения текста микропрограммы уходят месяцы рабочего времени. А результат может быть нулевым. Переделать проще.

[ 16-06-2003, 12:19: Сообщение отредактировано: Alexander L ]