Главная / Изображения и графика / Определение битовой глубины изображения
Анализ изображений

Глубина цвета в графическом файле

Узнайте битовую глубину и параметры цветового представления изображения.

Бесплатный лимит - 2,00 МБ. Свыше лимита - 50 ₽.

Биты
на канал и пиксель

Анализ изображения показывает глубину цвета, число каналов и формат пикселей.

Файл
Цвет
Биты

Параметры цвета изображения

Загрузите файл, чтобы увидеть битовую глубину, число каналов и особенности цветового представления.

Результат
—
После обработки здесь появятся параметры цвета.

Глубина цвета в графическом файле определяет точный объём двоичных данных, выделяемый для записи цветовых характеристик каждого отдельного пикселя растровой сетки. Онлайн-инструмент решает прикладную задачу прямого просмотра количества бит, используемых для представления цвета в загруженном изображении. На вход подаётся исходный растровый файл, структура которого анализируется на уровне служебных заголовков и маркеров формата. В результате пользователь получает точные численные показатели битности без искажений, которые часто возникают при стандартной отрисовке картинки в браузере.

В технической документации этот базовый параметр обозначается термином Image Bit Depth.

Понятия глубины цвета и разрядности цвета описывают физическую ёмкость ячейки памяти, отведённой под хранение информации о свете и оттенке в конкретной точке матрицы. Кодирование графической информации на уровне данных пикселей строится на дискретизации: непрерывный оптический сигнал переводится в последовательность нулей и единиц фиксированной длины. Чем выше разрядность, тем более мелкий шаг квантования применяется при оцифровке и тем больше уникальных градаций яркости или цветовых тонов может содержать файл. Недостаточная битовая глубина ограничивает динамический диапазон и приводит к появлению видимых ступеней на плавных тональных переходах.

Проверка фактической разрядности необходима перед началом ретуши, цветокоррекции, композитинга или подготовки макетов к печати. Инструмент мгновенно показывает, содержит ли исходник расширенный запас данных для постобработки или его битовая сетка уже сведена к стандартному пользовательскому диапазону.

Определение битовой глубины изображения

Метрики разрядности: бит на пиксель (bpp), бит на канал (bpc) и формула расчёта палитры

В технической документации, графических редакторах и свойствах операционной системы показатели разрядности часто записываются по-разному. Для одного и того же файла можно встретить значения 8 бит и 24 бита, что вызывает путаницу при проверке исходников. Чтобы точно интерпретировать параметры растрового файла, необходимо разделять две базовые метрики: bpc и bpp.

Метрика bpc указывает количество бит, выделенных для кодирования одного отдельного цветового или яркостного канала внутри точки. Этот показатель определяет точность передачи градаций отдельной составляющей света. Метрика bpp описывает суммарное количество бит, затрачиваемых на хранение всей информации об одном пикселе целиком, включая все цветовые и служебные компоненты.

Математическая связь между этими величинами выражается через простое умножение разрядности одного канала на общее число каналов в структуре растра:

bpp = bpc × C

В приведённом выражении переменная C обозначает количество каналов в файле. Если в каждом из трёх каналов хранится по 8 бит данных, то суммарная плотность записи на одну точку составит 24 bpp.

Математическая формула расчёта цветовой палитры и уровней яркости

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

N = 2^I

Переменная I представляет собой глубину представления цвета, выраженную в количестве бит, а N - итоговое число уникальных комбинаций, которые способна описать битовая сетка заданной длины. Подставляя в качестве показателя степени значение bpc или bpp, можно рассчитать как тональное разрешение отдельного канала, так и общее цветовое разрешение пикселя.

При разрядности 8 bpc каждый канал содержит 2^8 = 256 дискретных градаций яркости (в целочисленном диапазоне они обычно нумеруются от 0 до 255). Когда цвет точки формируется смешением трёх таких независимых каналов, общее количество возможных цветовых комбинаций определяется перемножением вариантов каждого канала: 256 × 256 × 256 , что эквивалентно записи 2^24 = 16 777 216 цветов.

В таблице ниже показано, как увеличение разрядности канала и общей битности пикселя масштабирует математическую ёмкость палитры для стандартной трёхканальной структуры:

Разрядность канала (bpc) Уровней яркости на канал (2^bpc) Глубина трёхканального пикселя (bpp) Теоретический объём палитры (2^bpp)
8 256 24 16 777 216
10 1 024 30 1 073 741 824
12 4 096 36 68 719 476 736
16 65 536 48 281 474 976 710 656

Теоретическая ёмкость сетки и фактическое число уникальных цветов

Расчётное значение N = 2^I определяет исключительно верхний физический предел контейнера - сколько различных оттенков потенциально можно записать в ячейку памяти данной длины. На практике важно разграничивать теоретическую ёмкость битовой сетки и фактическое число уникальных цветов, реально присутствующих в конкретном изображении.

Разница между этими показателями обусловлена тремя фундаментальными факторами:

  • Сюжетное наполнение кадра. Фотография монохромного объекта, снятая и сохранённая при 24 bpp, располагает контейнером на 16,7 миллиона оттенков, но реально задействует лишь несколько тысяч близких по тону значений.
  • Геометрическое разрешение матрицы. Количество уникальных оттенков в файле никогда не может превышать общее число пикселей в его размерной сетке. Например, растровое изображение размером 1000 на 1000 точек физически состоит из 1 000 000 пикселей. Даже при сохранении с глубиной 24 bpp или 48 bpp в таком файле не может одновременно находиться более одного миллиона разных цветов.
  • Предварительная обработка данных. Если изображение было сконвертировано из низкой разрядности в высокую без добавления новых деталей, его битовая сетка расширяется формально, но реальное число цветовых градаций остаётся на уровне исходника.

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

