Биты

В компьютерной терминологии "бит" (binary digit, т.е. цифра двоичной системы счисления) является минимальной единицей информации и может иметь одно из двух значений - "0" или "1" – который внутри компьютера определяют отсутствие или наличие электрического сигнала.

В 1-битном изображении мы можем задавать только два цвета - "0" (черный) и "1" (белый).

2-битное изображение может иметь 2^2 = 4 оттенка: 00 (черный), 01 (серый), 10 (серый) и 11 (белый).

8-битное изображение может иметь 2^8 = 256 оттенков в диапазоне от 00000000 (0) to 11111111 (255).

JPEG-картинки часто называют 24-битными изображениями, поскольку они могут хранить по 8 бит для каждого из трех каналов цвета, давая в результате 256 x 256 x 256 = 16.7 миллионов цветов.

32-битный формат с плавающей точкой (для продвинутых пользователей)

В статье о линейности сенсоров мы увидели, что верхняя половина оттенков используется для описания самого яркого значения экспозиции. Поэтому даже 16-битное изображение в целых числах имеет только 16 оттенков для описания самого темного значения экспозиции в изображении с динамическим диапазоном в 12 ступеней, тогда как для самой яркой ступени будет доступно 32,768 оттенков. Это противоречит человеческому зрению, для которого свойственно отмечать больше деталей в тенях, чем на ярком свету. 32-битное изображение в целых числах передает больше оттенков, но имеет то же ограничение и диспропорции между передачей деталей в тенях и на свету. 32-битный формат с плавающей точкой помогает справиться с этой проблемой, используя предоставленные 32 бита более эффективно. Вместо того, чтобы использовать 32 бита для описания 4,294,967,296 целых чисел, 23 бита используются для описания дроби, 8 бит для экспоненты, 1 бит для знака:

V = (-1)^S * 1.F* 2 ^ (E-127), где:
S = Sign (знак), использует 1 бит и может принимать одно из двух значений 
F = Fraction (дробь), использует 23 бита и может принимать 8,388,608 возможных значений
E = Exponent (экспонента), использует 8 бит и может принимать 256 возможных значений

С практической точки зрения это означает почти бесконечное количество оттенков между уровнями "0" и "1", больше 8 миллионов оттенков между уровнями "1" и "2" и 128 оттенков между уровнями "65,534" и "65,535", что гораздо больше соответствуем модели восприятия человеческого глаза, чем 32-битное изображение в целых числах (*). Из-за бесконечной малости хранимых чисел 32-битный формат с плавающей точкой позволяет хранить практически бесконечный динамический диапазон. Другими словами, 32-битное изображение в числах с плавающей точкой может содержать практически бесконечный динамический диапазон в сравнительно компактном объеме, передавая больше деталей в тенях, чем на ярких участках, занимая при этом лишь в два раза больше места, чем изображение с 16 битами на канал, и экономя память и вычислительные мощности компьютера. Формат большей точности позволяет получить более гладкую компрессию тонального и динамического диапазона . Этот формат важен для индустрии компьютерной графики (игровой и анимационной) и поддерживается в Adobe Photoshop CS2.

(*) Которое будет иметь одинаковое число оттенков (65,536) между уровнями "0" и "1", уровнями "1" и "2" и уровнями "65,534" и "65,535".

Back to top