"Информатика (базовый уровень)", Угринович Н.Д.
Растровое изображение хранится как прямоугольная сетка пикселей, и для каждого элемента этой сетки записывается код цвета. Поэтому объём данных зависит от двух параметров: количества пикселей и глубины цвета — числа бит на один пиксель. Зная разрешение изображения и глубину цвета, можно рассчитать объём несжатых данных. Такой расчёт помогает сравнивать изображения и понимать, почему фактический размер файла зависит ещё и от сжатия и служебной информации.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Пиксель — минимальный элемент растрового изображения, которому задают определённый цвет. Представьте картинку как сетку из маленьких клеток: каждая клетка и есть пиксель. Чем больше таких элементов, тем больше деталей можно передать, поэтому пиксели нужны для цифрового представления изображения.
Разрешение изображения — количество пикселей по горизонтали и вертикали. Его записывают двумя числами, например 800 × 600: первое обозначает ширину сетки, второе — высоту. Такая запись помогает понять, сколько элементов изображения нужно хранить, и оценить, насколько подробно оно может передавать детали.
Глубина цвета — число бит, отводимых для кодирования цвета одного пикселя. Если на цвет выделено больше бит, можно использовать больше двоичных кодов и, следовательно, представить больше цветов или оттенков. Этот параметр нужен, чтобы описать, насколько разнообразной может быть палитра изображения.
Растровое изображение — изображение, заданное набором пикселей, расположенных в строках и столбцах. Оно подходит для фотографий и других картинок с множеством цветовых переходов. При сильном увеличении отдельные пиксели могут стать заметными, потому что изображение состоит из конечного числа элементов.
При кодировании растровое изображение представляют прямоугольной матрицей — таблицей пикселей. Для каждого элемента этой таблицы записывают код цвета, поэтому картинку можно сохранить как последовательность данных. Чтобы восстановить изображение, устройство считывает коды и отображает соответствующие цвета на нужных местах сетки.
Количество пикселей находят умножением ширины изображения в пикселях на его высоту. Например, у сетки шириной 800 и высотой 600 элементов всего 800 · 600 пикселей. Перемножение требуется потому, что в каждой строке одинаковое число элементов, а строк столько, сколько указано в высоте. Для каждого из полученных пикселей нужно сохранить цвет.
Глубина цвета определяет длину двоичного кода одного пикселя. При глубине i бит возможны 2^i разных комбинаций, потому что каждый бит может быть равен 0 или 1. Например, 2 бита дают 2² = 4 кода, а 8 бит — 2⁸ = 256. Увеличение глубины позволяет различать больше оттенков, но требует больше данных для хранения цвета каждого пикселя.
Для несжатого изображения объём данных в битах вычисляют по формуле I = K · i. Здесь I — объём данных, K — общее число пикселей, а i — глубина цвета в битах на пиксель. Формула получается так: для каждого из K элементов хранится i бит, значит, нужно сложить K одинаковых порций данных. Если глубина цвета или число пикселей растут, объём тоже увеличивается.
Результат по формуле сначала выражен в битах. Чтобы получить байты, количество бит делят на 8, а для перевода байтов в килобайты обычно делят на 1024. Например, 16 384 бита — это 2 048 байт, или 2 Кбайт. Такой расчёт описывает данные изображения без сжатия и не включает служебные сведения формата, поэтому фактический размер файла может отличаться.
| Параметр | Что показывает | Как влияет на объём данных |
|---|---|---|
| Размер изображения в пикселях | Ширину и высоту сетки | Через их произведение задаёт общее число пикселей |
| Количество пикселей | Сколько элементов изображения нужно закодировать | Больше пикселей — больше кодов цвета для хранения |
| Глубина цвета | Число бит на один пиксель | Больше бит на пиксель — больше данных изображения |
| Количество возможных цветов | Число разных кодов для цвета пикселя | Определяется глубиной цвета: 2^i вариантов |
| Формула объёма несжатого изображения | Связь между числом пикселей, глубиной цвета и объёмом | I = K · i бит |
Чтобы оценить объём, сначала найдите общее число пикселей по ширине и высоте, затем учтите глубину цвета. Таблица также показывает, что разрешение и глубина цвета влияют на объём разными способами. Если требуется размер файла, отдельно проверьте, учтены ли сжатие и служебная информация.
Задача 1. Изображение имеет разрешение 10 × 10 пикселей. Сколько пикселей оно содержит? Нужно определить число элементов всей сетки, а не только количество в одной строке или столбце. Поэтому перемножим значения разрешения.
Задача 2. Для кодирования цвета пикселя используют 4 бита. Сколько различных цветов можно закодировать? Четыре бита задают не четыре цвета, а набор двоичных комбинаций длиной четыре знака. Число таких комбинаций равно двум в степени, равной числу битов.
Задача 3. Несжатое изображение размером 320 × 200 пикселей кодируется глубиной цвета 8 бит. Найдём объём данных в байтах и килобайтах. Сначала посчитаем количество пикселей, затем определим объём в битах и переведём его в требуемые единицы. Так мы не перепутаем число элементов изображения с числом бит на элемент.
Путают разрешение и глубину цвета. Разрешение задаёт размеры сетки в пикселях, а глубина цвета показывает число бит на один пиксель. Ошибка возникает из-за того, что оба параметра связаны с изображением, но описывают разные вещи. Проверьте себя: в записи 800 × 600 указаны размеры, а глубину обычно выражают в битах.
Считают число цветов как i, а не 2^i. Биты задают длину двоичного кода, а не готовое количество вариантов. Поэтому при 4 битах кодов 16, а не 4. Для проверки возведите 2 в степень, равную глубине цвета.
Используют только ширину или только высоту. Тогда считается число пикселей в одной строке или одном столбце, а не во всём изображении. Такую ошибку допускают, когда забывают о прямоугольной сетке. Проверьте, что общее число пикселей получено умножением ширины на высоту.
Смешивают биты и байты. Формула сначала даёт объём в битах, а в условии могут просить байты или килобайты. Из-за пропущенного перевода ответ отличается в несколько раз или даже больше. Подпишите единицу после каждого действия: биты делят на 8 для получения байтов, затем байты переводят в килобайты.
Для расчётов нужны знания о двоичном кодировании: каждый бит принимает значение 0 или 1, а несколько бит образуют код. Также пригодятся понятия бита и байта и правила перевода единиц информации, чтобы правильно записать результат в нужной единице. Без этих основ нельзя надёжно посчитать объём данных изображения.
Расчёт объёма помогает разбираться в растровых форматах и сжатии изображений. Сжатие меняет способ хранения данных и может уменьшить размер файла, а форматы могут содержать служебную информацию. Поэтому формула для несжатого изображения служит оценкой объёма данных, а не всегда точным прогнозом размера готового файла.
Что такое пиксель?
Пиксель — минимальный элемент растрового изображения, которому соответствует определённый цвет. Множество пикселей, расположенных сеткой, образует картинку.
Чем разрешение отличается от глубины цвета?
Разрешение показывает, сколько пикселей расположено по горизонтали и вертикали. Глубина цвета указывает, сколько бит хранится для кодирования цвета одного пикселя.
Почему при глубине цвета 8 бит можно закодировать 256 цветов?
Каждый бит может принимать одно из двух значений, поэтому 8 бит образуют 2⁸ возможных кодов. Так как 2⁸ = 256, можно закодировать 256 вариантов цвета.
Как вычислить объём несжатого изображения?
Сначала умножьте ширину изображения в пикселях на высоту и получите число пикселей K. Затем умножьте K на глубину цвета i: I = K · i бит. Для перевода в байты разделите результат на 8.
Почему размер файла может отличаться от результата расчёта по формуле?
Формула I = K · i считает объём данных о цветах без сжатия. Формат файла может сжимать изображение, а также хранить служебные сведения, поэтому размер файла не обязательно совпадает с расчётом.
1.2.1. Кодирование графической информации