Почему и зачем выбирать 8, 16 или 32 бита при обработке изображений? Как убрать странные полосы на фотографии?
Битность изображения. Глубина цвета
Обработка снимков
Встречали вот такие дурацкие полосы на снимках? В этой статье разбираемся с тем, как их избежать и откуда они берутся.
Полосы появляются от того, что промежуточные оттенки не отобразились. Между чуть более темной и чуть более светлой полоской должно было быть еще некоторое количестов пикселей смежных оттенков, но их нет.
Такая ситуация означает, что изображение обладает недостаточной глубиной цвета. В его характеристиках заложено использование малого числа оттенков. В настройках это 8 бит. А чтобы глубина была больше, нужно 16 бит.
Причем вылазит она только при попытке обработать такой кадр. То есть если просто перевести из 16 в 8, то разницы мы не увидим. У нас и монитор-то больше 8 бит отображать не умеет (обычно).
А вот если начать контраста добавлять или с цветом работать при 8 битах - тут-то оно и проявит себя.
Что с этим делать?
Как открыли кадр в ФШ, идем там в "Изображение - Режим". И выбираем там 16 бит.
Далее проводим свою обработку как обычно. Полос не будет.
А когда кадр готов, сохраняем его через "Сохранить как..." в формате JPEG с цветовым пространством строго sRGB. Картинка автоматически сохранится в 8 бит, но никаких проблем на ней не будет.
Если боитесь выбрать не то - выгружайте через "Сохранить для Web"
Теперь о том, как это работает.
Глубина цвета - параметр, отвечающий за то, насколько детально будет прописан оттенок конкретного пикселя.
Например, у нас черно-белое изображение без серых вариантов, только черное и белое.
Тут у нас для каждого пикселя выбор простой - он должен быть либо черным, либо белым.
Такое изображение мы назовем однобитным.
Если нам нужен будет не черный, а серый, то понадобится палитра с большим числом оттенков, чем черный и белый. И это, конечно, уже потребует большего объема информации. "Вес" одного пикселя увеличится.
4-ех битное изображение может содержать еще больше оттенков соответственно:
Соответственно, 8 бит - это еще больше оттенков! Существенно больше!
А если пиксель цветной? Тогда он будет формироваться из трех каналов - красного, синего и зеленого. Они будут смешиваться в разных пропорциях и выдавать нужный оттенок.
То есть каждый из трех цветов может давать на выбор один из 256 оттенков (два в восьмой степени). Сколько это будет вариантов? 256х256х256 = 16 777 216!
Такого бешеного разнообразия оттенков вполне хватает для нужд фотографии. При этом файлы получаются не очень тяжелыми, поэтому именно 8 бит используется повсеместно в интернете - в соцсетях и на разных сайтах.
Но, как мы теперь знаем, этого недостаточно для сложных процессов, которые налагает обработка. Потому что в работе с контрастом мы меняем яркость разных участков. И когда рядом стоял светлый и темный пиксель, разница между ними еще больше усиливается, а промежуточных вариантов недостаточно, чтобы это сгладить.
В 16 битах на один канал можно закодировать 2в16 степени =65 536 оттенков.
А каналов-то у нас в RGB три, так что общее количество цветов составит 65 536×65 536×65 536=281 474 976 710 656 (более 281 триллиона) оттенков. Конечно, с такой невероятной палитрой мы проблем уже не наблюдаем.
Там между двумя зонами разной яркости всегда есть еще куча промежуточных оттенков, так что при выкручивании контраста переход остается плавным.
Итог: для более качественной работы с градиентами используем 16 бит. Для финальной выгрузки - 8бит.