Влияние глубины пикселя на некомпрессированный объём файла

Показатель bpp напрямую определяет базовый информационный объём растрового массива в оперативной памяти или на диске до применения алгоритмов упаковки. В несжатом состоянии каждому пикселю матрицы отводится строго фиксированное количество бит, равное его полной глубине.

Расчёт объёма некомпрессированных графических данных выполняется по формуле:

V = (W × H × bpp) / 8

Здесь W и H - ширина и высота изображения в пикселях, а деление на 8 переводит итоговое количество бит в байты. Линейная зависимость означает, что удвоение битовой глубины файла (например, при переходе от 24 bpp к 48 bpp для сохранения запаса по свету) ровно в два раза увеличивает вес некомпрессированного растрового потока. Этот расчёт применяется при оценке нагрузки на дисковую подсистему, расчёте пропускной способности каналов передачи данных и планировании объёма оперативной памяти, необходимой для обработки графики в профессиональных редакторах.

Цветовые модели, каналы и влияние альфа-компонента на общую битность

Суммарное количество бит, выделяемых на каждый пиксель растрового файла, напрямую зависит от выбранной цветовой модели. Цветовая модель задает систему координат для описания оттенка и определяет, на сколько независимых информационных потоков - цветовых каналов - разделяются данные пикселя. Поскольку каждый канал кодируется собственной битовой сеткой, итоговая битность файла формируется как сумма разрядностей всех входящих в структуру компонентов.

Одноканальные и двухканальные структуры данных

Базовая организация растровых данных представлена изображениями в градациях серого - Grayscale. В такой модели цвет как хроматическая характеристика отсутствует, а вся информация о пикселе сводится к одному каналу яркости - luminance. Полная глубина пикселя в режиме Grayscale численно равна разрядности его единственного канала: при стандартной разрядности 8 bpc общая глубина файла составляет ровно 8 bpp.

Если монохромному изображению требуется плавное управление видимостью пикселей, к базовому каналу яркости добавляется вспомогательный канал прозрачности. Так формируется двухканальная структура данных, примером которой служит схема A8L8. В ней 8 бит отводится под градации серого и еще 8 бит - под маску прозрачности. Суммарная битность файла возрастает до 16 bpp, хотя само изображение остается черно-белым и не приобретает новых тональных переходов яркости.

Многоканальные модели и роль альфа-компонента

Полноцветная графика строится на комбинации нескольких цветовых массивов. В аддитивной модели RGB цвет пикселя формируется смешением трех базовых каналов: R - красного, G - зеленого и B - синего. Для задач полиграфии и допечатной подготовки применяется субтрактивная модель CMYK, состоящая из четырех каналов: голубого, пурпурного, желтого и ключевого черного компонента.

Помимо аппаратно-ориентированных схем, при хранении и обработке графики используются аппаратно-независимые и компонентные цветовые модели:

  • Lab и ее стандартизированная спецификация CIELAB разделяют информацию на канал светлоты и два хроматических канала, отвечающих за цветовые координаты от зеленого к красному и от синего к желтому. Такая трехканальная структура позволяет редактировать яркость без смещения цветового тона.
  • HSB представляет цвет через три интуитивных параметра: цветовой тон, насыщенность и яркость, что также требует трех независимых каналов данных.
  • YCbCr выделяет в отдельный канал яркостную составляющую, а информацию о цвете передает через два цветоразностных компонента - синий и красный. Эта трехканальная модель широко применяется при кодировании цифровой фото- и видеографики.
  • YCbCrK расширяет компонентную схему до четырех каналов за счет добавления отдельного черного компонента и используется для специфических задач сжатия четырехкрасочных данных.

Когда в многоканальном изображении необходимо сохранить данные о неполной непрозрачности объектов, в структуру пикселя вводится дополнительный альфа-канал - alpha component. Модели трансформируются в расширенные конфигурации: трехканальная схема RGB переходит в четырехканальную RGBA, а четырехканальная полиграфическая система CMYK - в пятиканальную CMYKA.

При анализе параметров файла важно учитывать, что добавление альфа-компонента увеличивает общую битовую глубину пикселя, но никак не влияет на цветовую палитру. При разрядности 8 бит на канал переход от модели RGB к RGBA меняет общую глубину файла с 24-bit до 32-bit. Дополнительные 8 бит расходуются исключительно на кодирование 256 уровней альфа-прозрачности - от полной невидимости пикселя до его полной плотности. Количество доступных хроматических оттенков при этом остается неизменным и определяется исключительно тремя цветовыми каналами R, G и B.

В таблице ниже показано соотношение количества каналов и итоговой битности пикселя для различных цветовых моделей при фиксированной разрядности 8 bpc:

Цветовая модель Состав каналов Количество каналов Общая глубина при 8 bpc Назначение дополнительных бит
Grayscale Канал яркости luminance 1 8 bpp Только передача ахроматического тона
A8L8 Яркость и alpha component 2 16 bpp 8 бит на кодирование альфа-прозрачности
RGB, Lab, HSB, YCbCr Три цветовых или яркостно-цветовых канала 3 24-bit Формирование хроматического оттенка и светлоты
RGBA Каналы R, G, B и alpha component 4 32-bit 24 бита на цвет и 8 бит на маску прозрачности
CMYK, YCbCrK Четыре компонентных канала 4 32-bit Все 32 бита формируют плотность красок или тон
CMYKA Четыре краски и alpha component 5 40 bpp 32 бита на цвет и 8 бит на альфа-прозрачность

Интерпретация битовых значений через цветовые пространства и профили ICC

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

