Сколько бит видеопамяти требуется для кодирования одного пикселя 32-цветного изображения

Обновлено: 21.11.2024

Поделиться этим сообщением:

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

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

Изображение и пиксель

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

К пикселю можно обращаться с координатами x,y после того, как вы решили, где находится начало координат и в какую сторону идут оси координат.

Пиксель имеет свойство, называемое цветом, и может иметь или не иметь непрозрачность (или занятость). Цвет обычно описывается тремя числовыми значениями, назовем их «красный», «зеленый» и «синий» или R, G и B. Если существует непрозрачность (или заполнение), ее обычно называют «альфа» или А. Что на самом деле означают R, G, B и A, не имеет значения, если смотреть на то, как они хранятся в памяти. Важно то, что каждый из них кодируется определенным количеством битов. Каждый из R, G, B и A называется каналом.

Описывая, сколько памяти занимает пиксель, можно использовать единицы битов или байтов на пиксель. Оба могут быть сокращены до «bpp», поэтому будьте осторожны с тем, что это такое, и отдавайте предпочтение более явным именам в коде. Также иногда используются биты на канал, и каждый канал может иметь разное количество бит на пиксель. Например, формат rgb565 – это 16 бит на пиксель, 2 байта на пиксель, 5 бит на R- и B-каналы и 6 бит на G-канал.

Пиксель в памяти

Пиксели не бывают произвольных размеров. Пиксель обычно 32 или 16 бит, или 8 или даже 1 бит. 32- и 16-битные значения легко и эффективно обрабатывать на 32- и 64-битных процессорах. Ваше обычное RGB-изображение с 8 битами на канал, скорее всего, находится в памяти с 32-битными пикселями, лишние 8 бит на пиксель просто не используются (часто отмечены X в именах форматов пикселей). Настоящие 24-битные форматы на пиксель редко используются в памяти, потому что обмен некоторой памяти на более простой и эффективный код или схему почти всегда является чистой победой в обработке изображений. Термин «глубина» часто используется для описания того, сколько значащих битов использует пиксель, чтобы отличить его от того, сколько битов или байтов он занимает в памяти. Поэтому обычное RGB-изображение имеет 32 бита на пиксель и глубину 24 бита.

То, как каналы упаковываются в пиксели, определяется форматом пикселя. Существуют десятки форматов пикселей. При декодировании пиксельного формата вы должны сначала понять, относится ли он к массиву байтов (особенно используется, когда каждый канал имеет 8 бит) или к битам в единице. Формат 32 бита на пиксель имеет единицу измерения 32 бита, например, uint32_t на языке C.

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

Также возможно, хотя и крайне редко, что порядок байтов в архитектуре также влияет на порядок битов в байте. Pixman, несомненно унаследовавший его от определений пиксельного формата X11, — единственное место, где я это видел.

Изображение в памяти

Обычный способ хранения изображения в памяти – это размещение его пикселей по одному, строка за строкой. Началом координат выбран верхний левый угол, так что самый левый пиксель самой верхней строки имеет координаты 0,0. Сначала идут все пиксели первой строки, затем второй строки и так далее, включая последнюю строку. Двумерное изображение было размещено в памяти как одномерный массив пикселей. Это показано на рис. 2.

Есть не только количество пикселей width×height, но и каждая строка также имеет некоторые отступы.Область заполнения не используется для хранения чего-либо, она только выравнивает длину строки. Наличие отступов требует новой концепции: шага изображения.

Заполнение часто необходимо из-за аппаратных причин. Чем более специализированное и эффективное оборудование для манипулирования пикселями, тем больше вероятность того, что оно предъявляет особые требования к началу строки и выравниванию длины. Например, Pixman и, следовательно, Cairo (в частности, серверная часть изображений) требуют, чтобы строки были выровнены по 4-байтовым границам. Это упрощает написание эффективных операций с изображениями с использованием векторных или других инструкций, которые могут даже обрабатывать несколько пикселей одновременно.

Шаг или шаг

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

Возможно, вы слышали, что шаг измеряется в байтах, а шаг — в пикселях, или наоборот. Шаг и шаг взаимозаменяемы, поэтому обязательно соблюдайте соглашения, используемые в кодовой базе, над которой вы, возможно, работаете. Не полагайтесь на свое чутье на байты и пиксели здесь.

Адресация пикселя

