"Информатика. Базовый уровень", Босова Л.Л., Босова А.Ю.
Графическое изображение в компьютере хранится как данные, которые можно закодировать разными способами. В растровом варианте изображение разбивается на пиксели, и для каждого записывается цвет; в векторном сохраняются описания геометрических объектов. Объём и качество зависят от способа кодирования, числа пикселей, глубины цвета и формата файла. Эти характеристики помогают оценить, сколько места займёт изображение и как оно будет выглядеть при увеличении.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Пиксель — минимальный элемент растрового изображения. Такое изображение можно представить как сетку маленьких ячеек, каждая из которых имеет свой цвет. Чем больше ячеек, тем подробнее можно передать мелкие детали.
Разрешение изображения — количество пикселей по горизонтали и вертикали, например 800 × 600. Оно показывает, из скольких точек состоит изображение, а не каковы его размеры в сантиметрах. Разрешение устройства вывода — отдельная характеристика: оно описывает, сколько точек экран или принтер выводит на единицу длины.
Глубина цвета — число бит, отведённых для кодирования цвета одного пикселя. Если глубина равна i битам, возможно до 2ⁱ разных кодов цвета. Эта характеристика помогает понять, насколько разнообразные оттенки можно представить.
Палитра — набор цветов, доступных для кодирования изображения. При глубине i бит размер палитры не может превышать 2ⁱ цветов, поскольку именно столько различных кодов можно составить. Палитра особенно важна, когда изображение хранится с ограниченным набором оттенков.
Чтобы сохранить растровую картинку, компьютер представляет её прямоугольной сеткой пикселей. Затем он записывает цвет каждой ячейки, потому что без этих значений нельзя восстановить, какие участки были светлыми, тёмными или окрашенными. Последовательность кодов цветов и становится цифровым описанием изображения.
Для цвета пикселя отводят определённое количество бит. Каждый бит может принимать одно из двух значений, поэтому i бит образуют 2ⁱ разных комбинаций; следовательно, ими можно задать до 2ⁱ цветов. Если требуется закодировать k цветов, нужно выбрать такое целое число i, чтобы 2ⁱ ≥ k, то есть не менее log₂ k бит с округлением вверх.
Объём несжатого растра можно оценить, перемножив ширину в пикселях, высоту и глубину цвета. Сначала получается количество бит, потому что глубина указывает число бит на каждый пиксель; чтобы получить байты, результат делят на 8. Например, увеличение любого из трёх множителей повышает объём, а сама оценка не учитывает сжатие и служебные данные файла.
Растровое и векторное кодирование хранят разные сведения. В растре описан цвет каждой точки, поэтому изображение естественно передаёт фотографии и сложные переходы оттенков. В векторном файле сохраняются геометрические объекты — например, линии, окружности и их параметры; для отображения компьютер строит изображение из этих описаний.
Способ кодирования и формат выбирают с учётом изображения и того, как его будут использовать. При увеличении растра становятся заметны отдельные пиксели, а векторные контуры можно пересчитать для нового масштаба без потери их чёткости. При этом формат и сжатие влияют на размер файла, а сжатие с потерями может ухудшить качество; вектор не обязательно меньше растра, особенно если изображение содержит много сложных объектов.
| Свойство | Растровое изображение | Векторное изображение |
|---|---|---|
| Что кодируется | Цвет каждого пикселя | Геометрические объекты и их параметры |
| Качество при увеличении | Могут стать заметны пиксели, чёткость снижается | Контуры сохраняют чёткость при масштабировании |
| Зависимость объёма от изображения | Зависит от числа пикселей, глубины цвета и сжатия | Зависит от количества и сложности объектов |
| Типичные области применения | Фотографии, сложные изображения с оттенками | Схемы, логотипы, значки, чертежи |
Сравнивайте изображения по строке, которая важна для вашей задачи: например, оцените масштабирование или предполагаемый объём. Применение — подсказка, а не жёсткое правило: окончательный выбор зависит от содержания и требований к качеству.
Задача 1. Изображение размером 100 × 100 пикселей кодируется палитрой из 256 цветов. Найдите минимальную глубину цвета. Нужно подобрать наименьшее число бит, при котором число возможных кодов не меньше размера палитры.
Ответ: минимальная глубина цвета — 8 бит на пиксель. Размеры 100 × 100 для нахождения глубины не нужны: они потребовались бы, если бы вычисляли объём всего изображения.
Задача 2. Рассчитайте объём несжатого изображения размером 800 × 600 пикселей при глубине цвета 24 бита, выразив ответ в байтах и килобайтах. Сначала найдём число пикселей, затем учтём число бит на каждый из них. Для перевода используем 8 бит = 1 байт и 1 Кбайт = 1024 байта.
Ответ: 11 520 000 бит, или 1 440 000 байт, или 1 406,25 Кбайт. Это оценка объёма несжатых данных; размер сохранённого файла может быть другим.
Задача 3. Два изображения имеют одинаковые размеры в пикселях, но разные глубину цвета и формат хранения. Сравните объём несжатых данных и объясните, почему размеры файлов после сохранения могут различаться. Для такого сравнения важно не смешивать расчёт исходных данных с результатом работы формата.
Ответ: при одинаковых размерах в пикселях несжатые объёмы сравнивают по глубине цвета: больше бит на пиксель — больше объём. После сохранения файлы могут иметь разные размеры из-за сжатия и других особенностей форматов, поэтому одной глубины недостаточно для точного сравнения.
Путать размеры изображения в пикселях с физическими размерами на экране или бумаге — значит смешивать количество точек с длиной. Такая ошибка возникает потому, что оба параметра называют размером. Проверка: у пиксельного размера единицы «пиксели», а физический размер выражают, например, в сантиметрах.
Считать, что глубина i бит задаёт i цветов, неверно: она задаёт до 2ⁱ комбинаций. Обычно путают число бит с числом кодов. Для проверки возведите 2 в степень глубины: например, при 4 битах получится 16 цветов.
При расчёте несжатого объёма результат сначала получают в битах, а не байтах. Если забыть перевод, ответ будет завышен в 8 раз. Проверьте единицы: чтобы перейти от битов к байтам, разделите на 8.
Нельзя считать, что вектор всегда чёткий при любом увеличении и обязательно компактнее. Векторные контуры масштабируются хорошо, но множество сложных объектов может занимать много места. Оцените содержание: фотография и сложная текстура могут быть выгоднее представлены растром, а не набором векторных фигур.
Для расчётов нужны знания о двоичном кодировании, единицах информации и переводе битов в байты. Та же идея оценки объёма данных применяется при изучении кодирования звука: результат зависит от характеристик представления и числа отсчётов. Понимание объёма помогает выбирать графический формат, настраивать качество изображения и оценивать размер файлов перед хранением или передачей.
Чем разрешение изображения отличается от глубины цвета?
Разрешение изображения показывает количество пикселей по горизонтали и вертикали. Глубина цвета показывает, сколько бит отводится на цвет одного пикселя и сколько цветов можно закодировать.
Почему при увеличении растровое изображение теряет чёткость?
У растрового изображения заданное число пикселей, и при увеличении каждый пиксель становится крупнее. Поэтому границы и детали могут выглядеть ступенчатыми или размытыми.
Как узнать, сколько цветов можно закодировать заданным числом бит?
Если на цвет выделено i бит, число возможных кодов равно 2ⁱ. Например, 8 бит позволяют закодировать 256 цветов.
Почему рассчитанный объём изображения может не совпадать с размером файла?
Расчёт по числу пикселей и глубине цвета даёт объём несжатых данных. Файл может быть меньше или больше из-за сжатия, палитры, служебной информации и особенностей формата.
Всегда ли векторный формат лучше растрового?
Нет, подходящий формат зависит от изображения и задачи. Вектор удобен для схем и логотипов, а фотографии обычно лучше хранить в растровом формате; размер файла тоже определяется содержанием.
§ 15. Кодирование графической информации