Цветовое пространство задает физические границы цветового охвата - гамута, внутри которого распределяются все доступные битовые градации. В стандартном пространстве sRGB, рассчитанном на массовые дисплеи и веб-графику, максимальное битовое значение в канале G соответствует умеренно насыщенному зеленому цвету. Если те же самые 24-bit или 32-bit данные интерпретировать в пространствах с расширенным охватом, таких как Adobe RGB или Display P3, идентичные двоичные коды на краях диапазона будут указывать на значительно более глубокие и насыщенные оттенки.

Профиль ICC выступает в роли математического справочника, который связывает закодированные в файле значения каналов с эталонной системой координат. При одинаковой разрядности и одной и той же цветовой модели два файла с разными профилями ICC будут отображаться по-разному. В широких пространствах вроде Display P3 или Adobe RGB расстояние между соседними оттенками внутри 8-битной сетки оказывается больше, чем в более узком sRGB, поэтому при работе с широким цветовым охватом контроль битовой глубины файла становится особенно важным для сохранения плавности тональных переходов.

Стандарты битовой глубины и распределение бит по схемам кодирования

Помимо цветового пространства, точность передачи оттенков и структура файла напрямую зависят от выбранного стандарта битности и внутренней схемы распределения бит между каналами. В растровой графике стандарты разрядности делятся на четыре основные группы: режимы малой разрядности с индексированными палитрами, промежуточный стандарт High Color, базовый полноцветный режим True Color и форматы высокой разрядности Deep Color.

Малая разрядность и индексированный цвет

В режимах малой разрядности значения пикселей обычно не кодируют яркость отдельных цветовых каналов напрямую, а указывают на порядковый номер цвета во встроенной таблице поиска цветов - палитре. Исключение составляют монохромные и полутоновые изображения, где битовое значение напрямую задает уровень светлоты от черного к белому. Такой подход минимизирует объем данных при работе со штриховой графикой, чертежами, иконками и простыми иллюстрациями.

В зависимости от количества бит, выделенных на один пиксель, режимы малой битности формируют следующие конфигурации палитры:

  • 1-bit - монохромное изображение, где каждый пиксель принимает одно из 2 состояний (0 или 1). Используется для черно-белого текста, факсимильных копий, сканов документации и масок прозрачности без промежуточных полутонов.
  • 2-bit - режим с поддержкой 4 цветов или 4 градаций серого. Применялся в ранних компьютерных графических адаптерах и дисплеях электронных книг первого поколения.
  • 4-bit - палитра из 16 фиксированных или настраиваемых цветов. Обеспечивает хранение базовых интерфейсных элементов, простых пиктограмм и технической графики с минимальным весом файла.
  • 8-битовый режим - включает 256 возможных значений на пиксель. В одноканальном полутоновом режиме это дает 256 градаций серого, а в режиме Indexed каждое значение от 0 до 255 служит индексом, который ссылается на конкретную ячейку таблицы палитры. Сама палитра при этом обычно хранит 256 выбранных оттенков с точностью 24-bit, что позволяет точно передать цветовую гамму изображения с ограниченным набором оттенков при трехкратной экономии места на уровне пиксельной сетки.

Стандарт High Color и асимметричное распределение бит

Стандарт High Color использует 15-bit или 16-bit на пиксель (2 байта в памяти) и представляет собой переходное звено между палитровыми режимами и полноценным многоканальным кодированием. Здесь цвет каждого пикселя формируется напрямую через компоненты R, G и B, однако из-за того, что числа 15 и 16 не делятся нацело с учетом байтового выравнивания и альфа-прозрачности, биты распределяются между каналами по специальным побитовым схемам.

В 15-битном представлении (RGB 5-5-5) на каждый из трех цветовых каналов отводится ровно по 5 бит, что дает 32 уровня яркости на канал и 32 768 уникальных цветов в сумме. Поскольку аппаратная обработка и хранение данных кратны байтам, 15 значащих бит упаковываются в 16-битное машинное слово, а оставшийся старший или младший бит используется двумя способами:

  • X1R5G5B5 - схема с одним неиспользуемым битом (обозначается как X), который служит только для выравнивания данных до границы двух байт и игнорируется при декодировании цвета.
  • A1R5G5B5 - схема, в которой свободный шестнадцатый бит отводится под однобитный альфа-компонент. Это позволяет задать для каждого пикселя жесткую бинарную прозрачность: пиксель либо полностью прозрачен (0), либо полностью непрозрачен (1), без сглаженных полупрозрачных границ.

В полноценном 16-битном режиме High Color без прозрачности применяется асимметричная схема R5G6B5 (RGB 5-6-5). В этой структуре на красный и синий каналы выделяется по 5 бит (по 32 уровня), а на зеленый канал - 6 бит (64 уровня). Дополнительный бит отдается зеленому спектру по психофизиологической причине: человеческое зрение наиболее чувствительно к перепадам яркости в желто-зеленой части видимого диапазона. Расширение канала G до 64 градаций увеличивает общую палитру до 65 536 оттенков и заметно снижает ступенчатость тональных переходов без увеличения объема пикселя сверх двух байт.

Стандарт True Color и выравнивание в 24-битных и 32-битных схемах

Стандарт True Color отводит 8 бит на каждый цветовой канал, обеспечивая 256 градаций яркости на компонент и более 16,7 миллиона цветовых комбинаций. В зависимости от наличия четвертого канала и способа упаковки данных в памяти, этот стандарт реализуется как 24-bit или 32-битный режим.