Как вычислить адрес памяти данного пикселя x,y? Каноническая формула:

Формула начинается с адреса первого пикселя в памяти data_begin, затем переходит к строке y, пока каждая строка имеет длину stride_bytes, и, наконец, переходит к пикселю x в этой строке.

В коде C, если у нас есть 32-битные пиксели, мы можем написать

Обратите внимание, как тип p влияет на вычисления, считая в единицах uint32_t вместо байтов.

Предположим, что формат пикселя в этом примере — argb8888, который определен в битах единичной формы, и мы хотим извлечь значение R:

И наконец, на рис. 3 показана шпаргалка.

Теперь мы рассмотрели самое важное, и вы можете не читать. Остальное просто полезно знать.


Не у всех есть «правильный» путь наверх

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

Многоплоскостные форматы

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

Простым примером с RGB-изображением может быть сохранение канала R в первой плоскости (2D-массив) и каналов GB во второй плоскости. Пиксели на первой плоскости имеют только значение R, а пиксели на второй плоскости имеют значения G и B. Однако на практике этот пример не используется.

Распространенные и реальные варианты использования многоплоскостных изображений — это различные цветовые форматы YUV. Канал Y хранится в первой плоскости, а каналы UV хранятся, например, во второй плоскости. Преимущество этого заключается в том, что, например. плоскость UV может подвергаться субдискретизации — ее разрешение может составлять только половину плоскости с Y, что позволяет сэкономить память.

Мозаичные форматы

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

Поделиться этим сообщением:

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

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

Изображение и пиксель

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

К пикселю можно обращаться с координатами x,y после того, как вы решили, где находится начало координат и в какую сторону идут оси координат.

Пиксель имеет свойство, называемое цветом, и может иметь или не иметь непрозрачность (или занятость). Цвет обычно описывается тремя числовыми значениями, назовем их «красный», «зеленый» и «синий» или R, G и B. Если существует непрозрачность (или заполнение), ее обычно называют «альфа» или А. Что на самом деле означают R, G, B и A, не имеет значения, если смотреть на то, как они хранятся в памяти. Важно то, что каждый из них кодируется определенным количеством битов. Каждый из R, G, B и A называется каналом.

Описывая, сколько памяти занимает пиксель, можно использовать единицы битов или байтов на пиксель. Оба могут быть сокращены до «bpp», поэтому будьте осторожны с тем, что это такое, и отдавайте предпочтение более явным именам в коде. Также иногда используются биты на канал, и каждый канал может иметь разное количество бит на пиксель. Например, формат rgb565 – это 16 бит на пиксель, 2 байта на пиксель, 5 бит на R- и B-каналы и 6 бит на G-канал.

Пиксель в памяти

Пиксели не бывают произвольных размеров. Пиксель обычно 32 или 16 бит, или 8 или даже 1 бит. 32- и 16-битные значения легко и эффективно обрабатывать на 32- и 64-битных процессорах. Ваше обычное RGB-изображение с 8 битами на канал, скорее всего, находится в памяти с 32-битными пикселями, лишние 8 бит на пиксель просто не используются (часто отмечены X в именах форматов пикселей). Настоящие 24-битные форматы на пиксель редко используются в памяти, потому что обмен некоторой памяти на более простой и эффективный код или схему почти всегда является чистой победой в обработке изображений. Термин «глубина» часто используется для описания того, сколько значащих битов использует пиксель, чтобы отличить его от того, сколько битов или байтов он занимает в памяти. Поэтому обычное RGB-изображение имеет 32 бита на пиксель и глубину 24 бита.

То, как каналы упаковываются в пиксели, определяется форматом пикселя. Существуют десятки форматов пикселей. При декодировании пиксельного формата вы должны сначала понять, относится ли он к массиву байтов (особенно используется, когда каждый канал имеет 8 бит) или к битам в единице. Формат 32 бита на пиксель имеет единицу измерения 32 бита, например, uint32_t на языке C.

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

Также возможно, хотя и крайне редко, что порядок байтов в архитектуре также влияет на порядок битов в байте. Pixman, несомненно унаследовавший его от определений пиксельного формата X11, — единственное место, где я это видел.

Изображение в памяти

