почему в большинстве приложений камеры используется ограниченный набор значений выдержки вместо непрерывного значения?

Многие сторонние приложения для iOS (или Android) позволяют вручную устанавливать выдержку затвора, но часто предоставляют лишь ограниченный набор выдержек. Например, часто используемый список предопределенных значений скорости затвора: [1/2, 1/4, 1/8, 1/12, 1/16, ...].

Однако я заметил, что API iOS на самом деле предоставляет функцию, которая принимает в качестве входных данных продолжительность непрерывного воздействия. (ссылка iOS AVCaptureDevice )

setExposureModeCustomWithDuration(_ продолжительность: CMTime, iso ISO: Float, обработчик завершения: ((CMTime) -> Void)!)

Параметры

продолжительность: продолжительность воздействия.

Значение AVCaptureExposureDurationCurrent может использоваться для указания того, что вызывающая сторона не хочет задавать значение для ExposureDuration. Обратите внимание, что изменения этого свойства могут привести к изменениям в параметрах activeVideoMinFrameDuration и/или activeVideoMaxFrameDuration.

Аналогичную функцию можно найти и на Android. (ссылка SENSOR_EXPOSURE_TIME )

Ключ < длинный > SENSOR_EXPOSURE_TIME

Время, в течение которого каждый пиксель подвергается воздействию света.

Если датчик не может выставить эту точную продолжительность, он сократит выставленную продолжительность до ближайшего возможного значения (вместо того, чтобы увеличить выдержку). Окончательное использованное время экспозиции будет доступно в выходном результате захвата.

Этот элемент управления действует только в том случае, если для android.control.aeMode или android.control.mode установлено значение OFF; в противном случае алгоритм автоэкспозиции переопределит это значение.

Единицы: наносекунды

Диапазон допустимых значений: android.sensor.info.exposureTimeRange.

Теперь мой вопрос: почему большинство приложений для камер используют ограниченный набор значений выдержки вместо непрерывного значения?

Это преобразование фотографии? или из-за каких-то других факторов, напр ., поддержки лежащего в основе CMOS сенсора?

Голосование закрывается, потому что этот вопрос не о фото.
@ Alex.S Речь идет о фотографии. Он также может подойти для ux SE, но я думаю, что он подходит для фотографии гораздо лучше.
Какой вопрос вы задаете здесь? Заголовок — «Какова степень детализации скорости затвора на iPhone (или другом мобильном телефоне)?» или вопрос, выделенный жирным шрифтом: «Почему большинство приложений для камер используют ограниченный набор значений выдержки вместо непрерывного значения?»?

Ответы (2)

Теперь мой вопрос: почему большинство приложений для камер используют ограниченный набор значений выдержки вместо непрерывного значения?

Использование дискретных значений, а не непрерывного диапазона, облегчает фотографам выбор правильного значения, прогнозирование результата и воспроизведение любой заданной настройки. Обычный диапазон скоростей обеспечивает достаточную степень детализации для достижения любого уровня экспозиции, который, вероятно, захочет фотограф, поэтому мало пользы от возможности выбирать произвольное значение по непрерывной шкале. Шкала (приблизительно) экспоненциальная, с разницей между любыми двумя полными стопами в 2 раза, и это соответствует шкалам диафрагмы, чувствительности (ISO) и мощности вспышки, поэтому легко понять, как компенсировать изменение одного из параметров. Почитайте о треугольнике воздействия, если вы не знакомы с этой концепцией.

или из-за каких-то других факторов, например, поддержки базового CMOS-сенсора?

Диапазон используемых сегодня выдержек примерно такой же, как у фотоаппаратов, которым 75 и более лет.

Я заметил, что iOS API предоставляет функцию, которая принимает в качестве входных данных продолжительность непрерывного воздействия.

Крошечные камеры, такие как камеры iPhone, имеют фиксированную апертуру, поэтому единственными параметрами, доступными для управления экспозицией, являются выдержка, ISO и светодиодная «вспышка». Кроме того, параметры экспозиции в основном контролируются компьютером, а не фотографом, поэтому нет смысла использовать набор дискретных значений. Это сильно отличается от того, что происходит со специальной камерой, которой должен управлять фотограф.

AVCaptureExposureDurationCurrent

Это значение указывает, что вызывающий объект не хочет указывать значение для свойства ExposureDuration, и вместо этого ему следует установить его текущее значение.

Нигде не сказано "непрерывно". Это значение просто означает, что вам не нужна установленная продолжительность.

Любая камера должна выставлять какое -то значение длительности выдержки, вопрос только в том, выставите ли вы его, или пусть решит автомат камеры.

С точки зрения детализации продолжительность — это CMTime, int64/int32, так что вполне нормально .
Я не знаю фактических аппаратных ограничений и подозреваю, что Apple ничего не скажет. (наверное все же зависит от модели)

Изменить для измененного вопроса:

Камеры выставляют ограниченный набор скоростей экспозиции через свои интерфейсы использования, потому что все остальное было бы громоздким для пользователя. Обычно вы можете изменить экспозицию и диафрагму (и ISO) на половину или треть ступени, часто с помощью колеса прокрутки. Один щелчок по одному параметру соответствует одному щелчку в другом направлении для другого.

Кроме того, аппаратное обеспечение в любом случае имеет ограниченную точность, и треть стопа едва заметна, поэтому более точный вариант бесполезен.

Но если вы позволите камере автоматически устанавливать экспозицию, она на самом деле может выбрать значения, которые вы не можете установить вручную.

В API указано, что если мы не хотим устанавливать значение ExposureDuration, то можем просто использовать AVCaptureExposureDurationCurrent в качестве входных данных. Но если мы хотим изменить это значение, можно установить непрерывное значение CMTime.
Почему непрерывный набор скорости затвора может быть неудобным? Я видел кучу обзоров новых мануальных объективов, у которых кольца разъединения без щелчка, не будет ли ситуация с выдержкой аналогичной?