Базовая трехканальная схема R8G8B8 занимает ровно 24-bit (3 байта) на пиксель. Она компактна при хранении на диске, но неудобна для прямой адресации в вычислительных системах, оперирующих 32-разрядными и 64-разрядными словами. Поэтому во многих графических подсистемах и файловых структурах применяется 32-битная упаковка по 4 байта на пиксель. Порядок следования каналов и назначение четвертого байта определяются конкретной схемой кодирования:

  • A8R8G8B8 и A8B8G8R8 - четырехканальные схемы, где помимо 8-битных цветовых компонентов присутствует полноценный 8-битный канал альфа-прозрачности (256 уровней непрозрачности от 0 до 255). Разница между ними заключается в порядке записи байтов цвета: прямом (RGB) или обратном (BGR).
  • X8R8G8B8 и X8B8G8R8 - 32-битные схемы без прозрачности. В них на каждый пиксель физически тратится 32 бита (4 байта), но 8 бит отводятся под неиспользуемый пустой канал X. При анализе такого файла общая битовая глубина может определяться как 32 bpp, хотя фактически изображение не содержит прозрачности и несет в себе ровно те же 24 бита цветовой информации, что и схема R8G8B8.

Форматы высокой разрядности Deep Color и представление HDR

Стандарты с разрядностью свыше 8 бит на канал объединяются под термином Deep Color. Переход к ним необходим, когда 256 уровней на канал недостаточно для предотвращения разрывов тональной шкалы при глубокой цветокоррекции, работе в широких цветовых пространствах или передаче сцен с экстремальным перепадом яркости.

Ниже приведено сравнение параметров всех основных стандартов битовой глубины, от монохромных режимов до форматов с плавающей запятой:

Стандарт / Режим Бит на канал (bpc) Бит на пиксель (bpp) Схемы кодирования и особенности Уровней на канал Общее число цветов / градаций
Monochrome 1 1 Прямое кодирование (2 состояния) 2 2
Indexed / Low Bit 2 / 4 / 8 2 / 4 / 8 Таблица поиска цветов (палитра) или шкала серого 4 / 16 / 256 4 / 16 / 256
High Color (15-bit) 5 15 (16 в памяти) RGB 5-5-5, X1R5G5B5, A1R5G5B5 32 (R, G, B) 32 768
High Color (16-bit) 5 и 6 16 R5G6B5 (RGB 5-6-5) 32 (R, B), 64 (G) 65 536
True Color 8 24 / 32 R8G8B8, A8R8G8B8, A8B8G8R8, X8R8G8B8, X8B8G8R8 256 16 777 216
Deep Color (10-bit) 10 30 / 32 / 40 Целочисленное кодирование (SDR / HDR) 1 024 1 073 741 824
Deep Color (12-bit) 12 36 / 48 Целочисленное кодирование 4 096 68 719 476 736
Deep Color (16-bit) 16 48 / 64 Целочисленное или половинная точность 65 536 281 474 976 710 656
Floating Point (32-bit) 32 96 / 128 Числа с плавающей запятой (HDR) Непрерывная шкала в пределах разрядности Сверхширокий диапазон яркостей

В профессиональной графике и фотографии используются три основные ступени высокой разрядности:

  • 10-бит на канал (30 bpp для трех каналов или 40 bpp с полноценным альфа-каналом; иногда упаковывается в 32-битные контейнеры по схеме 10-10-10-2). Дает 1024 уровня яркости на канал и свыше 1,07 миллиарда оттенков. Это базовый промышленный стандарт для видеопроизводства и дисплеев, работающих с контентом HDR.
  • 12-бит на канал (36 bpp в RGB или 48 bpp в RGBA). Обеспечивает 4096 градаций на канал (более 68,7 миллиарда цветов). Такая глубина характерна для данных с цифровых кинокамер, медицинского оборудования и специализированных архивных сканеров.
  • 16-bit на канал (48 bpp для RGB и 64 bpp для RGBA). В целочисленном представлении каждый канал делится на 65 536 дискретных уровней, что формирует сетку из более чем 281 триллиона цветовых комбинаций. Такая плотность данных исключает появление визуальных ступенек при многократном наложении фильтров, вытягивании глубоких теней и трансформации цветовых профилей.
  • 32-bit на канал (96 bpp в RGB и 128 bpp в RGBA). В отличие от стандартных 8-битных и 16-битных режимов, использующих фиксированную целочисленную сетку от черного (0) до максимального белого (255 или 65 535) в рамках стандартного динамического диапазона SDR, 32-битные каналы записывают значения в формате чисел с плавающей запятой.

Кодирование с плавающей запятой снимает жесткие ограничения стандартного диапазона SDR, где точка белого строго зафиксирована на уровне 1,0 (или 100% яркости дисплея). В 32-bit bpc файле значения пикселей могут выходить далеко за пределы единицы - например, равняться 5,5 или 120,0 для описания прямых источников света (солнечного диска, пламени, бликов на металле), а также принимать сверхмалые дробные значения в глубоких тенях без потери точности. Это позволяет хранить в одном графическом файле истинный широкий динамический диапазон HDR для трехмерного рендеринга, визуальных эффектов, карт освещения и научной визуализации.

Специфика хранения разрядности в различных графических форматах

Запись сведений о битовой глубине напрямую зависит от архитектуры конкретного графического контейнера. Для точной идентификации разрядности анализируются свойства файла на бинарном уровне: сигнатура изображения в начальных байтах, специализированные двоичные маркеры заголовков, метаданные EXIF, а также установленный порядок байтов (от старшего к младшему или от младшего к старшему), который определяет правила чтения многобайтовых полей и 16-битных или 32-битных значений пикселей.

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

Массовые веб-форматы и базовые растровые контейнеры