Обычный способ хранения изображения в памяти – это размещение его пикселей по одному, строка за строкой. Началом координат выбран верхний левый угол, так что самый левый пиксель самой верхней строки имеет координаты 0,0. Сначала идут все пиксели первой строки, затем второй строки и так далее, включая последнюю строку. Двумерное изображение было размещено в памяти как одномерный массив пикселей. Это показано на рис. 2.

Есть не только количество пикселей width×height, но и каждая строка также имеет некоторые отступы. Область заполнения не используется для хранения чего-либо, она только выравнивает длину строки. Наличие отступов требует новой концепции: шага изображения.

Заполнение часто необходимо из-за аппаратных причин. Чем более специализированное и эффективное оборудование для манипулирования пикселями, тем больше вероятность того, что оно предъявляет особые требования к началу строки и выравниванию длины. Например, Pixman и, следовательно, Cairo (в частности, серверная часть изображений) требуют, чтобы строки были выровнены по 4-байтовым границам. Это упрощает написание эффективных операций с изображениями с использованием векторных или других инструкций, которые могут даже обрабатывать несколько пикселей одновременно.

Шаг или шаг

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

Возможно, вы слышали, что шаг измеряется в байтах, а шаг — в пикселях, или наоборот.Шаг и шаг взаимозаменяемы, поэтому обязательно соблюдайте соглашения, используемые в кодовой базе, над которой вы, возможно, работаете. Не полагайтесь на свое чутье на байты и пиксели здесь.

Адресация пикселя

Как вычислить адрес памяти данного пикселя x,y? Каноническая формула:

Формула начинается с адреса первого пикселя в памяти data_begin, затем переходит к строке y, пока каждая строка имеет длину stride_bytes, и, наконец, переходит к пикселю x в этой строке.

В коде C, если у нас есть 32-битные пиксели, мы можем написать

Обратите внимание, как тип p влияет на вычисления, считая в единицах uint32_t вместо байтов.

Предположим, что формат пикселя в этом примере — argb8888, который определен в битах единичной формы, и мы хотим извлечь значение R:

И наконец, на рис. 3 показана шпаргалка.

Теперь мы рассмотрели самое важное, и вы можете не читать. Остальное просто полезно знать.


Не у всех есть «правильный» путь наверх

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

Многоплоскостные форматы

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

Простым примером с RGB-изображением может быть сохранение канала R в первой плоскости (2D-массив) и каналов GB во второй плоскости. Пиксели на первой плоскости имеют только значение R, а пиксели на второй плоскости имеют значения G и B. Однако на практике этот пример не используется.

Распространенные и реальные варианты использования многоплоскостных изображений — это различные цветовые форматы YUV. Канал Y хранится в первой плоскости, а каналы UV хранятся, например, во второй плоскости. Преимущество этого заключается в том, что, например. плоскость UV может подвергаться субдискретизации — ее разрешение может составлять только половину плоскости с Y, что позволяет сэкономить память.

Мозаичные форматы

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

Bpp или бит на пиксель обозначает количество бит на пиксель. Количество различных цветов в изображении зависит от глубины цвета или количества битов на пиксель.

Кратко о математике:

Это похоже на игру с двоичными битами.

Сколько чисел может быть представлено одним битом.

Сколько двухбитовых комбинаций можно составить.

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

Где bpp обозначает количество бит на пиксель. Подставьте 1 в формулу, получите 2, подставьте 2 в формулу, получите 4. Она растет экспоненциально.

Количество разных цветов:

Теперь, как мы сказали в начале, количество различных цветов зависит от количества битов на пиксель.

Таблица некоторых битов и их цвета приведены ниже.

В этой таблице показаны различные биты на пиксель и количество цвета, которое они содержат.

Оттенки

Вы можете легко заметить закономерность экспоненциального роста. Знаменитое изображение в оттенках серого имеет 8 бит на пиксель , что означает, что оно содержит 256 различных цветов или 256 оттенков.

Оттенки могут быть представлены как:

Цветные изображения обычно имеют формат 24 бит/пиксель или 16 бит/пиксель.

Мы узнаем больше о других цветовых форматах и ​​типах изображений в руководстве по типам изображений.

Цветовые значения:

Ранее мы видели в учебнике по понятию пикселя, что значение 0 пикселей обозначает черный цвет.

Черный цвет:

Помните, что значение 0 пикселей всегда соответствует черному цвету. Но не существует фиксированного значения, обозначающего белый цвет.

