Глубина цвета. 8, 12, 14 или 16-бит: что вам действительно нужно?
«Разрядность» является одним из параметров, за которым все гонятся, но немногие фотографы действительно его понимают. Photoshop предлагает 8, 16 и 32-битные форматы файлов. Иногда мы видим файлы, отмеченные как 24 и 48-бит. И наши камеры часто предлагают 12 и 14-битные файлы, хотя вы можете получить 16 бит с камерой среднего формата. Что всё это значит, и что действительно имеет значение?
Что такое битовая глубина?
Перед тем, как сравнивать различные варианты, давайте сначала обсудим, что означает название. Бит является компьютерной единицей измерения, относящейся к хранению информации в виде 1 или 0. Один бит может иметь только одно из двух значений: 1 или 0, да или нет. Если бы это был пиксель, он был бы абсолютно черного или абсолютно белого цвета. Не очень полезно.
Для того, чтобы описать более сложный цвет, мы можем объединить несколько бит. Каждый раз, когда мы добавляем биты, количество потенциальных комбинаций удваивается. Один бит имеет 2 возможных значения 0 или 1. При объединении 2 бит вы можете иметь четыре возможных значения (00, 01, 10 и 11). Когда вы объединяете 3 бита, вы можете иметь восемь возможных значений (000, 001, 010, 011, 100, 101, 110 и 111). И так далее. В общем, число возможных вариантов будет являться числу два, возведённому в степени количества бит. Таким образом , «8-бит» = 28 = 256 возможных целочисленных значений. В Photoshop это представлено в виде целых чисел 0-255 (внутренне, это двоичный код 00000000-11111111 для компьютера).
Так «битовая глубина» определяет малейшие изменения, которые вы можете сделать, относительно некоторого диапазона значений. Если наша шкала яркости от чистого черного до чистого белого имеет 4 значения, которые мы получаем от 2-битного цвета, то мы получим возможность использовать черный, темно-серый, светло серый и белый. Это довольно мало для фотографии. Но если у нас есть достаточное количество бит, мы имеем достаточно шагов с широким диапазоном серого, чтобы создать то, что мы будем видеть как совершенно гладкий градиент от черного к белому.
Ниже приведен пример сравнения черно-белого градиента на разной битовой глубине. Данное изображение – это просто пример. Нажмите на него, чтобы увидеть изображение в полном разрешении в формате JPEG2000 с разрядностью до 14 бит. В зависимости от качества вашего монитора, вы, вероятно, сможете увидеть только разницу до 8 или 10 бит.
Как понимать битовую глубину?
Было бы удобно, если бы все «битовые глубины» можно было сравнить непосредственно, но есть некоторые различия в терминологии, которые нужно понимать.
Обратите внимание, что изображение выше черно-белое. Цветное изображение, как правило, состоит из красных, зеленых и синих пикселей для создания цвета. Каждый из этих цветов обрабатывается компьютером и монитором как «канал». Программное обеспечение, например, Photoshop и Lightroom, считают количество бит на канал. Таким образом, 8 бит означает 8 бит на канал. Это означает, что 8-битный RGB-снимок в Photoshop будет иметь в общей сложности 24 бита на пиксель (8 для красного, 8 для зеленого и 8 для синего). 16-битное RGB-изображение или LAB в Photoshop будет иметь 48 бит на пиксель и т.д.
Вы бы могли предположить, что 16-бит означает 16-бит на канал в Photoshop, но в данном случае это работает иначе. Photoshop реально используется 16 бит на канал. Тем не менее, он относится к 16-разрядным снимкам по-другому. Он просто добавляет один бит к 15-битам. Это иногда называют 15+1 бит. Это означает, что вместо 216 возможных значений (что равнялось бы 65536 возможным значениям) существует только 215+1 возможных значений, что составляет 32768+1=32769.
Таким образом, с точки зрения качества, было бы справедливо сказать, что 16-битный режим Adobe, на самом деле содержит только 15-бит. Вы не верите? Посмотрите на 16-разрядную шкалу для панели Info в Photoshop, которая показывает масштаб 0-32768 (что означает 32769 значения учитывая ноль. Почему Adobe так делает? Согласно заявлению разработчика Adobe Криса Кокса, это позволяет Photoshop работать гораздо быстрее и обеспечивает точную среднюю точку для диапазона, который является полезным для режимов смешивания.
Большинство камер позволит вам сохранять файлы в 8-бит (JPG) или от 12 до 16 бит (RAW). Так почему же Photoshop не открывает 12 или 14-битный RAW файл, как 12 или 14 бит? С одной стороны, это потребовало бы очень много ресурсов для работы Photoshop и изменение форматов файлов для поддержки других битовых глубин. И открытие 12-битных файлов в качестве 16-бит на самом деле не отличается от открытия 8-битного JPG, а затем преобразования в 16 бит. Там нет непосредственной визуальной разницы. Но самое главное, есть огромные преимущества использования формата файлов с несколькими дополнительными битами (как мы обсудим позже).
Для дисплеев, терминология меняется. Производители хотят, чтобы характеристики их оборудования звучали соблазнительно. Поэтому режимы отображения 8-бит обычно подписывают как «24-бит» (потому что у вас есть 3 канала с 8-бит каждый). Другими словами, «24-бит» («True Color») для монитора не очень впечатляет, это на самом деле означает то же самое, что 8 бит для Photoshop. Лучшим вариантом было бы «30-48 бит» (так называемый «Deep Color»), что составляет 10-16 бит на канал, хотя для многих более 10 бит на канал является излишеством.
Далее мы будем говорить о битовой глубине в терминологии Photoshop.
Сколько бит вы можете увидеть?
С чистым градиентом (т.е. наихудшими условиями), многие могут обнаружить полосатость в 9-битном градиенте, который содержит 2048 оттенков серого на хорошем дисплее с поддержкой более глубокого отображения цвета. 9-битный градиент является чрезвычайно слабым, едва уловимым. Если бы вы не знали о его существовании, вы бы его не увидели. И даже когда вы будете на него смотреть, будет не просто сказать где границы каждого цвета. 8-битный градиент относительно легко увидеть, если смотреть на него пристально, хотя вы всё ещё сможете его не замечать, если не присматриваться. Таким образом, можно сказать, что 10-битный градиент визуально идентичен 14-битному или более глубокому.
Как всё это проверить? Для наглядности создадим документ шириной 16384 пикселей, что позволяет использовать ровно 1 пиксель для каждого значения в 14-битном градиенте. Специальный алгоритм создаёт градиенты с каждой битовой глубиной от 1 до 14 на изображении. Файл PSB весит более 20GB, поэтому поделиться им нет возможности. Но можно создать изображение в формате JPEG2000 с полным разрешением. При глубине цвета 16-бит вы не увидите разницы даже при экстремальном редактировании кривых. Удивительно, как этот файл JPEG2000 сжимает оригинальное изображение с 20Gb до 2Mb.
Обратите внимание, что если вы хотите создать свой собственный файл в Photoshop, инструмент градиента будет создавать 8-битные градиенты в 8-битном режиме документа, но даже если вы преобразуете документ в 16-битный режим, вы по-прежнему будете иметь 8-битный градиент. Однако, вы можете создать новый градиент в 16-битном режиме. Однако, он будет создаваться в 12-бит. Программа не имеет 16-битного варианта для инструмента градиента в Photoshop, но 12-бит более чем достаточно для любой практической работы, так как он позволяет использовать 4096 значений.
Не забудьте включить сглаживание в панели градиента, так как это лучше всего подходит для тестирования.
Важно также отметить, что вы, вероятно, столкнутся с ложной «полосатостью» при просмотре изображений на увеличении менее чем 67%.
Зачем использовать больше бит, чем вы можете увидеть?
Почему у нас есть варианты, даже больше, чем 10-бит в наших камерах и Photoshop? Если мы не редактировали фотографии, то не было бы никакой необходимости добавлять больше бит, чем человеческий глаз может видеть. Однако, когда мы начинаем редактирование фотографий, ранее скрытые различия могут легко вылезть наружу.
Если мы значительно осветлим тени или затемним блики, то мы увеличим некоторую часть динамического диапазона. И тогда любые недочёты станут более очевидны. Другими словами, увеличение контраста в изображении работает как уменьшение битовой глубины. Если мы будем достаточно сильно выкручивать параметры, на некоторых участках снимка может появиться полосатость. Она будет показывать переходы между цветами. Такие моменты обычно становятся заметны на чистом голубом небе или в тенях.
Почему 8-битные изображения выглядят так же, как 16-битные?
При преобразовании 16-битного изображения в 8-битное вы не увидите разницы. Если так, тогда зачем использовать 16-бит?
Всё дело в плавности редактирования. При работе с кривыми или другими инструментами вы получите больше шагов коррекции тонов и цветов. Переходы будут плавней в 16 бит. Поэтому, даже если разница не может быть изначально заметна, переход к меньшей битовой глубине цвета может стать серьезной проблемой позже, при редактировании изображения.
Так сколько бит действительно нужно в камере?
Изменение 4 стопов в обеспечит потерю чуть более 4 бит. Изменение 3 стопов экспозиции находится ближе к потере 2 бит. Как часто вам приходится настолько сильно корректировать экспозицию? При работе с RAW коррекция до +/- 4 стопа – это экстремальная и редкая ситуация, но такое случается, поэтому желательно иметь дополнительные 4-5 бит над пределами видимого диапазонов, чтобы иметь запас. При нормальном диапазоне 9-10 бит, с запасом нормой может быть примерно 14-15 бит.
На самом деле, вы, вероятно, никогда не будете нуждаться в таком большом количестве данных по нескольким причинам:
- Есть не так много ситуаций, когда вы встретите идеальный градиент. Ясное голубое небо, вероятно, наиболее частый пример. Все остальные ситуации имеют большое количество деталей и переходы цветов не плавные, поэтому вы не увидите разницу при использовании различной битовой глубины.
- Точность вашей камеры не так высока, чтобы обеспечить точность цветопередачи. Другими словами, в изображении есть шум. Из-за этого шума обычно намного сложнее увидеть переходы между цветами. Получается, что реальные изображения обычно не способны отобразить переходы цвета в градиентах, так как камера не способны запечатлеть идеальный градиент, который можно создать программно.
- Вы можете удалить переходы цветов во время пост-обработки при помощи использования размытия по Гауссу и добавления шума.
- Большой запас бит нужен только для экстремальных тональных поправок.
Принимая все это во внимание, 12-бит звучит как очень разумный уровень детализации, который позволил бы выполнять отличную постобработку. Тем не менее, камера и человеческий глаз по-разному реагирует на свет. Человеческий глаз более чувствителен к тени.
Интересный факт заключается в том, что многое зависит от программы, которую вы используете для постобработки. К примеру, при вытягивании теней из одного и того же изображения в Capture One (CO) и в Lightroom можно получить разные результаты. На практике оказалось, что СО больше портит глубокие тени, чем аналог от Adobe. Таким образом, если вы вытягиваете в LR, то можно рассчитывать на 5 стопов, а в CO – всего на 4.
Но всё таки, лучше избегать попыток вытянуть более 3 стопов динамического диапазона из-за шума и изменения цветового оттенка. 12-бит, безусловно, разумный выбор. Если вы заботитесь о качестве, а не размере файла, то снимайте в 14-битном режиме, если ваша камера позволяет.
Сколько бит стоит использовать в Photoshop?
На основании изложенного выше, должно быть ясно, что 8-бит – это мало. Можно сразу увидеть переходы цветов в плавных градиентах. И если вы не видите это сразу, даже скромные корректировки могут сделать этот эффект заметным.
Стоит работать в 16 бит даже если ваш исходный файл 8-битовый, например, изображения в JPG. Режим 16-бит даст лучшие результаты, поскольку он позволит свести к минимуму переходы при редактировании.
Нет никакого смысла использовать 32-битный режим, если вы не обрабатываете файл HDR.
Сколько бит нужно для интернета?
Преимущества 16 бит заключаются в расширении возможностей редактирования. Преобразование окончательного отредактированного изображения в 8 бит прекрасно подходит для просмотра снимков и имеет преимущество в создании небольших файлов для интернета для более быстрой загрузки. Убедитесь, что сглаживание в Photoshop включено. Если вы используете Lightroom для экспорта в JPG, сглаживание используется автоматически. Это помогает добавить немного шума, который должен свести к минимуму риск появления заметных переходов цвета в 8 бит.
Сколько бит нужно для печати?
Если вы печатаете дома, вы можете просто создать копию рабочего 16-битного файла и обработать его для печати, осуществив печать именно рабочего файла. Но что, если вы отправляете свои изображения через интернет в лабораторию? Многие будут использовать 16-разрядные TIF-файлы, и это отличный способ. Однако, если для печати требуют JPG или вы хотите отправить файл меньшего размера, вы можете столкнуться с вопросами о переходе на 8-бит.
Если ваша лаборатория печати принимает 16-битный формат (TIFF, PSD, JPEG2000), просто спросите у специалистов какие файлы предпочтительны.
Если вам нужно отправить JPG, он будет в 8 бит, но это не должно быть проблемой. В действительности, 8-бит отлично подходит для окончательного вывода на печать. Просто экспортируйте файлы из Lightroom с качеством 90% и цветовым пространством Adobe RGB. Делайте всю обработку перед преобразованием файла в 8 бит и никаких проблем не будет.
Если вы не видите полосатость перехода цветов на мониторе после преобразования в 8-бит, можете быть уверены, что всё в порядке для печати.
В чем разница между битовой глубиной и цветовым пространством?
Битовая глубина определяет число возможных значений. Цветовое пространство определяет максимальные значения или диапазон (обычно известные как «гамма»). Если вам нужно использовать коробку цветных карандашей в качестве примера, большая битовая глубина будет выражаться в большем количестве оттенков, а больший диапазон будет выражаться как более насыщенные цвета независимо от количества карандашей.
Чтобы посмотреть на разницу, рассмотрим следующий упрощенный визуальный пример:
Как вы можете видеть, увеличивая битовую глубину мы снижаем риск появления полос перехода цвета. Расширяя цветовое пространство (шире гамма) мы сможем использовать более экстремальные цвета.
Как цветовое пространство влияет на битовую глубину?
SRGB (слева) и Adobe RGB (справа)
Цветовое пространство (диапазон, в котором применяются биты), поэтому очень большая гамма теоретически может вызвать полосатость, связанную с переходами цвета, если она растягивается слишком сильно. Помните, что биты определяют количество переходов по отношению к диапазону цвета. Таким образом, риск получить визуально заметные переходы увеличивается с расширением гаммы.
Рекомендуемые настройки, чтобы избежать полосатости
После всего этого обсуждения можно сделать заключение в виде рекомендаций, которых стоит придерживаться, чтобы избежать проблем с переходами цветов в градиентах.
Настройки камеры:
- 14+ бит RAW файл является хорошим выбором, если вы хотите, наилучшее качество, особенно если вы рассчитываете на корректировку тона и яркости, например, увеличение яркости в тенях на 3-4 стопа.
- 12-битный RAW файл отлично подойдёт, если вы хотите иметь меньший вес файлов или снимать быстрее. Для камеры Nikon D850 14-битный RAW файл примерно на 30% больше, чем 12-битный, так что это является важным фактором. И большие файлы могут повлиять на возможность снимать длинные серии кадров без переполнения буфера памяти.
- Никогда не снимайте в JPG, если вы можете. Если вы снимаете какие-то события, когда нужно быстро передавать файлы и качество снимков не играет роли, то конечно Jpeg будет отличным вариантом. Также вы можете рассмотреть возможность съёмки в режиме JPG + RAW, если вам нужен более качественный файл впоследствии. Стоит придерживаться цветового пространства SRGB, если вы снимаете в JPG. Если вы снимаете в RAW, вы можете игнорировать настройки цветового пространства. Файлы RAW в действительности не имеют цветового пространства. Оно не устанавливается, пока не выполнена конвертация файла RAW в другой формат.
Lightroom и Photoshop (рабочие файлы):
- Всегда сохраняйте рабочие файлы в 16-бит. Используйте 8 бит только для окончательного экспорта в формате JPG для интернета и печати, если этот формат удовлетворяет требованиям печатного оборудования. Это нормально использовать 8-бит для окончательного вывода, но следует избегать этого режима во время обработки.
- Обязательно просмотрите снимок в масштабе 67% или больше, чтобы убедиться, что в градиентах нет заметных переходов цвета. В меньшем масштабе Photoshop может создавать ложную полосатость. Об этом будет другая наша статья.
- Будьте осторожны при использовании HSL в Lightroom и Adobe Camera RAW, так как этот инструмент может создать цветные полосы. Это имеет очень мало общего с битовой глубиной, но проблемы возможны.
- Если ваш исходный файл доступен только в 8-бит (например, JPG), вы должны немедленно преобразовать его в 16 бит перед редактированием. Последующие правки на 8-битные изображении в 16-битном режиме не будут создавать слишком явных проблем.
- Не используйте 32-разрядное пространство, если вы не используете его для объединения нескольких RAW-файлов (HDR). Есть некоторые ограничения при работе в 32-битном пространстве, а файлы становятся в два раза больше. Лучше всего делать объединение HDR в Lightroom вместо того, чтобы использовать 32-битный режим в Photoshop.
- Формат HDR DNG Lightroom очень удобен. Он использует 16-битный режим с плавающей точкой для того, чтобы охватить более широкий динамический диапазон с таким же количеством бит. Рассчитывая на то, что нам обычно нужно исправлять динамический диапазон в HDR только в пределах 1-2 стопов, это приемлемый формат, который повышает качество без создания огромных файлов. Конечно, не забудьте экспортировать этот RAW в 16-битном TIF/PSD, когда вам нужно продолжить редактирование в Photoshop.
- Если вы один из немногих людей, которые должны использовать 8-разрядный рабочий режим по какой-то причине, вероятно, лучше всего придерживаться цветового пространства sRGB.
- При использовании инструмента градиента в Photoshop, отметив опцию «сглаживание» программа будет использовать 1 дополнительный бит. Это может быть полезно при работе в 8-битных файлах.
Экспорт для интернета:
- JPG с 8 битами и цветовым пространством sRGB идеально подходит для интернета. В то время как некоторые мониторы способны отображать большую битовую глубину, увеличенный размер файла, вероятно, не стоит этого. И в то время как все больше и больше мониторов поддерживают более широкие гаммы, не все браузеры правильно поддерживают управление цветом и могут отображать изображения неправильно. И большинство из этих новых мониторов вероятно никогда не проходили калибровку цвета.
Печать:
- 8-бит отлично подходит для окончательного вывода на печать, но используйте 16 бит, если печатное оборудование поддерживает это.
Монитор:
- Стандартный монитор отлично подойдёт для большинства задач, но помните, что вы можете увидеть полосы перехода цветов из-за 8-битных дисплеев. Этих полос может на самом деле не быть в снимках. Они появляются на этапе вывода на монитор. На другом дисплее этот же снимок может выглядеть лучше.
- Если вы можете себе это позволить, 10-битный дисплей идеально подходит для работы с фотографией. Широкий диапазон, такой как Adobe RGB также идеально подходит. Но это не обязательно. Вы можете создавать потрясающие снимки на самом обычном мониторе.
Взгляд в будущее
В данный момент выбор большей битовой глубины для вас может не иметь значения, так как ваш монитор и принтер способны работать только в 8 бит, но в будущем всё может измениться. Ваш новый монитор сможет отображать больше цветов, а печать можно осуществить на профессиональном оборудовании. Сохраняйте свои рабочие файлы в 16-бит. Этого будет достаточно, чтобы сохранить наилучшее качество на будущее. Этого будет достаточно, чтобы удовлетворить требованиям всех мониторов и принтеров, которые будут появляться в обозримом будущем. Этого диапазона цвета достаточно, чтобы выйти за пределы диапазона зрения человека.
Однако гамма – это другое. Скорее всего, у вас есть монитор с цветовой гаммой sRGB. Если он поддерживает более широкий спектр Adobe RGB или гамму P3, то вам лучше работать с этими гаммами. Adobe RGB имеет расширенный диапазон цвета в синем, голубом и зелёном, а P3 предлагает более широкие цвета в красном, желтом и зеленом. Помимо P3 мониторов существуют коммерческие принтеры, которые превышают гамму AdobeRGB. sRGB и AdobeRGB уже не в состоянии охватить полный диапазон цветов, которые могут быть воссозданы на мониторе или принтере. По этой причине, стоит использовать более широкий диапазон цвета, если вы рассчитываете на печать или просмотр снимков на лучших принтерах и мониторах позже. Для этого подойдёт гамма ProPhoto RGB. И, как обсуждалось выше, более широкая гамма нуждается в большей битовой глубине 16-бит.
Как удалить полосатость
Если вы будете следовать рекомендациям из этой статьи, очень маловероятно, что вы столкнетесь с полосатостью в градиентах.
Но если вы столкнетесь с полосатостью (скорее всего при переходе в 8-разрядное изображение, вы можете предпринять следующие шаги, чтобы свести эту проблему к минимуму:
- Преобразуйте слой в смарт-объект.
- Добавьте размытие по Гауссу. Радиус установите таким, чтобы скрыть полосатость. Радиус, равный ширине полосатости в пикселях идеален.
- Используйте маску, чтобы применить размытие только там, где это необходимо.
- И, наконец, добавьте немного шума. Зернистость устраняет вид гладкого размытия и делает снимок более целостным. Если вы используете Photoshop CC, используйте фильтр Camera RAW, чтобы добавить шум.
Об авторе: Greg Benz – фотограф из Миннеаполиса, штат Миннесота. Мнения, выраженные в этой статье принадлежат исключительно автору. Вы можете узнать больше о его работах на сайте
Следите за новостями: Facebook, Вконтакте и Telegram
comments powered by HyperComments
Что такое глубина цвета в фотографии
Для цифровой фотографии одним из важнейших параметров является глубина цвета. Ее часто называют и глубиной пикселя, или битовым разрешением. Под этим термином подразумевается величина, которая характеризует количество бит информации, содержащейся в пикселе картинки. Т.е. это количество оттенков, соответствующих каждому пикселю изображения.
Возьмем изображение с глубиной цвета 1 бит, в нем будут только два цвета, белый и черный. В изображении в 2 бита будет четыре оттенка: черный, белый, два оттенка серого. Белый и черный цвета всегда присутствуют в изображении, независимо от глубины цвета. Если глубина цвета увеличивается на единицу, число оттенков удваивается. Чем большую глубину цвета поддерживает фотоаппарат, тем больше оттенков доступно для каждого пикселя изображения. Другими словами, чем больше битовая глубина, тем точнее и детальнее само изображение.
Какая бывает глубина цвета изображений?
Глубина пикселя может варьироваться от 1 до 48 битов. С битовой глубиной пикселя = 1 возможно лишь 2 цвета (белый и черный) и 21 допустимое состояние. Если глубина пикселя будет равна 8, то возможных состояний будет уже больше на 7, а количество оттенков – 256.
С большей глубиной цвета (36 или 48 битов) позволяют снимать в формате RAW профессиональные фотокамеры. Иногда именно поэтому многие фотографы предпочитают делать снимки именно а RAW.
Но наиболее распространенным показателем глубины цвета является все же 24 бита – это стандартные фотоснимки обычных фотоаппаратов в формате JPG, они вполне передают все детали и нюансы изображения. Недаром 24-битные изображения имеют название «TruColor», т.е. «настоящий цвет».
Существуют также 16 битные фотографии. Их еще называют «HighColor». Они передают оттенки, к которым наиболее восприимчив глаз человека.
На что влияет глубина цвета?
Во-первых, как понятно из вышесказанного, от глубины цвета зависит качество цветопередачи и, соответственно, качество самой фотографии. Оптимальным показателем глубины цвета является 24 бита, которого и придерживается большинство обычных фотографов.
Во-вторых, нужно помнить, что объем файла с изображением во многом зависит как от размеров картинки, так и от глубины цвета. Чем больше битовое разрешение изображения, тем больше будет объем его файла и его вес. Следовательно, нужно заранее подумать об обеспечении фотоаппарата картой памяти достаточного объема.
Почему 8-битные изображения выглядят так же, как 16-битные?
При преобразовании 16-битного изображения в 8-битное вы не увидите разницы. Тогда зачем использовать 16-бит? Всё дело в плавности редактирования. При работе с кривыми или другими инструментами вы получите больше шагов коррекции тонов и цветов. Переходы будут плавней в 16 бит. Поэтому, даже если разница не может быть изначально заметна, переход к меньшей битовой глубине цвета может стать серьезной проблемой позже, при редактировании изображения.
Разрядность
Разрядность, или глубина цветности, определяет, сколько уникальных оттенков цвета доступны в палитре изображения в терминах количества двоичных 0 и 1, или «бит», используемых для определения каждого цвета. Это не означает, что изображение обязательно использует все эти цвета, а скорее говорит о том, что цвета могут быть описаны с определённым уровнем точности. Для чёрно-белого изображения разрядность определяет количество доступных оттенков серого. Изображения с высокой разрядностью могут использовать больше градаций серого или оттенков цвета, поскольку возможно большее число комбинаций 0 и 1.
Терминология
Каждый цветной пиксель цифрового изображения создаётся посредством комбинации трёх первичных цветов: красного, зелёного и синего. Каждый первичный цвет часто называют «каналом цветности», и он может иметь любые значения интенсивности в пределах заданной разрядности. Разрядность для каждого канала цветности задаётся в «битах на канал». Термин «бит на пиксель» (bpp) означает сумму числа бит во всех трёх каналах и представляет общее количество цветов, доступное для каждого пикселя. Для цветных изображений зачастую неясно, какая из цифр указана. Использование «bpp» в качестве суффикса позволяет внести ясность в этом вопросе.
Пример
Большинство цветных изображений с цифровых камер имеют 8 бит на канал, то есть могут использовать вплоть до восьми 0 и 1. Это позволяет использовать 28 или 256 различных комбинаций, транслируемых в 256 различных значений интенсивности для каждого первичного цвета. Когда все три первичных цвета объединяются в одном пикселе, это позволяет создавать 28×3 или 16.777.216 различных цветов, называемых также «полный цвет». Это означает 24 бита на пиксель, поскольку каждый пиксель состоит из трёх 8-битных каналов. Число оттенков цвета, доступное для любого X-битного изображения, составляет 2X, если X означает количество бит на пиксель, и 23X, если X означает количество бит на канал.
Сравнение
Следующая таблица иллюстрирует различные типы изображений в терминах их разрядности, числа возможных цветов и общеупотребительных названий.
bpp | Число цветов | Название |
---|---|---|
1 | 2 | Монохром |
2 | 4 | CGA |
4 | 16 | EGA |
8 | 256 | VGA |
16 | 65536 | XGA, High Color |
24 | 16777216 | SVGA, True Color |
32 | 16777216 + прозрачность | |
48 | 281 триллион |
Визуализация глубины цветности
Наведя курсор на метки внизу, вы увидите изображение в выбранном числе цветов. Разница между 24 bpp и 16 bpp незначительна, однако чётко видна, если ваш дисплей настроен на полный цвет или более (24 или 32 bpp).
Полезные советы
- Человеческий глаз может различить порядка 10 миллионов цветов, посему сохранять изображение с большей разрядностью, чем 24 bpp, избыточно, если оно предназначено только для просмотра. С другой стороны, изображения с разрядностью выше 24 bpp полезны, поскольку они лучше выдерживают пост-обработку (см. «Постеризация изображений»).
- Градации цвета в изображениях менее 8 бит на канал цветности могут быть чётко заметны на гистограмме изображения.
- Доступная глубина цветности зависит от типа файла. Стандартные файлы JPEG и TIFF могут использовать только 8 и 16 бит на канал, соответственно.
8 или 16 бит: какая глубина цвета вам нужна?
«Битовая глубина цвета» — это один из тех терминов, с которыми мы все сталкиваемся ежедневно, но очень немногие фотографы действительно понимают. Photoshop предлагает 8, 16 и 32-битные форматы файлов. Иногда мы видим файлы, называемые 24 или 48-битные. В настройках своей камеры вы можете найти выбор из 12- или 14-битных файлов. Что все это значит и что действительно имеет значение?
Что такое битовая глубина цвета?
Википедия дает исчерпывающее определение: Глубина цвета — термин компьютерной графики, означающий количество бит (объём памяти), используемое для хранения и представления цвета при кодировании одного пикселя растровой графики или видеоизображения. Часто выражается единицей бит на пиксел (англ. bits per pixel, bpp).
Исчерпывающе, но не очень понятно. Давайте разберемся.
Прежде чем сравнивать различные варианты битовой глубины цвета, давайте сначала обсудим, что означает наименование. «Бит» — это компьютерный способ хранения информации в виде 1 или 0. Один бит не очень хорош для чего-либо, кроме «да» или «нет», потому что он может иметь только 2 значения. Если бы это был пиксель изображения, он был бы чисто черным или чисто белым. Не очень полезно.
Чтобы описать более сложный цвет, мы можем объединить несколько битов. Каждый раз, когда мы добавляем еще один бит, количество возможных комбинаций удваивается. Один бит имеет 2 возможных значения, 0 или 1. Когда вы объединяете 2 бита, вы можете иметь четыре возможных значения (00, 01, 10 и 11). Когда вы комбинируете 3 бита, вы можете иметь восемь возможных значений (000, 001, 010, 011, 100, 101, 110 и 111). И так далее. Как правило, число возможных вариантов выбора увеличивается как 2 в степени количества бит. Итак, «8-бит» = два в восьмой степени = 256 возможных целочисленных значений. В Photoshop это представляется как целые числа 0-255 (внутренне для компьютера это двоичный код от 00000000 до 11111111 ). При этом 0 — это черный цвет, 255 — белый. А между этими значениями мы получаем значения цвета, плавно изменяющиеся от черного к белому.
Таким образом, «битовая глубина» определяет, самые маленькие изменения, которые вы можете сделать, относительно некоторого диапазона значений. Если наше изображение является 2-битным, шкалой является яркость из четырех значений: черный, темные средние тона, светлые средние тона и белый. Но если у нас достаточно бит, у нас достаточно серых значений, чтобы сделать то, что кажется идеально плавным градиентом от черного к белому.
На картинке выше пример, сравнивающий градиент от черного к белому с разной битовой глубиной. В зависимости от качества вашего монитора, вы можете увидеть различия только до 8-10 бит.
Как определяется битовая глубина?
Было бы удобно, если бы все «битовые глубины» можно было сравнивать напрямую, но есть некоторые вариации в терминологии, которые полезно понять.
Обратите внимание, что изображение выше является черно-белым изображением. Цветное изображение обычно состоит из трех
каналов красной, зеленой и синей цветности, комбинации которых дают нам возможность создавать различные цвета. Программное обеспечение для фотографий (например, Photoshop и Lightroom) оперирует количеством бит на канал. Таким образом, 8 бит означает 8 бит на канал. Это означает, что 8-битное изображение RGB в Photoshop будет иметь в общей сложности 24 бита, описывающих один пиксель изображения (8 для красного, 8 для зеленого и 8 для синего). 15 + 1 возможных значений (что составляет 32 768 + 1 = 32 769 возможных значений). Так что с точки зрения качества было бы очень справедливо сказать, что 16-битный режим Adobe на самом деле только 15-битный. Не верите мне? Посмотрите на 16-битную шкалу в панели «Информация» в Photoshop, которая показывает шкалу от 0 до 32 768 (что составляет 32 769 значений, поскольку мы включаем 0).
Почему Adobe это делает? По словам разработчика Adobe Криса Кокса, это позволяет Photoshop работать намного быстрее и обеспечивает точную среднюю точку для диапазона, что полезно для режимов наложения). Стоит ли беспокоиться об этой «потере» 1 бита? Нет, совсем нет (15-битных данных вполне достаточно, как мы обсудим ниже).
Сколько бит вы можете увидеть?
На чистом градиенте я могу лично обнаружить полосы в 9-битном варианте (то есть 2048 оттенков серого) как на моем дисплее MacBook Pro Retina 2018 года, так и на 10-битном мониторе Eizo. 9-битный градиент очень слабый (едва заметный) на обоих дисплеях. Я почти наверняка не заметил бы его, если бы не присматривался специально. И даже когда я присматриваюсь, я не могу легко сказать точно, где края полос по сравнению с 10-битным градиентом. Я бы почти сказал, что на 9 битах нет полос. 8-битный градиент относительно легко увидеть при просмотре, хотя я все еще мог бы его пропустить, если бы не обращал внимания. Поэтому для моих целей 10-битный градиент визуально идентичен 14-битному или более.
Надо сказать, что на стандартном мониторе среднего ноутбука, полосы еще можно разглядеть на 7-битном градиенте, тогда как градиент 8 — бит выглядит также как и градиент 9- 10- и более бит.
Зачем использовать больше бит, чем можно видеть?
Почему у нас есть варианты более 10 бит в наших камерах и фотошопе? Если бы мы никогда не редактировали фотографии, не было бы необходимости добавлять больше бит, чем может видеть человеческий глаз. Однако, когда мы начинаем редактировать фотографии, могут легко начать отображаться ранее скрытые различия.
При манипуляциях с фотографией программа делает незначительные ошибки или ошибки округления в данных более очевидными. Увеличение контрастности изображения похоже на уменьшение битовой глубины. Если мы достаточно сильно манипулируем фотографией, на плавных градиентах начнет проявляться «полосатость» или ступенчатость. Ступенчатость — очевидные дискретные переходы от одного цвета или тона к другому (вместо плавного градиента). Вы уже видели теоретический пример с низкими битовыми градиентами выше. Типичным примером в реальном мире могут быть различные «полосы», появляющиеся на ясном голубом небе.
Так сколько бит вам действительно нужно в камере?
Коррекция экспозиции на постобработке на 4-ступени равносильно потери чуть более 4 бит. 3-ступенчатое изменение экспозиции ближе всего к потере 2 битов. Я редко регулирую экспозицию RAW-фалов до +/- 4 ступени, но это может случиться с экстремальными ситуациями или плохо проэкспонированными частями изображения. Поэтому я бы посоветовал иметь в запасе дополнительные 4-5 бит по сравнению с пределами видимой полосы, чтобы быть в безопасности. Если принять за предел 9-10 бит, то чтобы избежать видимой полосатости, нам нужно снимать примерно в 14-15 бит.
В действительности, вам, вероятно, никогда не понадобится так много бит по нескольким причинам:
- Не так много ситуаций, когда вы можете столкнуться с идеальным градиентом. Ясное голубое небо, вероятно, наиболее вероятный случай. В других изображениях намного сложнее увидеть разницу в битовой глубине.
- Цвет предлагает большую битовую глубину. Мое обсуждение здесь ограничивается одним черно-белым каналом. Если вы обрабатываете черно-белые фотографии, то эти цифры относятся непосредственно к вам. Но если вы обрабатываете в цвете, у вас, вероятно, будет немного больше места для маневра.
- Точность вашей камеры не так высока, как всем нам хотелось бы. Другими словами, в вашем изображении всегда есть шум. Из-за этого шума при определенной глубине цвета огрехи в градиентах намного сложнее увидеть.
- Вы можете удалить ступенчатость переходов на постобработке, используя комбинация размытия по Гауссу и / или добавления шума.
- Дополнительные биты в основном имеют значение только для экстремальных тональных коррекций.
Принимая все это во внимание, 12-бит для изображения звучит как очень разумный уровень детализации, который допускает значительную постобработку.
Подытожим:
- не снимайте в JPG (8 бит).
- 12-битный файл RAW отлично подходит для большинства работ и обеспечивает значительную экономию места по сравнению с 14-битным RAW. Это лучший выбор, если вы заботитесь о размере файла.
- Если вы хотите получить абсолютное наилучшее качество в тенях, снимайте 14-битные файлы RAW (в идеале, используя сжатия без потерь, чтобы сэкономить место). Это лучший выбор, если вы не заботитесь о больших файлах и снимаете сцены с широким динамическим диапазоном (глубокие тени).
- Если вы можете снимать в 16 бит, это хорошо, но, вероятно, избыточно. Стоит протестировать фотографии с вашей камеры, чтобы увидеть, можете ли вы использовать меньшие настройки, чтобы сэкономить на размере файла.
Сколько бит нужно для интернета?
Преимущества 16-битного режима заключаются в возможности манипулировать изображением, не вызывая проблем. Преобразовав окончательно отредактированного изображения в 8-битное, вы не увидите никакой разницы, и к тому же файл будет гораздо меньшего размера, что важно для более быстрой загрузки / выгрузки. Убедитесь, что сглаживание в Photoshop включено. Перейдите в Edit / Color Settings и убедитесь, что установлен флажок «Использовать дизеринг (8-битные / канальные изображения)». Если вы используете Lightroom для экспорта в JPG, дизеринг используется автоматически (у вас нет выбора). Это помогает добавить немного шума, который должен минимизировать риск появления ступенчатости при окончательном преобразовании в 8 бит.
Сколько бит нужно для печати?
Что делать, если вы отправляете свои изображения через Интернет для печати профессиональной лабораторией? Многие лаборатории примут 16-битные файлы TIF, и это отличный вариант. Однако, если лаборатория требует JPG или вы хотите отправить файл меньшего размера, у вас могут возникнуть вопросы о преобразовании в 8-бит. Если ваша лаборатория печати принимает 16-битные форматы (TIFF, PSD, JPEG2000), то проблем нет — но лучше спросите их, что они рекомендуют, если вы не уверены.
Если вам нужно отправить JPG, он будет в 8 битах, но это не должно быть проблемой. На самом деле, 8-битные данные подходят для окончательного вывода на печать. Помните, что большинство проблем с 8-разрядными процессами вызвано внесением изменений в 8-разрядные данные, а не первоначальным преобразованием. Я напечатал сотни очень высококачественных изображений, которые были загружены моему поставщику в виде 8-битных файлов JPG, и окончательные изображения выглядят потрясающе (экспортировано из Lightroom с качеством 90% и цветовым пространством Adobe RGB). Я бы порекомендовал внесить все изменения (сглаживание, преобразование цветового пространства, повышение резкости и т. д.) перед преобразованием в 8-битное.
Если вы не видите полосы на мониторе после преобразования в 8-битное, то все должно быть в порядке и на печати. Однако вы можете помочь избежать потенциальных проблем, убедившись, что Photoshop использует дизеринг для преобразования в 8-битные.
В чем разница между глубиной цвета и цветовым пространством?
Битовая глубина цвета определяет количество возможных значений или приращений. Цветовое пространство определяет максимальные значения или диапазон (обычно известный как «цветовой охват»). Если бы вы использовали коробку с карандашами в качестве примера, большая битовая глубина была бы похожа на большее количество оттенков (больше цветных карандашей), а большой цветовой охват — как если бы наиболее насыщенный цвет был более насыщенным (независимо от количества цветных карандашей). Чтобы увидеть разницу, рассмотрим следующий упрощенный визуальный пример:
Как вы можете видеть, увеличение глубины в битах снижает риск появления полосатости в градиентах за счет создания большего приращения, а расширение цветового пространства (более широкий цветовой охват) позволяет использовать более экстремальные цвета. Но эти два параметра взаимодействуют друг с другом. Чем больше цветовой охват, тем больше вероятность появления ступенчатых градиентов при одной и той же битовой глубине цвета.
Смотрите в будущее
Как мы уже говорили выше, иногда выбор битовой глубины не имеет значения сегодня. То же самое относится и к мониторам и принтерам. Но в будущем ваш монитор или принтер могут могут иметь лучшую битовую глубину и цветовой охват. Рекомендую хранить свои рабочие файлы не более чем в 16-бит по нескольким причинам: (1) это больше, чем большинство мониторов и принтеров есть или будет в обозримом будущем, и (2) такая глубина цвета остается далеко за пределами нашей способности видеть различия.
Однако, цветовой охват другое дело. Скорее всего, у вас есть монитор с цветовой гаммой sRGB. Если у вас монитор «с расширенным цветовым охватом» (Adobe RGB) или P3, то у вас очень широкий цветовой охват (Adobe RGB расширяет голубые / голубые / зеленые цвета больше, чем P3, а P3 расширяет красные / желтые / зеленые дальше, чем Adobe RGB).
Помимо мониторов P3, в продаже имеются принтеры, которые также превосходят цветовой охват AdobeRGB (особенно в цианах). Таким образом, и sRGB, и AdobeRGB уже не в состоянии охватить весь спектр цветов, которые можно воссоздать на мониторе или принтере сегодня. По этой причине сейчас стоит использовать более широкий цветовой охват , чтобы ваш рабочий файл впоследствии мог использовать преимущества более качественных принтеров и мониторов, таких как ProPhoto RGB. Конечно, вам нужно будет преобразовать RAW в широкую гамму во время первоначального экспорта, переключение цветового пространства в дальнейшем не приведет к восстановлению цветов, которые вы отбрасывали ранее в процессе. И как обсуждалось выше, более широкий
цветовой охват должен использоваться с 16-битными файлами.
Автор: Greg Benz – фотограф из Миннеаполиса, штат Миннесота.
Поделиться ссылкой:
Похожее
В этом документе приведено элементарное введение в принципы хранения картинок (растровые изображения, bitmap) и их отображения, как это используется в компьютерной графике (перевод [1]).
Растр (bitmap, дословный перевод этого термина «поле бит», или «карта бит») определен как равномерный, прямоугольный набор ячеек, которые называются пикселами (pixel, переводится как «точка»). Обычно каждый пиксел хранит информацию о цвете точки, но понятие «цвет» трактуется более широко — например, цвет может быть монохромным (monochrome, т. е. только 2 цвета — черный и белый, 0 и 1), или с градациями серого (grayscale). В сущности, чтобы полностью сохранить данные картинки, нужно знать только количество точек (оно зависит от размера сторон прямоугольного поля бит N и M) и информацию содержимому каждого пикселя (его глубину цвета, colour depth). Именно в таком виде картинки хранятся в памяти компьютера, когда они выводятся на устройство отображения (экран), однако к этим двум фундаментальным параметрам также могут добавляться другие дополнительные данные.
Обратите внимание, что карта бит bitmap всегда ориентирована горизонтально и вертикально. Пикселы считают маленькими квадратиками, хотя на практике они могут иметь другое реальное физическое соотношение сторон (aspect ratio).
Чаще всего bitmap-ы используются для представления картинок в компьютерах. Например, картинка, показанная ниже, имеет 397 пикселя по горизонтали 294 пикселя по вертикали, и каждый пиксель содержит значение уровня серого, которое может быть для каждой точки 256 различных оттенков.
Что такое глубина цвета (Colour depth). Каждый пиксел растра bitmap содержит определенную информацию, обычно интерпретируемую как цвет. Смысл и формат содержимого этой информации всегда одинаков для каждой отдельной точки изображения bitmap. Количество информации для каждой точки должно определяться требованиями приложения, однако имеется несколько стандартных, общепринятых форматов данных, содержащих описание каждой точки растра.
Рассмотрим эти самые популярные форматы для передачи растровой картинки.
Формат 1 bit (black and white). Это самый компактный из всех возможных вариантов представления графической информации для каждого пикселя. Результирующая картинка получается монохромной, или черно-белой (точка может иметь либо черный цвет, либо белый, других вариантов нет). Пикселы, бит которых равен лог. 0, считаются черными, и пикселы, бит которых равен лог. 1, считаются белыми. Обратите внимание, что хотя есть только 2 возможных состояния для каждой точки, на практике на этапе отображения обычно есть возможность привязки к этим двум состояниям двух цветов, т. е. 0 соответствует одному цвету, и 1 другому цвету.
8 бит серого (8 bit grayscale). В этом случае каждый пиксел получает в соответствие 1 байт (8 бит) места в памяти, благодаря чему можно закодировать 28 = 256 различных состояний точки. Если эти состояния отображены на палитру уровней серого, то получится черно-белая картинка с 256 градациями яркости (greyscale image). Принято, что 0 обычно соответствует максимально черному цвету, и 255 максимально белому. Остальные уровни серого будут линейно по яркости соответствовать промежуточным уровням кодирования, т. е., к примеру, уровень 127 будет соответствовать примерно средней яркости, 50% по яркости от уровня максимума белого.
В любом частном приложении диапазон уровней серого может быть привязан к произвольным уровням яркости или даже цвета, т. е. уровни 0-255 могут быть преобразованы некоторыми программами в уровни 0-1, но большинство программ преобразуют уровни 0-255 к уровням 0-65535 (в качестве примера см. спецификацию системы цветового кодирования Apple).
24 bit RGB. Это следующий шаг от кодирования 8 bit grey, теперь по 8 бит выделено каждому из компонентов цвета red (красный), green (зеленый) и blue (синий). В каждой компоненте уровень 0 соответствует отсутствию этого цвета, и 255 соответствует полному насыщению цвета. Поскольку каждый компонент дает 256 различных состояний, то всего можно закодировать 224 = 28 * 28 * 28 = 256 * 256 * 256 = 16777216 возможных цветов.
Идея цветового пространства RGB является фундаментальной концепцией компьютерной графии. В пространстве RGB любой цвет представлен точкой внутри куба с перпендикулярными осями r,g,b.
Обратите внимание, что что уровни серого формируют прямую линию от черного до белого, составляя диагональ куба r = g = b.
8 bit indexed colour. Индексированный цвет — более экономичный способ сохранять цветные растровые изображения без использования 3 байт на точку. Как и для формата градаций серого 8 бит, на точку здесь приходится 1 байт, но только теперь значение этого байта указывает на значение цвета в таблице RGB (см. рисунок ниже). Такая таблица называется палитрой. Поскольку значение байта указывает на цвет в палитре как индекс в таблице, то такой формат называют еще формат с индексированными цветами.
Есть некоторое количество интересных атрибутов в такой системе с индексированными цветами. Если в картинке меньше 256 цветов, то она будет иметь такое же качество, как и 24 bit bitmap, однако будет занимать место в 3 раза меньше. Интересующие цвета и эффекты анимации могут быть достигнуты простым изменением палитры, это немедленно повлияет на внешний вид картинки.
Обычно для уменьшения большой картинки 24 bit bitmap применяют её преобразование в формат с индексированными цветами и оптимизированной палитрой. Оптимизированная палитра позволяет лучше всего воспроизвести цвета, которые присутствуют в оригинальном растре bitmap.
4 bit indexed colour. Принцип здесь тот же самый, что и в формате с индексированным цветом 8 бит, то только теперь точка кодируется не 8 битами, а 4-мя, т. е. для индекса в таблице используется только половина байта. Это позволяет поддерживать таблицу из 16 цветов.
32 bit RGB. Здесь принцип хранения картинки тот же самый, что и в цветном формате 24 бита, но еще добавляется 1 байт канала альфа (alpha channel). Этот канал может быть использован для маскирования областей картинки, или для представления прозрачности.
16 bit RGB. Здесь на каждый цвет приходится по 5 бит, и 1 бит остается на канал альфа (см. рисунок ниже).
[Что такое разрешение картинки (Resolution)]
Разрешение это атрибут картинки, который нужен для визуального отображения картинки или вывода на печать, поскольку у самих точек нет никакой информации о их физическом размере. Разрешение как раз дает такую привязку к физическим размерам, и обычно указывается в количестве пикселов на дюйм (dots per inch, или сокращенно DPI). На устройствах с прямоугольными пикселами разрешение может быть указано двумя числами, с указанием горизонтального и вертикального разрешения.
Концепция разрешения не зависит от информационного содержания растра bitmap, и становится важной только при переносе растра на физические объекты (экран монитора или лист бумаги принтера). Это особенно важно, когда количество точек по горизонтали и вертикали исходного растра не соответствует количеству точек конечного устройства вывода. Качество печати будет зависеть от установленного разрешения картинки. Поскольку разрешение определяет физический размер точки, то разрешение может также использоваться для изменения размера картинки при выводе изображения.
В качестве примера рассмотрим одну картинку bitmap размером в 200 точек по горизонтали и 100 по вертикали. Если этот растр будет напечатан с разрешением 100DPI, то он получит размер 2 дюйма по горизонтали и 1 дюйм по вертикали. Но если ту же самую картинку распечатать с разрешением 200 DPI, то она будет размером всего лишь 1 дюйм по горизонтали и полдюйма по вертикали.
Всякий раз, когда растр bitmap отображается на мониторе компьютера, необходимо учитывать разрешение картинки. Многие мониторы могут иметь разрешение от 60DPI (низкое качество) до 120DPI (высокое качество) и более. Точно так же, как и при выводе на печать, чем выше разрешение картинки, тем она будет выглядеть меньше по размеру на экране монитора — из-за того, что размер каждого пиксела будет меньше.
На следующем примере можно увидеть две картинки с одинаковым содержанием растра bitmap, но с разным разрешением (с разным размером точки). Картинка меньшего размера имеет разрешение 80DPI, и большая картинка имеет разрешение 30DPI. В увеличенной версии картинки отдельные пиксели намного заметнее.
Это еще не все, что касается отображения картинки на разных устройствах вывода, поскольку у разных устройств есть разные возможности по отображению цветовой гаммы, или глубины цвета.
[Преобразование глубины цвета]
Часто нужно отобразить растр bitmap с одной глубиной цвета на устройстве, которое имеет другие возможности по параметру глубины цвета. Конечно, если у конечного устройства можно вывести больше цветов, чем есть на картинке bitmap, то растр может быть отображен наилучшим образом. В обратной ситуации, когда у устройства назначения глубина цвета отличается в худшую сторону (количество отображаемых цветов меньше, чем количество цветов растра), то картинку следует преобразовать во что-то, что будет лучше выглядеть на экране монитора.
В качестве примера рассмотрим отображение картинок с градациями серого на монохромных (где есть только черный и белый цвет точки) устройствах. Это обычная ситуация для устройств на микроконтроллерах с экраном ЖКИ. Оттенки серого можно передать путем изменения количества черных и белых точек в зависимости от уровня серого. Особенно такой способ передачи градаций хорошо подходит для случая, когда у устройства вывода разрешение превышает разрешение картинки — это позволяет создать апроксимацию градаций серого каждой точки растра с помощью разного количества точек конечного устройства.
Предположим, растр bitmap 75DPI нужно отобразить на черно-белом лазерном принтере с разрешающей способностью 300DPI. В таком случае каждую точку картинки можно представить матрицей 4×4 черных и белых точек принтера, и таким способом передать яркость точки картинки.
Есть несколько разных техник для получения такого соответствия матриц точек яркости точки оригинальной картинки. Одна из таких техник называется дизеринг (dithering, дословный перевод «размывание»). Даже для дизеринга есть несколько возможных алгоритмов для получения матриц пикселей для разных уровней яркости. На картинке ниже показана диаграмма смены уровней яркости и (вертикальная полоса слева) и два варианта черно-белого дизеринга — скорректированного увеличения по образцу (greatly enlarged using pattern) и размытие с диффузией (diffusion dithering).
Как уже упоминалось, есть разные техники для отображения растра большой глубины цвета с малым разрешением на устройствах с малой глубиной цвета и большим разрешением. Еще одна такая техника в полиграфии называется screening. Мы не будем подробно рассматривать здесь эту технику, скажем только, что уровни серого здесь представлены объектами разного размера, чем серее точка, тем больше размер объекта (площадь объекта на точке пропорциональна уровню серого точки). Объекты выровнены по равномерной матрице под некоторым углом к горизонтали. Наиболее часто используются объекты в виде точек, черточек и прямоугольников. Ниже показан пример техники скрининга для представления градаций серого.
Мы рассмотрели преобразование глубины цвета только для картинок с градациями серого (greyscale). Преобразование цветных картинок с высокой глубиной цвета в малую использует тот же самый принцип, отличие только в том, что процедура конверсии накладывается на основные компоненты цвета, на каждый по отдельности. Например, для RGB делается дизеринг отдельно по каждому каналу R, G, B.
Предположим, что у нас есть 8-битная картинка с градациями серого; какой самый простой способ сохранить её как двухцветную (монохромную, 1 бит на точку) [2]? 1-битные изображения все еще используются в коммерческой печати. Обычный файл формата CMYK или картинка с градациями серого перед созданием плат офсетной печати преобразуются в 1-битное изображение. Картинка, печатаемая на лазерном принтере, также считается в какой-то момент растровым 1-битным изображением. Изображения на футболках или шевронах часто печатаются как 1-битные (вспомните классическое изображение профиля Эрнесто Че Гевары). Не существует простого метода получить монохромный растр из многоцветного. Всегда перед преобразованием необходимо сделать некоторый выбор. Рассмотрим несколько примеров. Исходная картинка: Линейное преобразование. В этом случае выбирается некий пороговый уровень яркости, выше которой точка считается белой, и ниже этой яркости точка считается черной. Ниже показан пример такого преобразования при выбранном пороге яркости 50%. При таком преобразовании можно регулировать порог оценки яркости: Дизеринг. Этот вид преобразования используется в некоторых монохромных цифровых принтерах для передачи оттенков серого. Разновидностью дизеринга является применение стандартных шаблонов точек для передачи уровней яркости (postscript pattern). Картинки после такое преобразования могут в некоторых случаях лучше выглядеть при отображении на цифровых мониторах.
[Хранение растра bitmap]
Наиболее очевидный способ сохранить растр bitmap — просто представить информацию в виде списка точек, байт за байтом, строка за строкой. Файлы, где графическая информация сохранена таким способом, часто называют RAW-файлами (raw переводится как «сырые данные»). Размер места хранения для такого файла можно вычислить по количеству точек в картинке (размерам растра bitmap N x M) и глубине цвета каждой точке в битах (B). Вот формула для вычисления размера файла:
N * M * B
Здесь N и M это количество точек (пикселов) картинки по горизонтали и вертикали, и B это количество бит, которыми закодирован каждый пиксел. В следующей таблице показаны размеры файлов картинок bitmap, если они будут сохранены в формате RAW.
размер картинки глубина цвета размер файла
Как можно увидеть из таблицы, формат 24 бита на точку дают файлы большого размера, в этом случае применение компрессии файла становится важным. Есть множество вариантов сжатия (компрессии) изображений bitmap от очень простых до весьма сложных. Но всегда имеется два основных формата при использовании сжатия — lossless (когда файл сжимается без потерь, что дает самое лучшую передачу оригинальной картинки) и lossy (когда теряется некоторая часть графической информации). Ниже показана основная иерархия техник компрессии.
Самый грубый способ уменьшить размер файлов — ухудшить кодирование информации цвета, это так называемая техника редукции бит (bit reduction), или квантизация (quantization). Один из примеров — преобразование растра 24 bit bitmap в 8 bit indexed bitmap с использованием дизеринга для симуляции потерянных цветов. Наиболее известен среди форматов с потерями формат JPEG, и описание его работы выходит за рамки нашего обсуждения. Его основное преимущество в том, что он может предложить намного большую степень сжатия, чем форматы сжатия без потерь. Для примера рассмотрим следующую картинку bitmap с оригинальным размером 500 x 350 пикселей и 24 битами кодирования цвета на точку. По формуле для формата RAW размер не сжатого файла получится 500 x 350 x 24 / 8 / 1024 = 513 килобайт.
Сохранение этой же картинки в формате с градациями серого (редукцией бит) даст размер 171 килобайт (в 3 раза меньше), сохранение с сжатием RLE даст 388 килобайт (75% от оригинала), сохранение со сжатием LZW даст 188 килобайт (36% от оригинала), и сохранение в JPEG даст 30 килобайт (коэффициент сжатия 17:1).
Ниже мы рассмотрим пример самой простой техники сжатия без потерь, которая называется кодирование длины (run length encoding, RLE). Эта техника дает хороший выигрыш на картинках, где небольшое количество цветов. Предположим, что у нас есть маленькая картинка размером 16 x 10 пикселей, с кодированием цвета 8 бит.
Если картинка была сохранена в RAW, то для неё понадобится 16 байт на строку, всего 10 строк, т. е. 160 байт. Однако, как можно увидеть, первые две строки содержат точки одного и того же уровня, так что более эффективно сохранить количество точек и их уровень, чем сохранять уровень каждой точки по отдельности. Таким образом, на каждую строку вместо 16 байт можно оставить только 2 байта.
В формате raw первые 3 строки будут выглядеть так:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
С использованием сжатия RLE данные этих трех строк будут закодированы так:
16 0
Конечно, актуальная реализация RLE содержит более сложный алгоритм, однако основной принцип кодирования при сжатии именно такой. Чтобы с помощью RLE получить большую степень сжатия, нужно чтобы на картинке повторялось большое количество одинаковых соседних точек, что будет вряд ли полезно для сохранения высококачественных фотографий с глубиной цвета 24 бита.
[Форматы файлов растровых изображений]
Следующий список дает краткое описание некоторых форматов, широко применяющихся для сохранения bitmap.
Используется на платформах: главным образом поддерживается на Mac/DOS-WINDOWS/Unix. Владелец: Aldus Примечания: TIFF является интернациональным стандартом для сохранения картинок и обмена ими между приложениями и аппаратными платформами. Поддержка этого формата почти всегда есть на многих приложениях, которые позволяют манипулировать растровыми изображениями. Формат состоит из элементов, называемых тэгами, что определено в стандарте. За каждым тегом следует другой тэг, получается зависящая от содержания тэгов структура данных. Поддерживаются большинство вариантов глубины цвета и методов компрессии.
Используется на платформах: изначально на DOS-WINDOWS. Владелец: ZSoft Corp Примечания: самый старый и наиболее широко используемый формат на компьютерах с DOS. Может поддерживать индексированный цвет 24 бита. Кодируется только по принципу RLE.
Используется на платформах: наиболее часто поддерживается на Mac/DOS-WINDOWS/Unix. Владелец: CompuServe Примечания: GIF также является очень популярным форматом. Чаще всего он используется на билбоардах и в Интернет. Кодирование ограничено 8 бит на точку с применением индексации цветов (палитра), для компрессии используется LZW. Может содержать в себе несколько изображений и текстовые оверлеи, поддерживается прозрачность, и также может содержать в себе несколько картинок, что позволяет делать анимацию изображений.
Используется на платформах: исключительно Mac. Владелец: Apple Примечания: PICT используется только на компьютерах Macintosh. Реализация PICT на Macintosh работает на уровне операционной системы, и поддерживается всеми приложениями Macintosh. Этот формат отвечает за обмен изображениями на Macintosh и используется в операциях cut/copy/paste. Поддерживаются большинство пространств цвета и методов сжатия, включая JPEG.
Используется на платформах: наиболее часто поддерживается на Mac/DOS-WINDOWS/Unix. Владелец: владельца нет, формат свободен от патентов Примечания: очень полезный формат, который получает все больше поддержки в сети WWW. Поддерживается глубина цвета до 48 бит, передача уровней серого до 16 бит. Применяется много схем компрессии, включая даже определенные пользователем.
Используется на платформах: все платформы Владелец: владельца нет Примечания: это самый простой метод для сохранения картинок из всех, просто сохранение «сырых» (raw) байтов. Часто используется в фотокамерах для записи изображений. Например, один байт на точку для greyscale или 3 байта на точку для цветов RGB. Не существует единого стандарта на заголовок файлов RAW, это может определять сам производитель фотографического оборудования.
Используется на платформах: все платформы, изначально на UNIX Владелец: владельца нет Примечания: это несколько больше, чем простой raw формат, имеются некоторые согласованные части заголовка. Обычно используется для картинок 8 бит greyscale или цветных 24 bit RGB.
Используется на платформах: главным образом исключительно на DOS/Atari Владелец: Digital Research Примечания: поддерживается операционной системой GEM.
Используется на платформах: главным образом исключительно Amiga Владелец: Electronic Arts Примечания: поддерживается 4-битная таблица цветов и 24-битные цвета.
Используется на платформах: смешанная поддержка на Mac/DOS-WINDOWS/UNIX Владелец: TrueVision Inc Примечания: изначально разработана для плат захвата изображений VISTA. Несколько больше, чем простой RAW-формат, есть заголовок с дополнительной информацией.
Используется на платформах: главным образом DOS-Windows Владелец: MicroSoft Примечания: формат MicroSoft Windows, раньше использовался в основном только на ней, но потом благодаря своей простоте обрел популярность. Несжатые варианты особенно удобно использовать на маломощных встраиваемых системах. Поддерживаются глубина цвета от greyscale 1, 2, 4, 8 бита на точку до 32 битных цветных изображений.
Используется на платформах: Primarily Sun Владелец: Sum MicroSystems Примечания: Only supported by Sun. Use RLE and either 8 bit greyscale or 24/32 bit colour.
Используется на платформах: в основном платформа X system Владелец: MIT X Corp Примечания: специально для программной реализации отображения растровых картинок в оконной системе X windows, используется для курсоров и иконок.
Используется на платформах: в основном платформа X system Владелец: MIT X Corp Примечания: формат сохранения экрана в X windows. Поддерживается глубина цвета от монохрома до 24 бит на точку с прямым кодированием цветов.
[Ссылки]
1. A Beginners Guide to Bitmaps site:paulbourke.net, written by Paul Bourke. |
Постфильтр
«22-битный цвет»… «постфильтр»… Эти лозунги от компании 3dfx нам известны уже давно. Ещё на заре аппаратной 3D-эры революционный Voodoo Graphics обладал оптимизированным 16-битным цветом. Но как, где и почему он оптимизирован, было неизвестно. Развитие шло, и только при появлении игр с реально заметной разницей между 16-битным и 32-битным цветом некоторые пользователи стали замечать, что картинка, которую дает Voodoo3, у них на мониторе и тот же скриншот различаются. Тогда-то и вспомнили и про 22-бита, и про постфильтр. Мы постараемся разобраться, как реализуется 22-битный цвет, зачем он нужен, где находится постфильтр и насколько эффективен оптимизированный 16-битный цвет, в сравнении с обычным 16-битным цветом и 32-битным цветом. Самый популярный видеочип со встроенным постфильтром — естественно Voodoo3. Его и примем за объект рассмотрения. Хотя постфильтр — это некоторая технология увеличения качества графики, и единственная связь этой технологии и фирмы 3dfx заключается в том, что именно эта фирма впервые реализовала постфильтр в своих чипах. Технология является открытой, и не исключено, что ещё какая-нибудь фирма разработает видеочип со встроенным постфильтром.
В последнее время постфильтр несколько потерял свою актуальность, особенно в свете того, что новые карты 3dfx — Voodoo4 и Voodoo5 поддерживают 32-битный цвет. Но у них же и остался 16-битный цвет, а в нем постфильтр опять-таки реализован. С другой стороны, в то время как 3dfx использует оптимизированный 16-битный цвет, ATi, похоже, вообще бросила 16-битный цвет и сосредоточилось на 32-битном. А та же nVidia держится в середине, и «дает» чистый 16-битный цвет и чистый 32-битный. Кто, из них прав, не нам судить. А мы приступим к рассмотрению постфильтра.
Глубина цвета
16-бит, 24-бита, 32-бита, True Color, High Color… Что всё это значит? Те, кто знает ответ на этот вопрос, могут перейти к следующей части статьи. Для всех остальных мы объясним, «кто есть кто».
Итак, эра компьютерной графики началась с монохромного монитора. Там всё было просто. Один бит на цвет. Единица — белая точка, ноль — черная. Один байт — восемь пикселей (вот экономия-то где!). Следующий шаг — цветные мониторы. Но каким образом — вспомнить страшно. Два бита на пиксель, или четыре цвета. Дальше уже легче. 4 бита на цвет, итого 16-цветовой режим. После — 256 цветов (один байт — одна точка). И наконец — 16-бит, впоследствии названный High Color. Но бит 16, а цветовых каналов 3. 16 на 3 не делится. А 15 на 3 делится. Первые реализации High Color имели следующую организацию цвета пикселя:
Младший (нулевой) бит не использовался. А на каждый цветовой канал приходилось по пять бит. Используя три цветовых канала (RGB) можно получить любой цвет (например, желтый цвет получается из соотношения 1:1:0, белый — 1:1:1, а черный 0:0:0).
Но пересылка и хранение цвета пикселя происходило по 2 байта, а это 16 бит, а не 15. Вскоре, нашли применение всем 16 битам. И организация цвета пикселя сменилась:
Получилось по 5 бит на красный и синий цветовые каналы, и 6 бит на зеленый. Таким образом, наиболее точно представляется зеленый цветовой канал. Почему именно зеленый? Да потому, что человеческий глаз наиболее чувствителен к перепадам зеленого цвета. Эта модель цвета пикселя High Color используется до сих пор.
Но High Color недостаточно точная система представления цвета. Человек видит около 10 миллионов цветовых оттенков, а High Color режимы передают только до 65536 цветов. Для отображения 10 миллионов цветов используются True Color режимы (отсюда и название — реальный цвет). True Color режимы для кодировки цвета используют 24-бита — по байту на цветовой канал. Это позволяет закодировать до 16 777 216 цветов, что более чем в полтора раза перекрывает естественный предел в 10 миллионов. Некоторые карты имеют 24-битное (3 байта) представление True Color цветов. Но хранить, искать и передавать информацию по три байта достаточно неудобно (и аппаратно, и, в первую очередь, программно). Деление на три трудоемко, а делить на число, образованное степенью двойки, легко. Поэтому подавляющее большинство видеокарт имеет 32-битное представление цвета. Не стоит думать, что оно более точное, чем 24-битное. Так как 24-бита хватает с избытком, то в 32-битном представлении так же на каждый цветовой канал выделяется по одному байту, а младший байт (разряды 0-7) не используется, или хранит системную или пользовательскую информацию, но реально в отображении цветов не участвует.
Такие же цветовые режимы используются и в 3D-графике. Так конечное изображение (2D) формируется либо в 16-битном, либо в 32-битном цвете. В процессе рендеринга участвуют текстуры, которые, по сути дела, являются 2D-изображениями. Обычно видеоакселераторы воспринимают 16-битные или 32-битные текстуры. Формат хранения цвета пикселя каждой текстуры совпадает с рассмотренными форматами. В 32-битной текстуре младший байт (разряды 0-7) может содержать информацию о прозрачности данной точки текстуры, образуя таким образом буфер шаблонов. В 16-битной текстуре буфер шаблонов может быть однобитным, и тогда на цветовые каналы остается 15 бит. Если недостаточно однобитного буфера шаблонов, то используют схему 4 бита на красный, 4 бита на зеленый, 4 бита на синий и 4 бита на уровень прозрачности. Конечно же, такого качества недостаточно и поэтому с текстурами, содержащими буфер шаблонов рекомендуется работать в 32-битном цвете.
Естественно, 16-битный и 32-битный режимы взаимозаменяемы. Только 16-битный цвет дает более низкое качество. 16-битную картинку без потери качества можно отобразить в 32-битном режиме. Для этого каждому цветовому каналу 32-битного цвета ассоциируется цветовой канал 16-битного цвета, который имеет меньшую разрядность. Каждый цветовой канал 16-битного записывается в верхнюю часть цветового канала 32-битного цвета.
Естественно, что процесс преобразования 32-битной картинки в 16-битную происходит с потерей качества. Так биты 27-31 из формата 32-бита записываются в биты 11-15 16-битной картинки. Далее схема перевода аналогична. Таким образом, теряются младшие биты каждого цветового канала и дискретность зеленого канала возрастает в четыре раза, а красного и синего канала возрастает в восемь раз.
Какой глубины цвета достаточно?
Для 2D изображения — все просто. High Color — приемлемое качество, True Color — идеальное. 2D изображение поступает на экран уже в готовом виде, а 3D рендерится в реальном времени. Когда 3D картинка рендерится в один-два прохода, то в High Color мы получаем такое же приемлемое качество, как и в 2D. Качество и сложность 3D-игр возрастает, появляется множество эффектов в виде дыма, тумана, облаков, огня, лучей света и т.п. Такие эффекты обычно накладываются в несколько проходов через альфа-канал на непрозрачные объекты.
Допустим, что в результате рендеринга на части экрана создался непрозрачный объект, например стена.
Теперь, пусть на этот сегмент будут наложены ещё две прозрачные «фигуры» (например освещение и дым). В результате чего должно получиться следующее:
Однако, генерация разных объектов (типа стена и дым) в пределах одного сегмента происходит за несколько проходов. В нашем случае это генерация в два прохода. В результате чего мы получаем следующую картину:
В результате чего мы получаем близкое к идеальному изображение, но нетрудно заметить отличие.
И такое различие заметно уже при двухпроходном рендеринге. А что же будет при четырехпроходном? Но самое страшное не в этом. При смешивании цветов часто получаются нецелые значения (например, два цвета 6 и 7 при смешивании с альфа-коэффициентом 0.5 дают результат 6.5). Дело в том, что в рассмотренных нами примерах мы постоянно округляли полученные значения до ближайшего целого. Большинство же видеокарт в алгоритме смешивания не используют избыточную логику, вследствие чего округления не происходит и результат получается удручающий:
Сравним все три полученные результаты — однопроходный с округлением (идеальный), двухпроходный с округлением и двухпроходный без округления:
Как видим, наиболее отличный от идеала последний. В первых двух случаях границы между цветами максимально плавные, тогда как в последнем такое правило нарушается и уже сам по себе неидеальный 16-битный цвет выдает ещё более грубую картинку. Большинство видеокарт в 16-битном режиме не используют округление при смешивании, однако для повышения качества используют технологию дизеринга (а некоторые даже не используют дизеринг).
В 32-битном цвете ситуация немного другая. Некоторые видеокарты последних поколений используют избыточную логику для округления результата при смешивании цветов и качество графики при этом получается очень высоким. Другие видеокарты используют все 32 бита, где, как и в обычной схеме, в старших 24 битах хранятся реальные цвета, а биты избыточности (дробные части цветов) хранятся в младших 8 битах. Такая схема наиболее предпочтительна, но, к сожалению, просто мизерная часть современных видеоакселераторов поддерживают данную схему. И, наконец, некоторые видеокарты (их, слава богу, меньшинство) используют схему смешивания без округления с дизерингом (как и в 16-битном цвете). Есть ещё несколько схем реализации смешивания цветов, но я лично не встречал видеокарты, реализующие подобные алгоритмы, поэтому рассматривать их не будем.
В итоге, уже при двухпроходном рендеринге мы наблюдаем некоторое отклонение от нормы как в 16-битном, так и 32-битном цвете. Современные программы создают сцену за относительно малое число проходов, и для нас 32-битный цвет кажется идеальным. Но, с усложнением сцен мы сможем увидеть недостатки и в 32-битном цвете. А такое будущее уже не за горами, — уже в DOOM-3 планируется рендеринг с наложением 6-8 текстур на треугольник, и это без учета дополнительных эффектов типа блики, дым, огонь, облака и им подобных. И при реализации трилинейной фильтрации используются два текстурных модуля акселератора, а это значит, что при рендеринге такого «сложного» треугольника придется накладывать уже 12-16 текстур, а ни один современный акселератор в один проход этого не сделает. Сам же Джон Кармак, постоянно работая с главными разработчиками видеочипов, предлагает в будущих проектах использовать 64-битный цвет. Это поможет помимо 8 бит реального цвета на цветовой канал хранить ещё и 8 бит дробной части для каждого цветового канала, тем самым обзавестись идеальным качеством. 64-битный цвет дает огромный запас по избыточности, что делает его высококачественным ещё как минимум на шесть лет. Но, к сожалению, ни один современный непрофессиональный видеочип не поддерживает 64-битного цвета, и в ближайшем будущем такого видеочипа не ожидается.
Как изображение из видеопамяти попадает на экран
Те, кто знает ответ на этот вопрос, могут переходить к чтению следующей части. Остальных же прошу слушать внимательнее, потому что мы все ближе и ближе подходим к сущности работы постфильтра.
Итак, идея в том, что обычный CRT-монитор получает аналоговые сигналы, а в памяти видеоадаптера информация хранится в цифровом виде. Front Buffer должен постоянно и непрерывно показываться на мониторе. А его показом занимается RAMDAC. А точнее, последовательным преобразованием цифрового значения каждой его точки в аналоговый сигнал. Обычный RAMDAC состоит из двух основных блоков. Первый — блок выборки из памяти. Он выбирает из участка памяти, где храниться Front Buffer, последовательно цвета всех пикселей (для упрощения не будем рассматривать 1-, 2-, 4- и 8-битные цветовые режимы). Обычно он же временно сохраняет эти данные в кэше, что ускоряет процесс обращения к памяти. Главная задача этого блока постоянно предоставлять информацию о цветах следующего пикселя в порядке следования луча по экрану монитора — слева направо, сверху вниз. Следующий блок — это DAC (по-русски — ЦАП). Он синхронизируется с монитором, и каждый такт выводит комбинацию аналоговых сигналов, соответствующих цвету точки, полученному от предыдущего блока. Казалось бы, все просто. Но, как мы помним, видеокарта может работать в разных цветовых режимах. Поэтому большинство видеоакселераторов содержат в блоке DAC несколько наборов логики. Чаще всего это DAC8, DAC15, DAC16, DAC24 и DAC32 (DAC8 отвечает за палитезированные режимы и поэтому работает как с 256-цветовым режимом, так и с 16-, 4- и 1-цветовым). Некоторые видеокарты могут не содержать некоторые наборы (например, DAC15 или DAC24).
Вот и всё. Вот так работает RAMDAC, и так часть видеопамяти под названием Front Buffer попадает к нам на экран.
Дизеринг
Теперь перейдем к технологии дизеринга (dithering). Так как она нашла свое основное применение именно в 16-битном цвете, то его и рассмотрим. Каждый текстурный конвейер в видеочипах, работающих с High Color режимом, имеет разрядность 24 бита, т.е. по 8 бит на цветовой канал. Такую же разрядность имеет и модуль смешивания цветов. Эффективная же их разрядность 22-бита (знакомо?). Это значит, что какую бы разрядность не имели эти модули, на их выходе реально используются только 22 бита. То есть 7 бит на красную, 8 бит на зеленую и 7 бит на синюю составляющие. Но, как мы помним, мы сейчас генерируем 16-битную картинку, а это значит, что 6 бит у нас лишние. Их можно просто отбросить. Если сделать это, то есть при пересылке не пересылать два младших бита от каждой цветовой составляющей, то мы получим 16-битную картинку без дизеринга. А выглядит это так:
Бяка, одним словом. Слишком явные границы между соседними цветами. А ведь смешивание происходит с более высокой точностью, и именно эту точность мы «отбрасываем» вместе с шестью «лишними» битами. А ведь их можно учитывать. И делается это очень просто. Рассмотрим пример для красной составляющей (как мы видим, наша картинка именно красного цвета, а на самом деле это кусок неба из Quake3:Arena). После генерации реального цвета точки на части выходов блока смешивания появляется 8 бит определяющие красный цвет. Из них мы точно берем старшие шесть бит. Например, эти шесть бит определяют значение 27. Но нам так же интересны и оставшиеся два бита. Если там ноль, значит мы имеем дело с реальным цветом 27, его и ставим. Если два младших бита равны единице, то реальный цвет 27.25, т.е. на четверть больше. И тогда, если точка ставиться на нечетную координату экрана X и четную координату экрана Y, то на это место ставится цвет на единицу больший по интенсивности, в нашем случае 28. Таким образом, на поле из цвета 27 каждая четвертая точка имеет значение 28, т.е. среднее значение цвета поля получается 27.25, что нам и нужно. Если два младших бита, равны 10b (двум), то реальный цвет точки 27.5. Таким образом, уже каждая вторая точка должна иметь значение на единицу больше. Условие усложняется. Если точка ставится на нечетную координату экрана X и четную координату экрана Y, или на четную координату экрана X и нечетную координату экрана Y, то на это место ставится цвет на единицу больший по интенсивности (у нас 28). Аналогично строится условие, в случае, когда младшие два бита равны 11b (тройке). Если точка ставится на нечетную координату экрана X и четную координату экрана Y, или на нечетную координату экрана X и четную координату экрана Y, или на четную координату экрана X и четную координату экрана Y, то на это место ставится цвет на единицу больший по интенсивности. В этом случае на поле из цвета 28 остается каждая четвертая точка 27. И наша картинка (часть неба Quake3) будет выглядеть уже иначе:
Это та же картинка, но уже с дизерингом. Эта картинка ещё и увеличена, для того чтобы была отчетливее видна сеточка дизеринга. В реальном масштабе сеточка заметна ещё меньше, так как глаз видит уже достаточно однородное поле. Отодвиньтесь дальше и вы сами увидите это.
Алгоритм дизеринга можно представить и графически. Таблица ниже показывает, как изменяются четыре соседних точки в зависимости от двух младших битов. В позициях точек указано приращение к базовому цвету, записанному в старших битах.
Такая схема дизеринга называется Ordered. Именно её и использует Voodoo3. Существуют и другие способы дизеринга (другие маски, алгоритмы), но именно Ordered наиболее эффективен, если в видеочипе встроен постфильтр.
Постфильтр
Посмотрим ещё раз на небо Quake3, а точнее на его часть.
Мы видим, как работал дизеринг, и можем с большой уверенностью сказать, какие цвета на самом деле были на выходе блока смешивания, и со стопроцентной вероятностью сказать какие цвета «увидит» наш глаз (не забываем о том, что глаз смешивает соседние невыделенные цвета). Если мы можем определить, какие цвета должны стоять на месте каждого поля из точек, почему это не может видеокарта? Так заставим же её это сделать. Блок DAC16 модуля RAMDAC читает именно такую картинку. Естественно в его кэш поступает не вся картинка сразу, а только несколько горизонтальных линий. Минимальное количество линий две. Как известно, Voodoo Graphics использует маску постфильтра 1×4. Модели 3dfx, начиная с Voodoo2 и выше, используют маску 2×2. DAC16, используя дополнительную логику, сравнивает соседние четыре пикселя, и увидев знакомую «шахматку» смешивает эти цвета. Естественно смешивается не любые четыре соседних цвета, а только те, которые могли создаться дизерингом. То есть дополнительная логика ищет цвета отличающиеся друг от друга на малое значение. Найдя такие, она проверяет их на соответствие таблице Ordered. Зачем? Ну, представим себе, что логика нашла четыре точки, три из которых имеют одинаковый цвет, а один чуть светлее. Естественно таких комбинаций может быть четыре. Но только одна из них могла быть вызвана постфильтром. Эта более светлая точка должна стоять на координатах с нечетным значением X и четным значением Y. Если условия четности выполняются, то логика считает, что это поле продукт дизеринга и смешивает четыре цвета с повышенной точностью. Таким образом, возможно восстановление двух потерянных бит на выходе блока смешивания и восстановления их с точностью в 22 бита. Дополнительная логика DAC16 и называется постфильтром. Постфильтр производит обработку изображения «на лету» и поэтому не влияет на производительность системы. Для повышения качества постфильтрация производится для каждого цветового канала независимо, а не для всего цвета пикселя. Вероятность смешивания цветов, полученных не дизерингом, крайне мала (на практике меньше одного процента), и даже если смешивание таких цветов произойдет — ничего в этом страшного нет, так как наш глаз так и так был бы обманут и самостоятельно смешал бы соседние цвета. Таким образом, постфильтр — это аппаратно-программный комплекс повышения визуализации графического изображения.
В общих словах схема работы такая. Внутренний рендеринг видеокарты Voodoo3 происходит с 22-битной точностью цвета. При этом в память видеокарты (во Frame Buffer) записывается 16-битная отрендеренная картинка с использованием схемы дизеринга на основе признаков четности координат. После завершения рендеринга RAMDAC читает готовое изображение в кэш и на основе признаков ближних цветов для каждого цветового канала и признаков четности координат восстанавливает 22-битный цвет. На выходе RAMDAC получается набор аналоговых сигналов, которые поступают на монитор. Всего комбинаций аналоговых сигналов — 4194304 (произведенные от 22-битов). Это более чем в два раза меньше, чем способен различить человеческий глаз, но гораздо больше, чем реальный 16-битный цвет (в 64 раза точнее).
Уровень (глубина) постфильтрации
Все просто, не так ли? С учетом признаков четности смешиваются мало отличающиеся цвета с маской 2×2. А что значит мало отличающиеся? Для конечной картинки созданной без наложения нескольких текстур на один участок экрана или с наложением в один проход — все понятно. Разница между отдельными цветовыми каналами в пределах одного поля точек, созданных в результате дизеринга, будет равно единице (см. таблицу схемы Ordered выше). А если наложение происходит за несколько проходов? При использовании буфера шаблонов на каждый цветовой канал текстуры приходится по 4 бита, а это значит, что дискретность (а следовательно и разница между «соседними» цветами) возрастет в два/четыре раза. Разницу (глубину) между цветами, которые постфильтр должен считать соседними, устанавливают драйверами. Это значение называется уровнем или глубиной постфильтра. Глубина постфильтра Voodoo3 равна восьми. Кроме того, на создавшийся регион с некоторой сеткой дизеринга (например, светлые единичные точки) может быть наложено изображение, имеющее другую сетку (например, темные единичные точки). Поэтому при более глубоком уровне фильтрации обычной таблицы Ordered недостаточно и необходимо создать новую с производными сетками, получившихся в результате наложения различных и одинаковых сеток, а так же в результате более грубого представления прозрачных текстур.
Таблица сеток постфильтрации с глубиной восемь очень большая, и для того, чтобы мы просто имели представление о полном наборе сеток, ниже приводится такой для постфильтра с глубиной фильтрации равной трем.
При глубине постфильтра равной трем — вот все комбинации четырех соседних пикселей, которые могут создаться в результате дизеринга однопроходного и мультипроходного наложения. Все остальные комбинации создаются не дизерингом. Аналогично составляется таблица соответствия для постфильтрации с другим уровнем (например, для уровня восемь). Алгоритм поиска и сравнения маски упрощается тем, что из четырех соседних цветов, находящейся в маске слева снизу — самый яркий, а справа снизу — самый темный. Как уже говорилось, сравнение происходит для каждого цветового канала независимо, что положительно сказывается на качестве общей картинки. Естественно, чем выше уровень фильтрации, тем с большей глубиной наложения текстур она происходит. Многие замечали в 16-битном цвете при наложении на одно и то же место нескольких полупрозрачных текстур, появляющуюся сеточку дизеринга. Чем больше произошло наложений, тем заметнее сеточка (увеличивается разность между соседними цветами). Например, дым от ракеты в Quake3. Если Voodoo3 производит постфильтрацию с уровнем восемь, то такой постфильтр уберет сеточку на месте наложения максимум восьми текстур. Однако, чем выше уровень фильтрации, тем выше вероятность смешивания соседних цветов, получившихся не в результате дизеринга. Экспериментально была найдена оптимальная глубина постфильтра. Как ни странно, она равна восьми. При уменьшении уровня фильтрации проявляется сеточка на эффектах. Уже при уровне равным шести дым от ракет в Quake3 был явно решетчатым. При увеличении уровня — появляются артефакты, указывающие на смешивание цветов, которые не должны смешиваться и общая четкость картинки резко ухудшается. Дальнейшее рассмотрение работы постфильтра будем проводить для глубины равной восьми.
Полезность постфильтра
Итак, с теорией разобрались, а как же дела обстоят на практике? Посмотрим на следующие скриншоты. Верхнее изображение — чистый 16-битный цвет, а нижнее с постфильтрацией.
Посмотрим на наиболее интересные фрагменты изображения (начиная справа и по часовой стрелке), сравнивая изображения без постфильтрации (справа) и прошедшие через постфильтр (слева).
Здесь можно отметить отсутствие решетки на небе и на рамке меню. Это же привело к увеличению размеров пикселей. Но в целом картинка смотрится несколько лучше, так как помимо увеличения размера пикселей, разница между границами цветов уменьшилась, так как фактически количество цветов увеличилось в четыре раза. Картинке стала присуща плавность границ между соседними цветами, несмотря на укрупнение пикселей на этих границах. Границы между соседними объектами не изменились. Рамка меню нисколько не изменила свою форму. Сильно заметная сетка на прозрачной части меню была полностью убрана, что существенно отразилось на увеличении качества.
Обратим внимание на цифру «9». Избавившись от решетки, покрывающей девятку, постфильтр не сумел избавиться от «полосатости» цифры. Визуально качество практически не изменилось, а возможно стало немного выше. Полностью убрать решетку со шлема не удалось. Однако даже обработка, прошедшая на части шлема, сделала изображение более плавным, в частности исчезли выбивающиеся из общей картины единичные пиксели. На заднем фоне ворота телепорта (справа) имеют определенный рисунок, который ничуть не пострадал в результате фильтрации, опять же приобретая определенную плавность цветов. Левая часть заднего фона имеет более сложный рисунок, и с ним постфильтр уже не справился, хотя чисто субъективно отфильтрованная картинка мне нравится больше.
А вот тут картина неоднозначная. Да, решетка убрана, но частично. И эта частичность проявляется в виде отдельных пикселей другого цвета на равномерном фоне. Да и рамка меню несколько пострадала. Границы формы стали немного угловаты. Но, фрагмент увеличен, и на картинке «в натуре» эти погрешности особо не заметны. К ним нужно присматриваться, чтобы их найти. Такие явные артефакты проявляются только на полупрозрачных объектах, полученных многократным наложением, а эти объекты в современных программах создают преимущественно динамические эффекты. Поэтому поймать артефакты очень тяжело. Так, (при снятой паузе) телепорт переливался множеством цветов, и в целом заметить ошибки постфильтрации просто не успеваешь.
От этой картинки достаточно приятные впечатления, однако опять по левой кромке рамки меню несколько «оквадратилась» форма. Опять остались единичные пиксели, но они малозаметны. А ворота, приобретя плавность цветов, унаследовали полосатость, за счет того же укрупнения пикселей. Но, опять же на не увеличенной полной картинке все выглядит достаточно мило.
Рассмотрим ещё несколько фрагментов. На этот раз не увеличенных, чтобы составить впечатление от реальной картинки (всегда верхний скриншот это без постфильтра, а нижний с постфильтром).
Трудно найти отличия, однако то, что снизу мне нравиться больше.
Задний план, а так же реализация дыма и вспышек плазмы с постфильтрации выглядят более эффектно.
А вот этот портал постфильтру обработать удалось несколько хуже, чем предыдущий, однако визуальное качество картинки всё же повысилось.
Здесь со своей задачей постфильтр справился просто блестяще.
Существует мнение, что постфильтр приводит к некоторому размытию картинки. Для того чтобы проверить этот слух, рассмотрим «замыленную» часть картинки прошедшую постфильтрацию (нижняя), и не прошедшую (верхняя).
Как видим, этот артефакт присутствует, однако, на не отфильтрованном фрагменте разглядеть дополнительные детали все же не удается. То есть постфильтр не причастен к факту размытия картинки. Тем более, что на расположенной чуть дальше нечеткого пола стены в точности сохранены все детали. То, что постфильтр замыливает изображение — оказалось не больше чем очередным мифом.
Спрашивается, зачем всё это нужно? Не лучше ли использовать настоящий 32-битный цвет? На самом деле не всегда лучше. Как известно, главная болезнь современных видеокарт — малая полоса пропускания шины данных. А для 16-битного цвета необходима полоса в два раза уже, чем для 32-битного. Таким образом, там, где видеокарта в 32-битном цвете уже не справляется (а такое ПО уже существует для самых мощных современных ускорителей) её можно перевести в 16-битный цвет. И приятно, если в этом режиме работает постфильтр, так как визуально качество картинки несколько увеличивается.
Однако я не могу не удержаться и не продемонстрировать насколько важен 32-битный цвет в серьезных сценах.
nVIDIA RivaTNT2 16-bit 3dfx Voodoo3 16-bit
nVIDIA RivaTNT2 32-bit
Действительно, за 32-битным цветом будущее. Но, возникает логичный вопрос, почему бы не использовать постфильтр и в 32-битном цвете. Ответ прост. Там он бесполезен. Не забываем, что постфильтр увеличивает количество цветов с 16-бит до 22-бит. Следовательно, в True Color режимах он будет увеличивать количество цветов с 24-бит до 30-бит, и даже если он будет включен, то человеческий глаз просто не увидит разницы.
Та же 3dfx сейчас увлеклась 32-битным цветом и перестала оптимизировать 16-битный цвет, а совершенствоваться ещё есть куда. Так, можно использовать другие маски (не Ordered), увеличить размер маски (хотя бы до 4×4, правда при этом придется существенно усложнить алгоритм фильтрации) и многое другое. Но, как говорилось, за 32-битным цветом будущее, и так как 16-битный цвет у 3dfx уже оптимизирован, им теперь со спокойной душой можно заняться 32-битным цветом. Очень жаль, что другие компании так и не обратили внимания на постфильтр в 16-битном режиме, ведь при минимуме затрат это может привести к существенному увеличению качества 16-битной графики. Ведь процесс перехода к эре True Color игр будет проходит плавно и ещё достаточно долгое время. Для тех кому постфильтр мешает, можно просто отключить его в драйверах. Драйверами теоретически можно и изменять глубину фильтрации, однако 3dfx не включила эту опцию в драйверах (может и к лучшему).
Возникает последний вопрос. Есть ли альтернатива постфильтру? Есть, и она уже существует. Это FSAA (антиалиазинг). При правильной реализации, конечно. FSAA может ещё много на что повлиять. Это избавление от постфильтра, алиазинга, бесплатная анизотропная фильтрация и многое другое. Пока же FSAA не бесплатен, можно довольствоваться постфильтром. Хотя все же будущее за FSAA. Но это уже совсем другая история…
Изменение глубины цвета с помощью Фотоконвертера
С помощью настройки глубины цвета вы можете значительно изменить ваши изображения. Последняя версия Фотоконвертера позволяет совершать такие
изменения в пакетном режиме — буквально 3 шага и ваши изображения настроены.
Функция настройки глубины цвета подразумевает настройку количество цветовых оттенков и тонов, которые
содержаться в изображении. Разные типы экранов имеют разные возможности по просмотру количества цветов.
Например, до середины 1990-х компьютеры не поддержали цветовую систему 8-бит, они могли показывать только 256 цветов.
В настоящее время, большинство компьютеров поддерживают «True color» или 24-битный цвет, который означает, что они могут отображать почти 17 млн цветовых сочетаний между сотнями оттенков красного, зеленого и синего.
Изменение глубины цвета ваших изображений это также отличный инструмент для
корректировки их размера.
Установить Фотоконвертер
Откройте изображения в Фотоконвертере
Откройте одно или несколько изображений, которые вы желаете настроить. Вы
можете выбрать их по одному или добавить целыми папками.
Настройте глубину цвета
Перейдите к вкладке Редактировать и нажмите + действие → Корректировка цвета → Глубина цвета.
В этой вкладке вы можете экспериментировать с количеством бит, используемых для представления цветовых значений.
В зависимости от ваших изображений, вы можете увеличить или уменьшить
количество цветов в изображении от 2 до 256, а так же использовать опции конвертации в 14 и 24 бита.
Другие варианты включают в себя превращение цветовой гаммы в серую или в негатив. В
режиме реального времени можно проверить все изменения настройки глубины
цвета, для этого, поставьте галочку в окне предварительного просмотра,
размер которого также настраивается.
Сохраните результат
Перейдите к опции сохранения и выберите место для измененных
изображений. Далее, выберите формат сохранения новых изображений.
Фотоконвертер это мощное программное обеспечение для обработки изображений которое поддерживает
более 50 форматов сохранения. Просто
нажмите на одну из кнопок в нижней части окна, или нажмите кнопку +,
если вы не не нашли нужный вам формат.
Затем нажмите Старт и ваши файлы в скором времени будут готовы!
Видео инструкция
Попробуйте бесплатную демо-версию
Если у вас возникли сложности или появился вопрос о работе Фотоконвертера — напишите в службу поддержки пользователей. Мы уделяем внимание каждому входящему сообщению, помогая пользователям решать их задачи и справляться с возникшими трудностями. Центр поддержки работает ежедневно, ни один пользователь не останется без внимания.
Интерфейс командной строки
Опытные пользователи могут изменять глубину цвета из командной строки в ручном или автоматическом режиме.
Фотоконвертер Про позволяет работать с любыми инструментами через консольную утилиту cons_rcp.exe
Использование консольной команды для изменения глубины цвета:
cons_rcp.exe -s "C:\Путь_к\input_file.jpg" -o "C:\Путь_к\output_file.jpg" -change_to_high
Инструкция:
-change_to (changes color resolution) Параметры: 1. Количество цветов (Синтаксис: 16, целое число от 2 до 256) Пример: -change_to 128 -change_to_true (changes color resolution to True colors (24 bit)) -change_to_gray (changes color resolution to Gray (8 bit)) -change_to_high (changes color resolution to High colors (16 bit)) -change_to_gray24 (changes color resolution to Gray (24 bit)) -change_to_negative (makes negative color transformation)
Консольная утилита для изменения глубины цвета предназначена для профессионального использования и входит в состав версии Про.
- (CLI) Описание командного интерфейса Фотоконвертера
Скачать Фотоконвертер Про
Что такое битовая глубина? »Изображения» Windows »Tech Ease
Битовая глубина относится к информации о цвете, хранящейся в изображении. Чем выше битовая глубина изображения, тем больше цветов оно может сохранить. Самое простое изображение, 1-битное изображение, может отображать только два цвета: черный и белый. Это потому, что бит 1 может хранить только одно из двух значений: 0 (белый) и 1 (черный). 8-битное изображение может хранить 256 возможных цветов, а 24-битное изображение может отображать более 16 миллионов цветов. По мере увеличения глубины цвета размер файла изображения также увеличивается, поскольку для каждого пикселя изображения необходимо сохранить больше информации о цвете.
Когда вы сохраняете (или экспортируете) изображение в формате GIF или PNG, вы можете выбрать разрядность итогового файла. С некоторыми типами изображений, которые, естественно, имеют мало цветов, такими как логотипы или простой дизайн, вы можете значительно уменьшить размер файла изображения без ухудшения качества изображения. Для других изображений (особенно с градиентами) уменьшение количества цветов в изображении сильно ухудшит качество изображения.
Примеры ниже демонстрируют взаимосвязь между битовой глубиной и качеством изображения.Мы взяли небольшую деталь из нашей любимой иллюстрации робота-жонглера и экспортировали ее с разной глубиной цвета. Изменения будут наиболее заметны в градациях цветов шляпы.
24-битный цвет: 2 24 = 16 777 216 цветов, 45 КБ
8-битный цвет: 2 8 = 256 цветов, 17 КБ
7-битный цвет: 2 7 = 128 цветов, 13 КБ
6-битный цвет: 2 6 = 64 цвета, 10 КБ
5-битный цвет: 2 5 = 32 цвета, 8 КБ
4-битный цвет: 2 4 = 16 цветов, 6 КБ
3-битный цвет: 2 3 = 8 цветов, 5 КБ
2-битный цвет: 2 2 = 4 цвета, 4 КБ
1-битный цвет: 2 1 = 2 цвета, 3 КБ
Пример изображения из коллекции иллюстраций роботов FCIT на веб-сайте TIM.
Понимание 8-битных и 16-битных фотографий для начинающих
Вы, наверное, слышали о разнице между съемкой в формате RAW и JPEG, верно? Но слышали ли вы о разнице между 8-битным изображением и 16-битным?
Эти две вещи тесно связаны, но многие фотографы не хотят углубляться в математику.
И это нормально — я тоже решил изучать искусство отчасти, чтобы уйти от чисел. Тем не менее, они могут быть полезны в фотографии.
Выражаясь очень просто, 16-битное изображение позволяет выполнять более экстремальное редактирование без потери качества и детализации. Но это не значит, что это всегда лучший вариант.
Теперь, когда я, надеюсь, пробудил ваш интерес, позвольте мне дать вам более глубокое объяснение, чтобы вы лучше понимали 8-битные и 16-битные изображения, включая плюсы и минусы каждого и когда их использовать.
Что такое битовая глубина?
Цифровая информация хранится в виде единиц или нулей. Каждый из них называется битом.Теперь однобитное изображение может быть только черно-белым, потому что 1 бит может быть черным, только если он равен 1, или белым, если он равен 0.
Нет промежуточных значений тона и других цветов. Когда вы добавляете в него дополнительную информацию, глубина цвета растет экспоненциально.
Итак, 8-битное изображение не имеет 8 цветов. Вместо этого он может содержать 256 тональных значений в трех разных каналах (красном, зеленом и синем). Это равняется 16,7 миллионам цветов.
16-битное изображение имеет 65 536 тональных значений в тех же трех каналах.Это означает 281 триллион цветов.
32-битное изображение имеет 4294967296 тональных значений, и позвольте мне сказать вам, я даже не знаю, как это читать. Если затем умножить его на три канала… ну, вы поняли.
Итак, что это значит для вас в реальной фотографии?
Когда вы фотографируете, вы можете выбирать между съемкой в формате JPEG, который генерирует 8-битные изображения, или RAW, который дает вам изображения размером от 12 до 14 бит, в зависимости от камеры, которую вы используете.
Итак, это первое, на что влияет битовая глубина. Затем вы должны подумать, как вы хотите редактировать свои изображения.
В Photoshop вы можете выбрать работу в 8-битном, 16-битном или 32-битном режимах, и это определит, насколько сильно вы можете вносить изменения, прежде чем потеряете качество или получите артефакты, такие как полосы.
Давайте посмотрим, в чем разница и когда следует использовать каждый из них.
В чем разница между 8-битным, 16-битным и 32-битным?
Битовое представление канала
Как я упоминал ранее, фотографии в формате JPEG представляют собой 8-битные изображения.Когда вы откроете их в Photoshop или любой другой программе для редактирования, они останутся в 8-битном режиме.
Даже если вы измените рабочее пространство на 16- или 32-разрядный режим, не будет никакой дополнительной информации для работы. Однако вы можете конвертировать JPEG в RAW с помощью специализированного программного обеспечения.
Во многих случаях это нормально, поскольку человеческий глаз не может видеть все 16,7 миллиона цветов, которые имеют эти типы изображений.
Проблема в процессе редактирования. Если вам нужно внести изменения — например, исправить сильно недоэкспонированное (или переэкспонированное) изображение — вы начнете терять качество.
Одна из наиболее заметных проблем, с которыми вы сталкиваетесь в этой ситуации, — это цветовые полосы, которые появляются в областях оценки, которые должны выглядеть гладкими.
Положительным моментом является то, что у вас будут доступны все инструменты Photoshop, а размер файла будет в пределах нормы.
16-битный режим — это то место, где вы хотите редактировать изображения RAW. Изображения, снятые в режиме RAW, имеют размер 12 или 14 бит (это зависит от камеры). Вы можете найти эту информацию в своем руководстве или выполнив простой поиск в Google.
Если вы откроете их как 8-битные, вы потеряете большую часть своего потенциала, потому что дополнительная информация, которую они собирают, теперь сжата.
Когда вы открываете их в 16-битном режиме, у вас будет достаточно «места» для работы со всеми цветами, тонами, деталями и качеством, присущими вашему изображению RAW.
Это означает, что ваши файлы будут больше, и, к сожалению, некоторые инструменты Photoshop недоступны в этом режиме.
Тем не менее, если вы можете выбирать между 8-битной или 16-битной глубиной, всегда выбирайте 16 бит.
Наконец, в Photoshop доступен 32-битный режим, но ваш файл по-прежнему будет 12- или 14-битным изображением.
Итак, этот режим очень ограничен в использовании и станет для вашего компьютера испытанием. Тем не менее, для некоторых конкретных случаев это действительно того стоит.
Если вы делаете HDR-изображение, лучше работать с 32-битным цветом. Это потому, что у вас есть информация из трех (или более) 14-битных изображений.
Таким образом, количество деталей, которые вы можете восстановить из светлых участков и теней, просто потрясающее.Некоторые спецэффекты и экстремальное редактирование также лучше в 32-битном цвете.
Что лучше: 16-битный или 32-битный цвет?
Логическим ответом на этот вопрос было бы то, что 32-битный цвет лучше, потому что он содержит больше информации и, следовательно, больше деталей и качества.
Однако практический ответ заключается в том, что с 16-битным цветом лучше работать, за исключением нескольких конкретных ситуаций.
В большинстве случаев лучше работать с 16-битным цветом, потому что в Photoshop будет больше возможностей, ваш компьютер будет работать быстрее, а файлы будут меньше.
Если вам нужно выполнить экстремальное редактирование фотографии, вы можете сделать это в 32-битном режиме, а затем вернуться в 16-битный режим, чтобы продолжить остальную постобработку.
Фактически, как только вы закончите редактирование, вы можете полностью преобразовать его в 8-битное изображение для печати и, конечно же, для публикации в Интернете.
Понимание битовой глубины в файлах изображений
На форумах о камерах обычно используются такие термины, как 8-бит, 10-бит и 14-бит. Но понимаете ли вы, что такое битовая глубина на самом деле и как она влияет на изображения? Вот короткое видео от ZY Productions, объясняющее все, что вам нужно знать о глубине цвета:
Битовая глубина (не путать с битовой скоростью) относится к количеству цветовой информации в изображении.Чем больше битовая глубина, тем больше информации о цвете хранится в этом изображении.
«Чем больше у вас битов, тем больше оттенков серого вы можете записать или отобразить».
Для простоты представьте градиент, переходящий от чисто черного к чисто белому. Все, что находится между ними, имеет оттенок серого. Большая битовая глубина будет означать, что будет больше «шагов» от черного к белому (т.е. переход будет очень плавным).
Обратите внимание, что переход между различными оттенками относительно плавный в этом примере с высокой битовой глубиной.
Напротив, если битовая глубина мала, в нем будет меньше информации, и, следовательно, переход не будет таким плавным.
Переход между различными оттенками не такой плавный на этом изображении с низкой битовой глубиной.
Вычислить количество оттенков серого, содержащихся в определенной битовой глубине, довольно просто. Если битовая глубина представлена n, то общее количество оттенков серого будет 2 n . Например, 8-битное изображение означает, что оно может иметь 2 8 = 256 оттенков серого.А 10-битное изображение может содержать 1024 оттенка серого. Обратите внимание, то, что кажется разницей в 2 бита, на самом деле имеет разницу в 4 раза больше информации.
Вообще говоря, когда мы говорим 8 или 10 бит, это относится к битам на канал (BPC). Цветное изображение состоит из трех каналов: красного, зеленого и синего. Следовательно, 8-битное цветное изображение будет иметь 8 бит красного, 8 бит зеленого и 8 бит синей информации о цвете, что составляет 24 бита информации о цвете.
Обычно камеры снимают изображения и видео в формате JPEG с разрешением 8 бит.Однако фотографии, снятые в формате RAW, содержат по 14 бит информации на канал. Это причина, по которой мы можем экспериментировать с таким большим количеством данных при постобработке с использованием изображений RAW. Разве этой информации недостаточно, чтобы начать съемку в RAW (если вы этого еще не делали)?
Что все это значит?
Гостевой пост Стива Берарди из PhotoNaturalist
В цифровой фотографии много говорят о битах:
- 12-битные и 14-битные аналого-цифровые преобразователи (АЦП)
- 8-битный против 16-битного цвета
- 32-битное против 64-битного Photoshop
Но что все это значит? Хотя большее количество битов обычно означает более качественную обработку, это не всегда так просто.Иногда вам действительно нужно знать всю историю, прежде чем делать выводы.
Прежде чем мы перейдем к этим конкретным примерам, которые распространены в цифровой фотографии, важно понять, что такое немного на самом деле.
Что такое бит?
Слово «бит» происходит от двух слов: двоичного и цифрового. У каждого бита есть два возможных значения: 1 или 0. Иногда полезно думать о бите как о «вкл.» (1) или «выкл.» (0).
Хотя один бит может хранить два возможных значения, последовательность из двух битов может хранить четыре возможных значения: 00, 01, 10 и 11.В последовательности битов порядок имеет значение, поэтому «01» сильно отличается от «10».
Каждый раз, когда вы добавляете бит в последовательность, вы удваиваете количество возможных значений, поэтому, если вы переходите от двух битов к трем битам, вы переходите от четырех возможных значений к восьми возможным значениям.
В качестве примера предположим, что вы хотели сохранить что-то, имеющее 16 возможных значений. В этом случае вам понадобится 4 бита (2 x 2 x 2 x 2 = 16).
Аналого-цифровые преобразователи (АЦП): 12-бит против.14-битный
Каждая цифровая камера оснащена аналого-цифровым преобразователем (АЦП), который преобразует аналоговый сигнал, полученный датчиком, в цифровой сигнал, который создает ваше изображение. Большинство зеркалок в наши дни имеют 12-битный или 14-битный АЦП.
Биты в данном случае относятся к числу возможных значений тона, которые может зафиксировать сенсор вашей камеры. Например, 12-битный АЦП может захватывать 4096 возможных тональных значений для каждого пикселя. С другой стороны, 14-битный АЦП может захватывать 16 384 тональных значения для каждого пикселя.
На первый взгляд может показаться, что 14-битный АЦП — явный победитель: он может захватывать на 12000 тональных значений больше! Но эти два дополнительных бита не увеличивают динамический диапазон вашей камеры, они только добавляют дополнительные шаги в этом диапазоне. Это как если бы вы взяли буханку хлеба и разрезали каждый ломтик пополам, чтобы сделать еще более мелкие ломтики. Теперь у вас может быть больше ломтиков хлеба, но размер буханки остался прежним!
Итак, вы получите немного лучшее качество изображения с 14-битным АЦП, но на самом деле это заметно только в глубоких тенях и плавных градиентах (как на фотографиях заката).
Чтобы узнать больше о 14-битных и 12-битных АЦП, ознакомьтесь с этими полезными статьями:
Цвет: 8 бит Vs. 16 бит
В большинстве программ постобработки у вас есть выбор между 8-битным и 16-битным цветом. Биты в этом случае относятся к количеству возможных тональных значений, доступных для каждого цветового канала (красного, зеленого и синего) каждого пикселя.
Для 8-битных изображений у вас есть 256 возможных значений для красного канала, 256 значений для зеленого канала и 256 значений для синего канала.А с 16-битными изображениями у вас есть 65 536 возможных значений для каждого цветового канала.
Использование 16-битного цвета приведет к довольно большому размеру файла, но оно того стоит, потому что с 16-битной обработкой вы значительно уменьшите свои шансы на постеризацию (как показано на фото ниже). Рекомендуется использовать 16-битный цвет, даже если вы изначально снимали в формате JPEG (который является 8-битным), потому что дополнительные биты помогут уменьшить ошибки округления при выполнении распространенных задач постобработки, таких как кривые или уровни.
Для получения дополнительной информации о 8-битном и 16-битном цвете ознакомьтесь с этими полезными статьями:
Photoshop: 32-разрядная версия. 64-битная
Некоторые приложения для постобработки, например Adobe Photoshop, предлагают 32-битные и 64-битные версии. Биты в этом случае относятся к количеству возможных адресов памяти. С 32-разрядной версией вы можете использовать до 4 ГБ физической памяти, но с 64-разрядной версией теоретически вы можете использовать до 17,2 млрд ГБ памяти (хотя этот объем обычно сильно ограничен операционной системой).
Существует распространенное заблуждение, что 64-разрядная версия Photoshop всегда быстрее, но на самом деле, чтобы воспользоваться ускорением (которое минимально), должны произойти три вещи:
- Вам нужно более 4 ГБ физической памяти
- Вам необходимо работать с очень большими изображениями (не менее 800 МБ)
- У вас должна быть 64-разрядная операционная система (например, Vista x64 или Mac OS 10.6)
Вы можете подумать, что 800 МБ больше, чем вы когда-либо будете работать, но размеры файлов могут быстро увеличиться, если вы создаете панорамное изображение или работаете с несколькими слоями изображений для совмещения экспозиций.
Даже если вы соблюдаете все три условия, указанные выше, все равно есть шанс, что вы вообще не заметите ускорения, в зависимости от операций, которые вы выполняете с изображением. Также имейте в виду, что многие сторонние плагины не работают с 64-битной версией Photoshop.
Для получения более подробной информации о 32-битном Vs. 64-битный Photoshop, ознакомьтесь со следующими информативными статьями:
Помните: не все биты создаются одинаково
Ключевым моментом, который следует вынести из этого поста, является то, что не все биты созданы одинаково.То, что что-то содержит вдвое больше битов, не означает, что оно автоматически в два раза быстрее или в два раза лучше по качеству. Прежде чем делать какие-либо выводы о 16-битной и 32-битной / и т. Д., Вы действительно должны понять историю того, как эти биты используются.
Об авторе: Стив Берарди — естествоиспытатель, фотограф и ученый-компьютерщик.
Обычно его можно встретить в походах по красивым горам и пустыням Южной Калифорнии.Читайте больше его статей о фотографии природы на PhotoNaturalist и подпишитесь на него в Twitter .
8-битные изображения против 16-битных: в чем разница и что использовать
Что такое «бит»?
Когда мы говорим о количестве «битов» применительно к изображениям, мы просто говорим о количестве тональных вариаций в изображении.Понимание тональных значений в изображении может помочь вам получить наилучшее возможное качество печати.
Что такое тональная вариация?
Каждый цвет имеет свою тональную гамму. Когда мы говорим о цвете, тон означает изменяющуюся яркость или темноту цвета. Оттенки создаются путем добавления к цвету белого или черного. Если мы возьмем, например, красный цвет, есть много разных оттенков красного. У вас может быть очень светло-красный или очень темно-красный. При проектировании на цифровой среде всем тональным вариациям присваивается тональное значение.Поэтому, когда мы говорим о тональных значениях, мы имеем в виду количество тональных вариаций, доступных для цвета.
8 бит против 16 бит
Основное различие между 8-битным изображением и 16-битным изображением заключается в количестве тонов, доступных для данного цвета. 8-битное изображение состоит из меньшего количества тонов, чем 16-битное изображение.
Количество доступных тонов рассчитывается как 2 до степени бита. Например, для 8-битного изображения вы должны вычислить тональный диапазон, вычислив 2 до степени 8: 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 = 256.Это означает, что для каждого цвета в 8-битном изображении имеется 256 тональных значений. Если вы вычисляете тональный диапазон для 16-битного изображения, вы должны сделать 2 с показателем степени 16, что экспоненциально увеличит количество доступных тонов.
8 бит
Если для изображения установлен цветовой профиль CMYK и его размер составляет 8 бит, существует 256 возможных значений тона для каждого цвета. Другими словами, доступно 256 тонов для голубого, 256 тонов для пурпурного, 256 тонов для желтого и 256 тонов для черного.Если вы используете цветовой профиль RGB, изображение будет содержать 256 тональных вариаций для красного, зеленого и синего цветов.
16 бит
Если для изображения установлен цветовой профиль CMYK и 16 бит, то для каждого цвета имеется 65 536 тональных значений. УХ ТЫ! Это много тональных вариаций!
Что использовать
Вы, вероятно, могли бы предположить, что чем больше тонов, тем лучше качество печати. Однако для специальных целей печати PrintAura, , мы запрашиваем 8-битные изображения .Это может показаться нелогичным, но рассуждения просты. Наши специализированные принтеры Kornit для прямого нанесения на одежду созданы для работы с 8-битными цветовыми тонами. 8-битное изображение наилучшим образом соответствует цвету вашего оригинального произведения искусства.
Как проверить / изменить настройки битов в Photoshop
Если вы не уверены, какой бит установлен в вашем изображении, это легко проверить.
- Откройте изображение в Photoshop
- Перейдите в верхнее меню и щелкните изображение> режим
- Здесь вы увидите галочку рядом с битами / каналом, для вашего изображения установлено значение
Если вы начали с 16-битного изображения, не волнуйтесь! Преобразование изображения в 8-битное относительно просто и не повредит исходное изображение.
- Откройте изображение в Photoshop
- Перейдите в верхнее меню и щелкните изображение> режим
- Здесь вы увидите 3 различных варианта битов. Просто нажмите «8 бит / канал»
Битовая глубина изображения | Shutha
Напоминание о том, что такое «бит»
Возможно, стоит начать с того, чтобы напомнить вам, что такое «бит». Помните, что каждый пиксель — это просто двоичное число, представляющее его цвет.Помните также, что для представления 256 тонов в пикселе потребовалось двоичное число длиной 8 цифр (11111111), чтобы представить это количество тонов. Теперь каждая цифра в этом числе представляет собой 1 бит информации, и поэтому мы получили цвет пикселя, представленный числом размером 8 бит. Таким образом, количество возможных цветов пикселя в градациях серого составляет 256 цветов, и это представлено двоичным числом, которое составляет «8 бит в глубину».
Теперь это число не обязательно должно иметь глубину 8 бит.Он может иметь длину 10, 12, 14 или 16 бит, и каждый раз, когда он становится длиннее, он может представлять намного больше вариаций цвета.
Таким образом, «вес» одного пикселя в оттенках серого составляет 8 бит, который также известен как 1 байт (8 бит = 1 байт в компьютерном языке). Но это также может быть 16 бит, что составляет 2 байта.
И вес 8-битного изображения RGB в 3 раза больше, потому что есть одно 8-значное число для каждого цветового канала в пикселе RGB — 1 для красного канала, 1 для зеленого канала и 1 для синего канала, что делает он размером 3 байта.Но это изображение RGB может иметь глубину цвета 16 бит, и в этом случае каждый из трех цветовых каналов будет иметь номер длиной 16 цифр, то есть размером 16 бит, что составляет 2 байта на канал цвета, что означает, что каждый Размер пикселя 16-битного изображения RGB составляет 6 байтов.
Реальное преимущество 16-битного изображения над 8-битным, однако, заключается не в размере файла, а в вариациях цвета, которые оно представляет.
Битовая глубина и Photoshop
Любое изображение на доцифровом этапе, будь то фотографируемая сцена или сканируемая аналоговая пленка (например, 35-миллиметровый негатив или прозрачная пленка), имеет непрерывный диапазон тонов.Однако после цифровой фотографии или сканирования цифровой файл записывается путем разделения изображения на несколько уровней тона. Это может быть от 8 до 16 бит на канал цвета в зависимости от программного обеспечения сканера и ограничений оборудования.
Рис. 1 Реальность, которую мы воспринимаем человеческим глазом, — это непрерывный тон. Однако, когда он снимается на сканер или цифровую камеру, каждый пиксель, представляющий эту реальность, должен быть представлен двоичным числом определенной длины или битовой глубины.«Как только изображение переносится в Photoshop, оно рассматривается как 8-битное или 16-битное изображение. После того, как кто-то работал с изображением, вам всегда нужно выводить для других в 8-битном формате, поскольку это то, с чем работает отрасль.
Независимо от того, сколько уровней камера или сканер может обнаружить и сохранить, файл может быть только в 8- или 16-битном формате, когда он открыт в Photoshop. Если камера или отсканированное изображение имеют что-то вроде 12-битного, то экспорт как 16-битный файл в Photoshop не улучшает 12-битное сканирование; это просто гарантирует, что будут сохранены полные 12 бит.12-битное изображение, импортированное как 16-битный файл, по-прежнему содержит только 12 бит информации об уровне.
16-битный файл имеет в два раза больше двоичных цифр для каждого канала RGB, но все равно имеет то же количество пикселей. Но поскольку каждый пиксель содержит вдвое больше информации, это означает, что размер 16-битного файла также вдвое превышает размер рабочего файла, чем 8-битного файла. В конце концов, какой бы битовой глубиной ни были изображения, которые были захвачены, а затем обработаны, конечный результат, представленный публике, должен быть в 8-битном формате, поскольку большая часть производства изображений не распознает 16-битные изображения.
ПРИМЕЧАНИЕ: Существуют также 1-битные изображения, но они не будут использоваться для фотографий, поскольку они могут содержать только два тона черного и белого. Photoshop 9 представил 32-битный формат изображения, но он предназначен только для специального использования.
Вариации тона
Настоящее преимущество изображений с более высокой битовой глубиной — это вариации цвета, которые они могут отображать. Однако это не так важно для человеческого глаза.16 = 65 536), что намного превосходит то, что может видеть человеческий глаз. Тем не менее, сканирование в 16-битном режиме дает реальные преимущества. Возьмем, к примеру, это изображение ниже.
Рис. 2 Изображение вверху сильно недоэкспонировано. Гистограмма ниже показывает, как она была сжата до небольшой части общего тонального диапазона.
Рис. 3 Поскольку тональный диапазон изображения ограничен такой небольшой частью общего тонального диапазона, он потребует значительного растяжения.8-битное изображение, которое в любом случае состоит только из 256 тонов, будет, по всей вероятности, постеризовано, потому что 80 тонов, представленных в данный момент в изображении, будут растянуты на 256 тонов. 16-битное изображение, которое имеет возможные 65 536 тоновых уровней, будет иметь более чем достаточно данных для распространения прямо по тональному диапазону, даже если только 30%, если тона представлены.
Изображение выше имеет очень ровный диапазон тонов (сделано специально для иллюстрации). Статистика гистограммы показывает, что уровни только от 0 до 80, что составляет менее одной трети полного диапазона 256 (указано).Вместо этого 8 уровней. Это 20 480, что более чем достаточно для последних 256 необходимых тонов. На этом этапе, до того как изображение будет исправлено, гистограмма будет выглядеть одинаково как для 8-, так и для 16-битных изображений. Итак, займемся исправлением.
Рис. 4 Изображение исправлено с помощью инструмента «Уровни» в Photoshop.
Рис. 5 Гистограмма для 8-битного изображения (слева) показывает промежутки, где 80 тональных уровней были распределены по 256 тональным уровням. Гистограмма для 16-битного изображения (справа) не показывает пропусков в тональном диапазоне, потому что 20 480 тональных уровней были распределены по 256 тональным уровням.
После того, как сканирование было исправлено путем выделения диапазона в инструменте «Уровни» в Photoshop, разница между 8- и 16-битными версиями теперь проявляется в гистограммах. 8-битная гистограмма сломана. У него было только 80 уровней для начала, а это значит, что нужно было добавить промежутки между уровнями, чтобы покрыть 256 тональное пространство. Но результат все равно 80 уровней. С другой стороны, 16-битное изображение имело 20 480 уровней вместо 80, поэтому не нужно было добавлять промежутки для заполнения 256-ти тонального пространства.Когда 16-битное изображение преобразуется в 8-битное после исправления, в результате получается 256 полных тонов.
Когда уровни изображения разнесены слишком далеко, существует реальный риск постеризации при работе с 8-битным изображением. Однако для большинства производственных работ вы можете не заметить реального улучшения качества изображения, поэтому нужно поэкспериментировать, чтобы увидеть, что лучше всего соответствует вашим стандартам качества и рабочему процессу. Однако именно по этой причине сканирование архивного качества всегда выполняется с 16-битной точностью.
Вверх по основам цифровой обработки изображений
Вернуться к тональному диапазону
В градациях серого v «Серый RGB»
Глубина изображения и битовая глубина
Поддержка глубины изображения, битовой глубины и насыщенности цветного изображения
Битовая глубина — это количество информации о цвете, содержащейся в каждом пикселе изображения.Изображение с битовой глубиной 1 означает, что каждый пиксель в изображении может быть черным или белым, поскольку пиксель может содержать только 2 значения (1 бит либо «включен», либо «выключен»). По мере увеличения битовой глубины изображения количество цветов, которые может содержать каждый пиксель, увеличивается. Новые изображения в Acorn создаются как 8-битные изображения на компонент / 32-битные пиксельные изображения, что подходит для большинства изображений, используемых сегодня. Однако, если вы хотите получить «более глубокую» глубину изображения, перейдите к пункту меню Image ▸ Image Depth . Вы можете выбрать 8 или 16 бит на канал.
Если вы откроете 64-битное или 48-битное изображение в Acorn, Acorn поместит ваше изображение в 64-битный рабочий процесс и сохранит изображение в 64-битном формате.
Если вы откроете 96- или 128-битное изображение в Acorn, Acorn поместит ваше изображение в 128-битный рабочий процесс и сохранит изображение в 128-битном формате. В большинстве случаев 128-битная глубина будет излишней. Если вам нужны глубокие изображения, но вы не знаете, использовать ли 64 или 128 бит, выберите 64. Если вам нужно 128, вы это узнаете.
Битовая глубина (как и разрешение изображения) также влияет на размер изображения.Изображения с более высокой битовой глубиной имеют тенденцию быть больше по размеру, чем изображения с более низкой битовой глубиной, поскольку количество информации в файле, относящейся к цвету, больше.
Зачем вам нужна более высокая битовая глубина?
- У вас есть камера, которая создает файлы RAW с размером более 8 бит на канал. Возможно, вы захотите сохранить свое изображение в этом формате, чтобы сохранить его в будущем.
- Наличие 64- или 128-битного изображения дает Acorn больше пространства для работы с вашим изображением.Такие вещи, как проблемы с предварительным умножением альфа-канала, исчезают, а настройка изображения становится более точной.
- Научные вычисления. Такие вещи, как работа со спутниковыми или медицинскими изображениями, могут выиграть от более глубоких цветов. Тот факт, что человеческий глаз не видит разницы между двумя цветами, не означает, что ее нет.
Слева направо: 1-битные, 2-битные, 4-битные, 8-битные и 32-битные изображения.
Изображения любезно предоставлены Википедией
Поддержка изображений Deep Color
Если вы используете OS 10.11+ и у вас есть 5k iMac или недавний Mac Pro с 30-битным дисплеем, тогда вы сможете насладиться новым уровнем точности цветопередачи в Acorn. Когда вы создаете изображение 16bpc, вы будете наслаждаться более глубокими цветами и более широкой гаммой.
.