Распространённые пользовательские форматы проектировались с учётом баланса между объёмом файла и совместимостью, поэтому в них действуют строгие правила записи битовой глубины:

  • JPEG и JPG. В базовом стандарте точность JPEG составляет строго 8 бит на канал. Сведения о разрядности и количестве цветовых компонентов записываются внутри двоичного маркера начала кадра (сегменты SOF0 для базового и SOF2 для прогрессивного кодирования), где в отдельном байте точности сэмпла почти всегда указано значение 8 (24 bpp для трёхканального изображения или 8 bpp для монохромного).
  • PNG. Вся информация о цветовом разрешении сосредоточена в обязательном заголовочном блоке IHDR, следующем сразу после 8-байтовой сигнатуры изображения. Девятый байт этого блока задаёт битовую глубину на канал (допустимы значения 1, 2, 4, 8 или 16), а десятый байт определяет тип цвета PNG: 0 - Grayscale (поддерживает 1, 2, 4, 8 и 16 бит), 2 - Truecolor (8 или 16 бит на канал), 3 - индексированный цвет (1, 2, 4 или 8 бит для адресации палитры PLTE), 4 - Grayscale с альфа-каналом (8 или 16 бит на канал), 6 - Truecolor с альфа-каналом (8 или 16 бит на канал). В файлах без выделенного альфа-канала базовая или частичная прозрачность может задаваться через вспомогательный чанк tRNS без изменения формальной разрядности в заголовке IHDR. Специфика 16-bit PNG заключается в хранении двухбайтовых значений каналов в сетевом порядке байтов (Big-Endian), что обеспечивает до 48 bpp в режиме RGB и 64 bpp в RGBA без потерь при сжатии.
  • GIF. Формат поддерживает исключительно индексированную палитру разрядностью от 1 до 8 бит на пиксель (максимум 256 цветов в локальной или глобальной таблице цветов). Показатель глубины цвета закодирован в упакованном байте логического дескриптора экрана внутри заголовка файла.
  • BMP и TGA. Классические несжатые или слабосжатые битовые карты хранят суммарный показатель bpp напрямую в фиксированном смещении заголовка (в структуре BITMAPINFOHEADER у BMP или в 17-м байте заголовка TGA). Штатный диапазон включает 1, 4, 8, 16, 24 и 32 bpp. В 16-битных и 32-битных модификациях BMP дополнительные битовые маски могут явно указывать, какие именно биты отведены под каналы R, G, B и альфа-компонент.

Современные контейнеры сжатия: WebP, HEIC/HEIF и AVIF

Форматы нового поколения созданы на базе алгоритмов видеокодирования и имеют разные ограничения по глубине цвета. Формат WebP в своей спецификации жёстко ограничен 8 битами на канал: это касается и сжатия с потерями на базе VP8, и режима без потерь VP8L (24 bpp для RGB и 32 bpp при наличии 8-битного альфа-канала).

Контейнеры HEIC/HEIF (на базе кодека HEVC) и AVIF (на базе кодека AV1) построены на структурной базе ISO Base Media File Format. Они штатно поддерживают 8, 10 и 12 бит на канал как для основного изображения, так и для вспомогательных карт прозрачности или глубины. Сведения о разрядности в таких файлах извлекаются из бинарных контейнеров свойств изображения - боксов ipco (Image Property Container), внутри которых расположены дескрипторы pixi (Pixel Information, указывающий точное количество бит на каждый канал) и конфигурационные блоки кодека ( hvcC или av1C ).

Профессиональная графика, RAW-данные и специализированные форматы

В полиграфии, фотографии, медицине, кинопроизводстве и трёхмерной графике применяются форматы, способные фиксировать расширенную разрядность и специфическую упаковку данных.

Формат / семейство Штатная разрядность Где хранятся сведения о глубине цвета в структуре файла
TIFF и BigTIFF 1, 4, 8, 16, 32 bpc (целые числа и числа с плавающей запятой) В тегах структуры IFD: тег BitsPerSample задаёт битность каждого канала, SamplesPerPixel - число каналов, а SampleFormat - тип данных (целочисленный или с плавающей запятой). Чтение строго подчиняется порядку байтов файла (маркеры II для Little-Endian или MM для Big-Endian в первых двух байтах).
PSD и PSB 1, 8, 16, 32 bpc В секции File Header на фиксированном смещении (23-24 байты от начала файла) записано двухбайтовое число, обозначающее количество бит на один канал, а рядом - общее количество каналов документа, включая альфа-маски.
RAW (CR2, NEF, ARW, DNG) 12-bit или 14-bit (по разрядности АЦП камеры), реже 10-bit и 16-bit Контейнеры базируются на архитектуре TIFF/EP. Информация о фактической разрядности оцифровки с матрицы и параметрах упаковки бит хранится в тегах IFD исходного необработанного слоя и в специализированных полях метаданных EXIF / MakerNotes.
EXR 16-bit (половинная точность с плавающей запятой), 32-bit (плавающая запятая или беззнаковое целое) В заголовке файла внутри атрибута списка каналов ( channels ), где для каждого отдельного слоя и канала индивидуально прописан тип пиксельных данных.
DPX 8, 10, 12, 16 bpc (целые числа) и 32, 64 bpc (с плавающей запятой) В дескрипторе информационного заголовка изображения; в кинопроизводстве наиболее распространён 10-битный логарифмический режим, где три 10-битных канала упакованы в одно 32-битное слово с двумя служебными битами выравнивания.
JPEG2000 (JP2, J2K) и JXR От 1 до 38 bpc в JP2/J2K; 8, 16, 32 bpc в JXR В JP2 данные записаны в боксе заголовка изображения ihdr (параметр Bits Per Component) и маркере SIZ кодового потока; в JXR - в таблицах дескрипторов пиксельного формата контейнера, подобного TIFF.
FITS 8, 16, 32, 64 бит на элемент массива В текстовом ASCII-заголовке в виде обязательного ключевого поля BITPIX : положительные числа (8, 16, 32, 64) означают целочисленные данные, а отрицательные (-32, -64) указывают на формат IEEE с плавающей запятой.
DDS От 8 до 128 bpp (несжатые) или блочное сжатие DXT1, DXT3, DXT5 В структуре DDS_PIXELFORMAT и расширенном заголовке DX10. При сжатии DXT1/DXT3/DXT5 пиксели группируются в блоки 4x4, где опорные цвета кодируются по 16-битной схеме R5G6B5 с 2-битными индексами интерполяции.
PNM (PBM, PGM, PPM, PAM) и PCX 1-bit (PBM), 8/16 bpc (PGM, PPM, PAM); 1, 2, 4, 8 bpc (PCX) В семействе PNM глубина вычисляется из текстового заголовка по сигнатуре формата (P1-P7) и параметру максимального значения яркости Maxval (до 255 - 8 бит, от 256 до 65535 - 16 бит). В PCX битность на плоскость и число цветовых плоскостей записаны в 128-байтовом двоичном заголовке.