Белый цвет:

Значение, обозначающее белый цвет, можно рассчитать следующим образом:

В случае 1 бит/пиксель 0 – черный, 1 – белый.

В случае 8 бит/с 0 означает черный, а 255 – белый.

Серый цвет:

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

Серый цвет на самом деле является средней точкой черного и белого. При этом

В случае 8 бит на пиксель значение пикселя, обозначающее серый цвет, составляет 127 или 128 бит на пиксель (если считать от 1, а не от 0).

Требования к хранению изображений

После обсуждения количества бит на пиксель у нас есть все, что нужно для расчета размера изображения.

Размер изображения

Размер изображения зависит от трех факторов.

  • Количество строк
  • Количество столбцов
  • Количество бит на пиксель

Формула расчета размера приведена ниже.

Размер изображения = количество строк * столбцов * бит/пиксель

Это означает, что если у вас есть изображение, скажем, вот это:

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

Размер изображения = количество строк * столбцов * бит/пиксель

Но поскольку это не стандартный ответ, который мы распознаем, мы преобразуем его в наш формат.

Преобразование в байты = 8388608 / 8 = 1048576 байт.

Перевод в килобайты = 1048576 / 1024 = 1024 КБ.

Перевод в мегабайты = 1024/1024 = 1 Мб.

Так рассчитывается размер изображения и сохраняется. Теперь в формуле, если вам задан размер изображения и количество бит на пиксель, вы также можете вычислить строки и столбцы изображения, если изображение квадратное (одинаковые строки и один и тот же столбец).

Между количеством цветов, придаваемых растровой точке, и количеством информации, которое необходимо выделить для хранения цвета точки, существует зависимость, определяемая соотношением (формула Р. Хартли):

где

I- количество информации

N количество цветов, присвоенных точке.

Таким образом, если для точки изображения задано количество цветов N= 256, то количество информации, необходимой для ее хранения (глубина цвета) в соответствии с формулой Р. Хартли, будет равно до I= 8 бит.

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

Для реализации каждого из графических режимов экрана монитора необходим определенный информационный объем видеопамяти компьютера (V), который определяется из соотношения

где

ТО- количество точек изображения на экране монитора (К=А Б)

НО- количество горизонтальных точек на экране монитора

IN- количество точек по вертикали на экране монитора

I– количество информации (глубина цвета), т.е. количество бит на пиксель.

Так, если экран монитора имеет разрешение 1024 на 768 пикселей и палитру, состоящую из 65536 цветов, то

глубина цвета будет равна I = log 2 65 538 = 16 бит,

количество пикселей изображения будет равно K = 1024 x 768 = 786432

Требуемый информационный объем видеопамяти в соответствии будет равен V = 786432 16 бит = 12582912 бит = 1572864 байт = 1536 КБ = 1,5 МБ.

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

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

Четные и нечетные числа

Согласно древним славянским традициям, четное количество цветов в букете имеет траурное значение и заряжает букет негативной энергией.

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

Самое счастливое число в немецком букете – восемь, несмотря на то, что оно четное.

В США чаще всего дарят вместе 12 цветов. Жители Токио спокойно отреагируют, если вы подарите им по 2 цветка, главное не 4 - эта цифра считается для них символом смерти.

У японцев вообще свой язык растений, и каждое число имеет свое значение. Например, одна роза — это знак внимания, три — уважения, пять — любви, семь — страсти и обожания, девять — преклонения. Японцы преподносят букет из 9 цветов своим кумирам, а из 7 – любимым женщинам. В нашей стране также можно дарить четное количество растений, если их больше 15 в одном наборе.

Язык цветов

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

О чем говорят цифры

Исключением из правила, запрещающего дарить четное количество цветов, являются розы, их может быть даже два.

Для этих красивых растений существует отдельный язык, определяющий значение каждого из их чисел:

Как подарить девушке розу

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

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

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

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

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

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

Зайдите практически на любой форум фотографии, и вы обязательно наткнетесь на обсуждение преимуществ файлов RAW и JPEG. Одной из причин, по которой некоторые фотографы предпочитают формат RAW, является большая битовая глубина (глубина цвета)*, содержащаяся в файле. Это позволяет делать фотографии более высокого технического качества, чем то, что вы можете получить из файла JPEG.

