4.6. Скользящий и глобальный затвор¶
Датчик считывает свою двумерную сетку пикселей по одной ячейке за раз. На записываемое изображение влияют два аспекта этого считывания: порядок, в котором сканируются пиксели, и то, как окно экспозиции каждой строки совмещается с этим сканированием во времени. Первый аспект задан кремнием; второй существует в двух устоявшихся вариантах, которые сильно важны для движущихся сцен.
4.6.1. Порядок считывания¶
Типичные датчики начинают с нижнего левого пикселя и сканируют вправо вдоль этой строки, затем переходят вверх к следующей строке и снова сканируют вправо, и так далее, пока не завершат в верхнем правом углу.
Массив пикселей считывается начиная с нижнего левого пикселя, сканируя вправо вдоль каждой строки и продвигаясь вверх к следующей строке между строками.¶
Этот порядок не случаен. Линза горизонтально зеркалит и вертикально переворачивает сцену, проецируя её на датчик: верх сцены попадает на низ датчика, а левая сторона сцены — на правую сторону датчика, и считывание «снизу слева, затем вверх» проходит по датчику в порядке, который отменяет оба переворота, помещая пиксели в память в правильной ориентации.
4.6.2. Скользящий затвор¶
В датчике со скользящим затвором каждая строка экспонируется и считывается по очереди. Пока одна строка считывается, следующая всё ещё завершает свою экспозицию, строка после неё только что начала, и так далее — окно экспозиции каждой строки слегка смещено во времени относительно следующей. Окно интегрирования датчика прокатывается по кадру в порядке сканирования, и полное сканирование занимает целый период кадра.
Для неподвижных сцен это незаметно. Для сцен с быстрым движением смещение проявляется как перекос: объект, движущийся за время между захватом первой строки и захватом последней строки, оказывается в разных положениях в разных строках одного и того же кадра.
Вертикальная полоса, движущаяся вправо, захваченная каждым типом затвора. Скользящий затвор наклоняет полосу, потому что верх кадра считывается в иное время, чем низ; глобальный затвор фиксирует полосу в один момент.¶
Скользящий затвор — это более дешёвая конструкция. Поскольку каждая строка считывается сразу после завершения экспозиции, пиксельной схеме не нужно экранированное хранилище на каждый пиксель, чтобы удерживать значение в течение считывания всего датчика. Сэкономленные транзисторы оставляют фотодиоду большую долю площади пикселя, что напрямую означает более высокую чувствительность и меньший шум при том же физическом размере пикселя. По этой причине большинство потребительских датчиков изображения используют скользящий затвор.
4.6.3. Глобальный затвор¶
В датчике с глобальным затвором каждый пиксель начинает свою экспозицию в один и тот же момент и заканчивает её в один и тот же момент. Захваченный заряд затем переносится в экранированную область хранения на пикселе, и построчное считывание происходит уже оттуда. Захваченный кадр представляет один момент времени, как бы быстро ни двигалась сцена.
Глобальный затвор обходится дороже по кремнию, и эта цена ложится на фотодиод. Удержание значения каждой строки в течение считывания всего датчика требует дополнительной экранированной ячейки хранения на каждом пикселе плюс транзисторов, которые отгораживают её от фотодиода — площади, которая иначе принадлежала бы самому фотодиоду. Меньший фотодиод улавливает меньше фотонов за единицу времени, поэтому пиксель с глобальным затвором менее чувствителен, чем равный по размеру пиксель со скользящим затвором. Той же сцене требуется более длительная экспозиция или более высокое усиление, чтобы записаться с той же яркостью, и дополнительная схема вдобавок к этому слегка повышает шум считывания.
Другой налог — на бюджет экспозиции. В датчике со скользящим затвором экспозиция каждой строки перекрывается со считыванием соседних строк, поэтому каждая строка может интегрировать свет почти весь период кадра. В глобальном затворе считывание не может начаться, пока каждая строка не завершит экспозицию, поэтому при заданной частоте кадров максимальное время экспозиции равно периоду кадра минус полное время считывания. При одинаковой частоте кадров пиксель со скользящим затвором в итоге получает больше света на кадр.
Эти издержки накапливаются: датчики с глобальным затвором меньше по числу пикселей, шумнее, менее чувствительны и дороже в расчёте на пиксель, чем их аналоги со скользящим затвором. Этот компромисс оправдан только тогда, когда быстрое движение нужно захватывать чисто.
4.6.4. Когда какой использовать¶
Тип затвора — это аппаратное свойство датчика, а не программная настройка. Выбор делается при проектировании камеры.
Скользящий затвор подходит, когда:
сцена неподвижна или движется медленно;
приложение может терпеть некоторый перекос (большинство фотографических задач и большинство работ с пользовательским интерфейсом);
приоритетами являются стоимость и разрешение на единицу цены.
Глобальный затвор — правильный выбор, когда:
сцена содержит быстрое движение, которое нужно захватывать чисто (робототехника, дроны, инспекция конвейерной ленты);
сама камера вибрирует или движется относительно статичной сцены;
изображение подаётся в алгоритм машинного зрения, который предполагает, что каждый кадр — это единый момент времени (большинство конвейеров оценки позы и восстановления структуры по движению).
Примечание
Линейка OpenMV Cam по умолчанию использует датчики с глобальным затвором для задач машинного зрения, где смазывание движущегося объекта (или движущейся камеры) нарушает последующее обнаружение и отслеживание. Также предлагаются модули датчиков со скользящим затвором для применений, где качество изображения медленной или статичной сцены важнее, чем фиксация быстрого движения, — классический фотографический стиль съёмки.