Знание точной внутренней структуры форматов объясняет, почему при анализе файла важно различать номинальный размер контейнера и реальную информационную ёмкость сигнала. Например, при сохранении снимка с цифровой камеры в файл CR2, NEF, ARW или DNG данные с матрицы фиксируются с разрядностью АЦП камеры - как правило, 12 или 14 бит. Однако в несжатом виде эти 12-битные или 14-битные отсчёты часто выравниваются в файле до 16-битной целочисленной сетки (по 2 байта на сэмпл) для удобства побайтовой адресации, тогда как реальный динамический диапазон данных внутри файла остаётся 12- или 14-разрядным.

Отдельного внимания при проверке требуют текстурные контейнеры DDS с алгоритмами блочного сжатия DXT1, DXT3 и DXT5. В таких файлах понятие классической разрядности на отдельный пиксель трансформируется: в блоке DXT1 на группу из 16 пикселей отводится всего 64 бита данных (два 16-битных опорных цвета R5G6B5 и шестнадцать 2-битных индексов), что даёт эффективную плотность хранения 4 bpp, хотя при распаковке видеокартой текстура разворачивается в стандартное полноцветное представление. В модификациях DXT3 и DXT5 добавляется 64-битный блок данных прозрачности (явные 4-битные значения альфа-канала в DXT3 или интерполируемые 8-битные опорные точки в DXT5), что увеличивает эффективную плотность упаковки до 8 bpp.

Технические ограничения при чтении глубины цвета в браузере и ОС

Точное определение разрядности изображения требует прямого обращения к двоичной структуре файла, поскольку стандартные программные средства просмотра и рендеринга часто модифицируют данные перед их выводом на экран. При открытии графического файла в операционной системе или веб-браузере запускается конвейер декодирования, задача которого - подготовить массив пикселей к быстрой отрисовке в кадровом буфере, а не сохранить исходную структуру контейнера.

В результате возникает принципиальная разница между двумя подходами к проверке файла: прямым чтением заголовков и двоичных маркеров исходного контейнера и запросом параметров уже декодированного растра через программные интерфейсы рендеринга. Только бинарный анализ байтовых смещений до этапа распаковки цвета даёт достоверные сведения о том, сколько бит выделено на каждый канал и пиксель внутри самого файла.

Приведение разрядности при декодировании через HTML5 Canvas 2D API

В веб-среде базовым инструментом для попиксельной работы с графикой выступает браузерный Canvas API. Однако стандартный контекст отрисовки HTML5 Canvas 2D API имеет жёсткое архитектурное ограничение: по умолчанию он приводит любой декодированный растр к унифицированному представлению с глубиной 8 бит на канал.

Когда изображение загружается в браузер и передаётся на холст для чтения пиксельного массива, графический движок преобразует исходные данные в буфер формата 32-bit RGBA, где каждый компонент представлен беззнаковым 8-битным целым числом в диапазоне от 0 до 255. Из-за этого простая отрисовка на холсте без предварительного анализа бинарной структуры файла полностью скрывает истинную разрядность исходника:

  • При загрузке 10-битных, 12-битных или 16-битных изображений (например, 16-bit PNG или TIFF) значения яркости принудительно масштабируются и урезаются с 65 536 или 1024 градаций до стандартных 256 уровней на канал.
  • Одноканальные изображения в градациях серого (1-bit, 2-bit, 4-bit, 8-bit или 16-bit Grayscale) и файлы с индексированной палитрой автоматически разворачиваются в четырёхканальную структуру 32-bit RGBA, где значения серого дублируются по трём цветовым каналам, а четвёртый канал заполняется значением полной непрозрачности (255).
  • Схемы без прозрачности (например, 24-битный RGB или 16-битный R5G6B5) при помещении в буфер холста дополняются синтетическим 8-битным альфа-каналом.

По этой причине попытка определить глубину цвета через свойства пиксельного массива на холсте всегда будет возвращать 8 бит на канал и 32 бита на пиксель, независимо от того, был ли загружен монохромный 1-битный чертёж или профессиональный 48-битный снимок.

Различия в отображении битности средствами операционных систем

Штатные средства просмотра свойств файла в операционных системах также могут вводить в заблуждение при оценке разрядности, поскольку разные системные утилиты считывают разные метрики. В зависимости от типа контейнера и установленного в системе кодека в диалоговом окне свойств может отображаться как битность отдельного канала (bpc), так и суммарная плотность пикселя (bpp) или даже глубина уже распакованного системным декодером буфера.

В следующей таблице сопоставлены результаты чтения одного и того же файла различными методами:

