На Горох
Информатика, 11 класс

§ 14. Кодирование цветовой информации

"Информатика (базовый уровень)", Гейн А.Г., Гейн А.А.

Объяснение темы В оглавлении: § 14. Кодирование цветовой информации

Кратко о теме

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

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

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

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

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

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

Как это устроено

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

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

При глубине цвета n бит можно закодировать 2ⁿ различных вариантов цвета, потому что каждый бит имеет два состояния: 0 или 1. Перебор всех сочетаний этих состояний и даёт число кодов, равное произведению двоек n раз. Поэтому увеличение глубины цвета расширяет набор оттенков, но одновременно увеличивает объём памяти на каждый пиксель.

В полноцветном режиме для RGB обычно используют по 8 бит на каждую составляющую, то есть 24 бита на пиксель и 2²⁴ возможных цветов. У каждого канала тогда 256 уровней интенсивности: от 0 до 255. Перемножение трёх независимых наборов значений даёт 16 777 216 комбинаций, поэтому можно передавать плавные переходы и множество оттенков.

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

Способы кодирования цвета в растровом изображении

Режим кодированияБит на пиксельКоличество цветовЧто хранится в кодеОбъём данных на пиксель
Чёрно-белое изображение12Код чёрного или белого цвета1 бит
Изображение в градациях серого8256Уровень яркости серого1 байт
Палитровое изображение с 16 цветами416Номер цвета в палитре4 бита
Палитровое изображение с 256 цветами8256Номер цвета в палитре1 байт
Полноцветное RGB-изображение242²⁴Значения красного, зелёного и синего каналов3 байта

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

Разбор задач

Определение цвета по коду RGB

Условие: определить цвет пикселя с кодом RGB(255, 0, 0) и RGB(0, 255, 255). Нужно сопоставить каждое число с интенсивностью красного, зелёного и синего каналов. Значение 0 означает отсутствие соответствующего канала, а 255 — его максимальную интенсивность.

  1. В записи RGB(255, 0, 0) красный канал включён полностью, зелёный и синий выключены.
  2. Такое сочетание даёт чистый красный цвет.
  3. В записи RGB(0, 255, 255) красный отсутствует, а зелёный и синий имеют максимальную интенсивность.
  4. Смешение зелёного и синего света даёт голубой, или циановый, цвет.

Ответ: RGB(255, 0, 0) — красный цвет; RGB(0, 255, 255) — голубой цвет.

Объём 24-битного изображения

Условие: найти объём несжатого изображения размером 800 × 600 пикселей с глубиной цвета 24 бита. Сначала нужно определить общее количество пикселей, затем умножить его на число бит для одного пикселя. После этого результат переводится в байты, поскольку 1 байт = 8 бит.

  1. Количество пикселей: 800 · 600 = 480 000.
  2. Количество информации: 480 000 · 24 = 11 520 000 бит.
  3. Переводим в байты: 11 520 000 : 8 = 1 440 000 байт.
  4. В десятичных мегабайтах это 1,44 Мбайт; без учёта служебных данных файла.

Ответ: объём пиксельных данных равен 1 440 000 байт, или примерно 1,44 Мбайт.

Сравнение палитрового и RGB-кодирования

Условие: изображение 1024 × 768 пикселей использует палитру из 256 цветов. Найти объём кодов пикселей и сравнить его с полноцветным RGB-кодированием. Число 256 равно 2⁸, поэтому палитровый индекс занимает 8 бит, тогда как RGB-код занимает 24 бита.

  1. Число пикселей: 1024 · 768 = 786 432.
  2. Палитровый объём: 786 432 · 8 : 8 = 786 432 байта.
  3. RGB-объём: 786 432 · 24 : 8 = 2 359 296 байт.
  4. Отношение 2 359 296 : 786 432 = 3, значит RGB требует втрое больше памяти для пиксельных кодов.

Ответ: палитровое кодирование занимает 786 432 байта, а RGB — 2 359 296 байт; разница объясняется глубиной 8 и 24 бита на пиксель.

Типичные ошибки

Считать, что при глубине цвета n бит кодируется n цветов, неверно: каждый бит имеет два состояния, поэтому вариантов 2ⁿ. Такую ошибку допускают, когда путают число разрядов с числом комбинаций. Проверка проста: для 1 бита должно получаться 2 цвета, для 2 бит — 4.

Иногда 24-битный RGB-код ошибочно принимают за 24 бита на каждый канал. На самом деле 24 бита делятся между тремя каналами поровну: по 8 бит. Убедиться можно вычислением 3 · 8 = 24 и сравнением с объёмом 3 байта на пиксель.

Путаница порядка каналов RGB приводит к неверному определению цвета. В записи RGB числа читаются именно как красный, зелёный, синий, поэтому RGB(255, 0, 0) не может быть зелёным. Перед ответом полезно подписать каждое значение названием канала.

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

Связь с другими темами

Для понимания кодирования цвета нужны двоичное кодирование, степени двойки, единицы измерения информации и представление растрового изображения. Эти знания объясняют, откуда берётся формула 2ⁿ и как переводить биты в байты. Без них трудно оценивать объём данных по разрешению и глубине цвета.

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

Дальше эти знания пригодятся при изучении форматов изображений, сжатия данных и различий между цветовыми моделями RGB и CMYK. Форматы по-разному хранят пиксели, палитру и дополнительные сведения. Понимание базового кода помогает объяснить, почему после сжатия размер файла меняется, а качество может сохраняться или ухудшаться.

Что запомнить

  • Растровое изображение состоит из пикселей.
  • Цвет пикселя задаётся числовым кодом.
  • В модели RGB цвет образуется из красной, зелёной и синей составляющих.
  • При n битах на цвет можно закодировать 2ⁿ вариантов.
  • В 24-битном RGB-кодировании на каждый канал приходится 8 бит.
  • Палитровое кодирование хранит номер цвета, а не полный набор его составляющих.
  • Размер несжатого изображения зависит от разрешения и глубины цвета.

Частые вопросы по теме

Почему смешение красного и зелёного в RGB даёт жёлтый цвет?

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

Почему 24 бита позволяют закодировать 2^24 цветов?

В 24-битном коде есть три канала по 8 бит. Каждый канал имеет 2⁸ = 256 значений, поэтому всего получается 256 · 256 · 256 = 2²⁴ вариантов.

Чем палитровое кодирование отличается от полноцветного RGB?

При палитровом кодировании пиксель хранит номер заранее заданного цвета. В полноцветном RGB для каждого пикселя записываются значения красного, зелёного и синего каналов.

Почему размер изображения может быть большим, даже если на экране оно выглядит небольшим?

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

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

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

Спросить по теме параграфа

§ 14. Кодирование цветовой информации

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
11 класс
Учебник
"Информатика (базовый уровень)", Гейн А.Г., Гейн А.А.