*Битглубина(разрядность), или цветглубина(глубина цвета, по-русски это определение чаще используется) — количество битов, используемых для представления цвета при кодировании одного пикселя растровой графики или видеоизображения. Часто выражается в битах на пиксель (bpp). Википедия

Что такое глубина цвета?

Компьютеры (и устройства, управляемые встроенными компьютерами, такие как цифровые зеркальные камеры) используют двоичную систему. Двоичная нумерация состоит из двух цифр — 1 и 0 (в отличие от десятичной системы, включающей 10 цифр). Одна цифра в двоичной системе называется «бит» (англ. «бит», сокращение от «двоичная цифра», «двоичная цифра»).

Максимально возможное восьмибитное число – 1 111 1111, или 255 в десятичном формате. Это важное число для фотографов, поскольку оно присутствует во многих программах обработки изображений, а также в старых дисплеях.

Цифровая съемка

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

Файлы JPEG

Файлы JPEG записывают информацию о цвете и яркости для каждого пикселя в виде трех восьмизначных чисел, по одному для красного, зеленого и синего каналов (это те же самые цветовые каналы, которые вы видите при построении цветовой гистограммы в Photoshop). или на камеру).

Этот градиент был сохранен в 24-битном файле (8 бит на канал), что достаточно для передачи мягких цветовых градаций.

Этот градиент был сохранен как 16-битный файл. Как видите, 16 бит недостаточно для передачи мягкого градиента.

RAW-файлы

Файлы RAW назначают больше битов каждому пикселю (большинство камер имеют 12- или 14-битные процессоры). Больше битов означает больше чисел и, следовательно, больше тонов на канал.

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

Обработка внутри камеры

постобработка

Файл RAW отличается от JPEG тем, что содержит все данные, полученные датчиком камеры в течение периода экспозиции. Когда вы обрабатываете файл RAW с помощью программного обеспечения для преобразования RAW, программное обеспечение выполняет преобразование, аналогичное тому, что делает внутренний процессор камеры при съемке в формате JPEG. Разница в том, что вы задаете параметры внутри используемой вами программы, а те, что заданы в меню камеры, игнорируются.

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

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

Результат наиболее заметен в областях с плавными и длинными переходами оттенков, например на голубом небе. Вместо мягкого градиента от светлого к темному вы увидите наслоение цветных полос. Этот эффект также известен как постеризация. Чем больше вы настраиваете, тем больше это проявляется на изображении.

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

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

При ближайшем рассмотрении на небе виден эффект постеризации. Работа с 16-битным файлом TIFF может устранить или, по крайней мере, свести к минимуму эффект полос.

16-битные файлы TIFF

Однако, если вы планируете выполнять постобработку в Photoshop, рекомендуется сохранить изображение как 16-битный файл.В этом случае изображение, полученное с 12- или 14-битного сенсора, будет «растянуто», чтобы заполнить 16-битный файл. После этого вы можете поработать над ним в Photoshop, зная, что дополнительная глубина цвета поможет вам добиться максимального качества.

Это изображение, которое я сделал с настройкой RAW+JPEG на камеру EOS 350D. Камера сохранила две версии файла: файл JPEG, обработанный процессором камеры, и файл RAW, содержащий всю информацию, записанную 12-битным датчиком камеры.

Здесь вы можете увидеть сравнение правого верхнего угла обработанного файла JPEG и файла RAW. Оба файла были созданы камерой с одинаковыми настройками экспозиции, и единственная разница между ними — глубина цвета. Мне удалось «вытянуть» в JPEG «переэкспонированные» детали, которые не различимы в файле RAW. Если бы я хотел продолжить работу с этим изображением в Photoshop, я мог бы сохранить его как 16-битный файл TIFF, чтобы обеспечить наилучшее качество изображения во время обработки.

Почему фотографы используют JPEG?

Тот факт, что не все профессиональные фотографы постоянно используют формат RAW, ничего не значит. Например, свадебные и спортивные фотографы часто работают с форматом JPEG.

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

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

Глубина цвета на экранах компьютеров

Битовая глубина также относится к глубине цвета, которую способны отображать компьютерные мониторы. Читателю, использующему современные дисплеи, может быть трудно поверить в это, но компьютеры, которыми я пользовался в школе, могли воспроизводить только 2 цвета — белый и черный. «Обязательный» компьютер того времени — Commodore 64, способный воспроизводить целых 16 цветов. По информации из Википедии, продано более 12 единиц этого компьютера.