Характеристика исходного файла Прямое чтение двоичных заголовков файла Декодирование через стандартный Canvas API Окно свойств файла в ОС (зависит от системного декодера)
16-bit PNG (RGB без прозрачности) 16 bpc / 48 bpp 8 bpc / 32 bpp (приведение к RGBA 0-255) Часто указывает 48 бит (общая глубина пикселя) или 16 бит (глубина канала)
16-bit PNG (RGBA с альфа-каналом) 16 bpc / 64 bpp 8 bpc / 32 bpp (потеря младших разрядов) Отображает 64 бита либо не выводит параметр без стороннего кодека
8-bit PNG (Indexed, палитра 256 цветов) 8 bpp (индекс палитры) 8 bpc / 32 bpp (развёртывание палитры в RGBA) Обычно указывает 8 бит, но в программах просмотра может определяться как 24 бита
1-bit BMP (монохромный растр) 1 bpp 8 bpc / 32 bpp (конвертация 2 состояний в 0 и 255 по каналам) Корректно отображает 1 бит
10-bit AVIF / HEIC 10 bpc / 30 bpp (или 40 bpp с альфа-каналом) 8 bpc / 32 bpp Метаданные битности часто скрыты или отображаются как стандартные 24/32 бита

Глубина цвета графического файла и аппаратная глубина вывода монитора

При диагностике графики важно строго разграничивать битовую глубину самого файла и аппаратную глубину вывода (Output Color Depth) - физическую способность дисплея и видеоподсистемы воспроизводить оттенки. Свойства, записанные внутри графического контейнера, и параметры экрана в настройках операционной системы или драйвера видеокарты существуют независимо друг от друга.

Аппаратная глубина цвета монитора определяет, сколько градаций сигнала способна отобразить матрица дисплея на каждый субпиксель. В современных экранах этот показатель обычно составляет 6 бит, 8 бит или 10 бит на канал и формируется двумя способами:

  • Нативная глубина матрицы (True 8-bit или True 10-bit) - каждый субпиксель дисплея физически способен принимать и удерживать 256 или 1024 дискретных уровня напряжения, напрямую воспроизводя соответствующее число градаций яркости.
  • Использование технологии временного дизеринга FRC (схемы 6-bit + FRC для получения 8-битного вывода или 8-bit + FRC для имитации 10-битного сигнала) - при недостатке физических уровней матрица с высокой частотой чередует два соседних доступных оттенка в последовательных кадрах, за счёт чего человеческий глаз воспринимает промежуточный цветовой тон.

Наличие 10-битного монитора (нативного или работающего по схеме 8-bit + FRC) не меняет структуру открытого на нём 8-битного файла JPEG: в самом файле по-прежнему закодировано не более 256 уровней на канал. Справедливо и обратное: если сохранить или загрузить на устройстве с обычным 8-битным экраном файл 16-bit TIFF или 16-bit PNG, видеокарта при выводе на дисплей отсечёт или интерполирует избыточные разряды под возможности матрицы, однако внутри самого файла все 65 536 градаций на канал останутся в полной сохранности. Проверка бинарных заголовков позволяет убедиться в сохранности исходной разрядности файла даже на оборудовании, которое не способно отобразить глубокий цвет напрямую.

Прикладное значение проверки битности: квантование, бандинг и запас для цветокоррекции

Контроль количества бит, выделенных на представление цвета в файле, необходим перед началом ретуши, цветокоррекции, композитинга или подготовки макетов к печати. Визуально отличить 8-битное изображение от 16-битного при простом просмотре практически невозможно: пока к растру не применены математические трансформации яркости и контраста, оба варианта выглядят одинаково плавно. Разница проявляется в момент редактирования, когда запаса дискретных уровней оказывается недостаточно для пересчёта тоновых кривых.

Проверка реальной разрядности графического файла востребована в ряде рабочих процессов:

  • Аудит исходных материалов перед глубокой цветокоррекцией - подтверждение того, что проявленный из RAW файл экспортирован в TIFF или PNG с разрядностью 16 bpc, а не случайно сконвертирован в 8 bpc при сохранении из конвертера.
  • Контроль графических ассетов в разработке игр и 3D-графике - проверка карт высот (Height Maps), карт смещения (Displacement Maps) и нормалей, где 8-битная сетка создаёт ступенчатую геометрию рельефа вместо гладкой поверхности.
  • Допечатная подготовка (Prepress) - отбраковка изображений с пониженной битностью, которые при переводе между профилями ICC или растягивании тонового диапазона дадут заметные полосы на градиентных заливках при офсетной или широкоформатной печати.
  • Оптимизация графики для веба и интерфейсов - выявление избыточных 16-битных PNG-файлов в вёрстке, которые вдвое увеличивают объём передаваемых по сети данных без визуального выигрыша на стандартных дисплеях.

Дискретизация, ошибка квантования и деградация градиентов

При оцифровке непрерывного светового потока или генерации синтетического градиента аналоговый сигнал проходит дискретизацию по уровню - квантование. Каждому пикселю присваивается ближайшее доступное целочисленное значение из фиксированной разрядной сетки. Разница между точным расчётным значением яркости и ближайшим уровнем, доступным в выбранной битовой глубине, образует ошибку квантования (quantization error).

При разрядности 8 bpc весь диапазон от абсолютно чёрного до пикового белого делится всего на 256 шагов. Если растянуть плавный переход близких оттенков (например, предзакатное небо, студийный фон с виньетированием или подводную сцену) на 1500 пикселей по ширине экрана, а перепад яркости на этом участке составляет всего 15 условных уровней из 256, то каждые 100 пикселей по горизонтали будут окрашены в абсолютно одинаковый цвет. Вместо непрерывного тонового перехода возникают отчётливо различимые глазом ступени - бандинг (цветовые полосы или полосатость). Крайняя степень этого дефекта, при которой тоновые переходы распадаются на грубые плоские пятна с резкими границами, называется постеризацией.

Наиболее уязвимы к дефициту разрядности плавные, тёмные и сверхтёмные градиенты. Человеческое зрение обладает нелинейной чувствительностью и значительно острее фиксирует малейшие перепады яркости в тенях, чем в светлых участках. В стандартных 8-битных файлах применяется гамма-коррекция для перераспределения полезных кодов в тёмную область, однако при сильном осветлении теней (вытягивании деталей из недоэкспонированных участков) расстояние между соседними битовыми уровнями многократно увеличивается. В результате в глубоких тенях проявляются грубые ступеньки, сопровождаемые цветным цифровым шумом.

Ситуация усугубляется при сохранении 8-битной графики с потерями и использованием хроматического субсэмплирования (subsampling, например по схемам 4:2:0 или 4:2:2). При таком подходе разрешение цветоразностных каналов сжимается в два или четыре раза относительно яркостного канала, а последующее матричное квантование внутри блоков сжатия отбрасывает высокочастотные детали. На плавных градиентах это приводит к разрушению естественного микрошума изображения, который ранее маскировал границы переходов, и провоцирует жёсткий блочный бандинг.

Диагностика по гистограмме и запас для постобработки

Объективно оценить последствия обработки файлов разной битности позволяет анализ яркостной и поканальной гистограммы в графическом редакторе. При работе с 8-битным изображеним любая нелинейная операция - коррекция уровней (Levels), изгиб кривых (Curves), сдвиг экспозиции или изменение цветового баланса - перераспределяет существующие 256 значений, но не создаёт новых промежуточных оттенков.

Если на 8-битном снимке усилить контраст или растянуть узкий тоновый диапазон на всю ширину шкалы, соседние уровни яркости раздвигаются. На графике гистограммы при этом формируется характерная «гребёнка» - чередование заполненных столбцов и пустых провалов шириной в несколько значений, где полностью отсутствуют пиксели соответствующей яркости. При последовательном применении нескольких корректирующих операций часть соседних значений, наоборот, округляется до одного и того же числа (схлопывается), что ведёт к необратимой потере деталей. В 16-битном исходнике, содержащем 65 536 градаций на канал, часто использующем линейную гамму и обладающем высоким запасом по стопам экспозиции, при аналогичном растяжении уровней пустые интервалы заполняются реальными промежуточными данными. После завершения всех этапов цветокоррекции его гистограмма остаётся плотной и непрерывной.

В таблице ниже сопоставлено поведение файлов с разрядностью 8 bpc и 16 bpc на ключевых этапах постобработки.

Параметр и сценарий обработки Поведение файла 8 bpc Поведение файла 16 bpc
Шаг квантования в канале 1/256 от полного диапазона (около 0,39 % на один уровень) 1/65536 от полного диапазона (около 0,0015 % на один уровень)
Состояние гистограммы после растяжения уровней Образование разрывов («гребёнка»), выпадение промежуточных тонов Сохранение сплошного, плотного профиля без пустых значений
Осветление глубоких теней на 2-3 стопа экспозиции Резкие ступеньки яркости, постеризация, сдвиг цветового тона Плавный тоновый переход, сохранение естественной структуры градиента
Многократные преобразования между цветовыми пространствами Накопление ошибок округления, заметный бандинг на однородных заливках Ошибки округления остаются в младших разрядах за порогом зрительного восприятия

Роль пространственного дизеринга при понижении разрядности

Поскольку финальная публикация в вебе или вывод на печать чаще всего требуют конвертации мастер-файла из 16 bpc или 8 bpc в более низкую разрядность (вплоть до 8-битной индексированной палитры или монохромного 1-битного режима), для предотвращения бандинга и постеризации применяется пространственный дизеринг. В отличие от простого округления, при котором все пиксели пограничной зоны получают одно и то же урезанное значение, дизеринг намеренно вносит в изображение контролируемый шум или регулярный паттерн из пикселей доступных соседних оттенков. Зрительная система человека усредняет эту микромозаику, воспринимая её как плавный промежуточный тон.

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

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

  • Floyd-Steinberg - базовый и наиболее быстрый метод, распределяющий ошибку на четыре соседних пикселя (один справа и три в нижнем ряду с весовыми коэффициентами 7/16, 3/16, 5/16 и 1/16); обеспечивает хорошую детализацию, но на однородных участках может формировать характерные диагональные или червеобразные узоры.
  • Jarvis (также известный как Jarvis-Judice-Ninke) и Stucki - используют расширенную матрицу из 12 соседних пикселей, охватывающую два ряда ниже и правее текущей точки; это устраняет направленные артефакты и делает зернистость на градиентах более мягкой и равномерной ценой большего объёма вычислений.
  • Burkes и семейство алгоритмов Sierra (полный трёхрядный Sierra, двухрядный Two-Row Sierra и упрощённый Filter Lite) - представляют собой компромиссные схемы диффузии, которые сохраняют высокую скорость расчёта при меньшем количестве структурных артефактов, чем у базового метода Floyd-Steinberg.
  • Atkinson - передаёт соседним точкам только 6/8 (75 %) от возникшей ошибки квантования, полностью отбрасывая оставшуюся четверть; такой подход предотвращает расползание зернистости на чистые фоновые области и отлично сохраняет локальный контраст мелких деталей, хотя и приводит к некоторой потере градаций в самых светлых и самых тёмных участках.

Правильный рабочий цикл обработки графики строится на выполнении всех тоновых и цветовых трансформаций в максимальной доступной битовой глубине (16 bpc или 32 bpc) с последующим однократным переводом в целевую разрядность 8 bpc на самом последнем этапе экспорта при включённом дизеринге. Предварительная проверка битности файла позволяет вовремя обнаружить уже урезанный исходник и избежать появления необратимых артефактов квантования при ретуши.

Нужен другой
инструмент?

Откройте раздел инструментов для работы с изображениями и графикой.

Все инструменты для изображений