Компьютер Commodore 64. Фото Билла Бертрама

Файлы HDR

Многие из вас знают, что изображения с расширенным динамическим диапазоном (HDR) создаются путем объединения нескольких версий одного и того же изображения, снятых с разными настройками экспозиции. Но знаете ли вы, что программное обеспечение генерирует 32-битное изображение с более чем 4 миллиардами тональных значений на канал на пиксель — всего лишь скачок по сравнению с 256 тонами в файле JPEG.

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

Заключение

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

Решение задач по кодированию графической информации.

Растровая графика.

Векторная графика.

Введение

Данное электронное пособие содержит группу заданий по теме «Кодирование графической информации». Коллекция заданий разделена на типы заданий по заданной теме. Каждый вид заданий рассматривается с учетом дифференцированного подхода, т. е. рассматриваются задания минимального уровня (оценка «3»), общего уровня (оценка «4»), продвинутого уровня (оценка «5»). Данные задания взяты из различных учебников (список прилагается). Подробно рассматриваются решения всех задач, даются методические рекомендации по каждому типу задач, дается краткий теоретический материал. Для удобства руководство содержит ссылки на закладки.

Растровая графика.

<р>1. Определение объема видеопамяти.

<р>2. Определение разрешения экрана и установка графического режима.

1. Определение объема видеопамяти

В задачах этого типа используются следующие понятия:

· объем видеопамяти

· графический режим,

· глубина цвета,

· разрешение экрана,

Во всех подобных задачах нужно найти ту или иную величину.

Видеопамять - это специальная оперативная память, в которой формируется графическое изображение. Другими словами, чтобы картинка попала на экран монитора, ее надо где-то хранить. Вот для чего нужна видеопамять. Чаще всего его значение составляет от 512 Кб до 4 Мб для лучших ПК с 16,7 млн ​​цветов.

Объем видеопамяти рассчитывается по формуле: V=I*X*Y, где I — глубина цвета одной точки, x,Y — размеры экрана по горизонтали и вертикали (произведение x и y — разрешение экрана) .

Экран дисплея может работать в двух основных режимах: текстовом и графическом.

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

- разрешение (количество точек, с которым изображение воспроизводится на экране) - в настоящее время типовые уровни разрешения составляют 800*600 точек или 1024*768 точек. Однако для мониторов с большой диагональю можно использовать разрешение 1152*864 пикселей.

- глубина цвета (количество бит, используемое для кодирования цвета точки), например, 8, 16, 24, 32 бита. Каждый цвет можно рассматривать как возможное состояние точки, Тогда количество отображаемых на экране монитора цветов можно рассчитать по формуле K=2 I, где K- количество цветов I– глубина цвета или разрядность.

Кроме вышеперечисленных знаний, учащийся должен иметь представление о палитре:

- палитра (количество цветов, которые используются для воспроизведения изображения), например 4 цвета, 16 цветов, 256 цветов, 256 оттенков серого, 216 цветов в режиме High color или 224, 232 цвета в режиме True цветовой режим.

Учащийся также должен знать взаимосвязь между единицами информации, уметь переводить из мелких единиц в более крупные, Кбайты и Мбайты, пользоваться обычным калькулятором и Wise Calculator.

Уровень "3"

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

Глубина цвета (бит на точку)

<р>1. Всего точек на экране (разрешение): 640 * 480 = 307200
2. Требуемый объем видеопамяти V= 4 бит * 307200 = 1228800 бит = 153600 байт = 150 Кб.
3. Аналогично рассчитывается необходимое количество видеопамяти для других графических режимов. При расчетах учащийся использует калькулятор для экономии времени.

Читайте также:

Бит на пиксель Количество цветов
1 бит на пиксель 2 цвета
2 бита на пиксель 4 цвета
3 бита на пиксель 8 цветов
4 бита на пиксель 16 цветов
5 бит на пиксель 32 цвета
6 бит на пиксель 64 цвета
7 бит на пиксель 128 цветов
8 бит на пиксель 256 цветов
10 бит на пиксель 1024 цвета
16 бит на пиксель 65536 цветов
24 бит на пиксель 16777216 цветов (16,7 миллиона цветов)
32 бита на пиксель 4294967296 цветов (4294 миллиона цветов)