"Информатика (изд. "БИНОМ. Лаборатория знаний")", Угринович Н.Д.
Растровое изображение хранится как таблица пикселей, каждому из которых назначается код цвета. От ширины и высоты изображения зависит число пикселей, а от глубины цвета — количество доступных оттенков. В работе используются формулы 2ⁱ для подсчёта цветов и N × i для определения объёма данных, где N — число пикселей, а i — число бит на пиксель. Эти знания помогают оценивать качество изображения и необходимую память.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Пиксель — минимальный элемент растрового изображения, которому при кодировании задаётся цвет. На экране пиксели образуют видимую картинку, а их координаты помогают найти нужный элемент. Чем больше пикселей используется, тем подробнее можно передать мелкие детали.
Глубина цвета — количество бит, отведённых для кодирования цвета одного пикселя. Она определяет число доступных вариантов цвета: при i битах получают 2ⁱ вариантов. Этот показатель нужен, чтобы оценить точность передачи оттенков и объём данных.
Растровое изображение — изображение, представленное совокупностью пикселей, расположенных в строках и столбцах. У него есть ширина и высота, а общее число элементов равно их произведению. Такое представление удобно для фотографий и сложных цветных картинок.
RGB-кодирование — представление цвета интенсивностями красной, зелёной и синей составляющих. Смешивая эти три компонента в разных количествах, получают множество оттенков. RGB применяют в экранах и во многих форматах цифровых изображений.
Изображение разбивают на пиксели, потому что компьютер должен хранить картинку в виде отдельных чисел. Каждый пиксель получает код, а неразрывная последовательность таких кодов воспроизводит изображение. Координата обычно задаётся парой: номер столбца определяет положение по горизонтали, а номер строки — по вертикали.
Пиксели располагаются в строках и столбцах, поэтому их общее количество находят умножением ширины на высоту: N = W × H. Например, у изображения 100 × 80 будет 8000 пикселей. Нумерация позволяет обратиться к конкретной точке и изменить только её цвет.
Если на один пиксель выделено i бит, каждый бит может быть равен 0 или 1. Поэтому число комбинаций равно 2ⁱ: один бит даёт 2 цвета, два бита — 4, а восемь бит — 256. Чтобы найти глубину по известному числу цветов, подбирают такую степень двойки, которая даёт это число.
Несжатый файл хранит код каждого пикселя, поэтому его объём в битах равен произведению N × i. Для перевода в байты результат делят на 8, поскольку в одном байте восемь бит. Если служебные данные формата не учитываются, получается минимальная оценка объёма изображения.
При чёрно-белом представлении пикселю достаточно одного бита: 0 и 1 обозначают два цвета. В индексированном режиме код пикселя указывает номер цвета в заранее заданной палитре, например от 0 до 255. В RGB отдельные группы битов хранят интенсивности красного, зелёного и синего, поэтому 24 бита дают 2²⁴ сочетаний.
Увеличение разрешения добавляет пиксели и позволяет точнее передавать контуры и детали. Увеличение глубины цвета добавляет оттенки и уменьшает заметность резких переходов. Однако в обоих случаях возрастает число бит, поэтому увеличивается и объём несжатого файла.
| Характеристика | Чёрно-белое | 16 цветов | 256 цветов | 24-битный цвет |
|---|---|---|---|---|
| Число возможных цветов | 2 | 16 | 256 | 2²⁴ = 16 777 216 |
| Глубина цвета, бит на пиксель | 1 | 4 | 8 | 24 |
| Минимальный объём данных на один пиксель | 1 бит | 4 бита | 8 бит = 1 байт | 24 бита = 3 байта |
| Пример представления цвета | 0 или 1 | Индекс от 0 до 15 | Индекс от 0 до 255 | R, G и B по 8 бит |
| Формула объёма изображения | W × H × 1 / 8 байт | W × H × 4 / 8 байт | W × H × 8 / 8 байт | W × H × 24 / 8 байт |
Сначала в таблице находят строку с известной глубиной цвета или количеством цветов, а затем выбирают нужную формулу. Для конкретного изображения подставляют его ширину W и высоту H. Значения относятся к несжатым данным и не учитывают заголовки файла.
Условие: изображение имеет размер 100 × 80 пикселей и использует 256 цветов. Нужно определить минимальный объём памяти без сжатия. Сначала найдём код одного пикселя, затем умножим его на число пикселей.
Ответ: минимальный объём равен 8000 байт, или примерно 7,8 Кбайт без учёта служебной информации.
Условие: для изображения 320 × 200 пикселей выделено 16 000 байт. Требуется найти максимальное число цветов при побайтовом хранении. Нельзя сразу возводить объём в степень: сначала нужно узнать число бит на один пиксель.
Ответ: можно закодировать не более 4 цветов, если весь выделенный объём используется для пиксельных данных.
Условие: сравним изображение 640 × 480 при глубине 4, 8 и 24 бита. Разрешение во всех случаях одинаково, поэтому объём будет изменяться прямо пропорционально глубине цвета. Сначала вычислим число пикселей, затем каждый вариант переведём в байты.
Ответ: объёмы равны 153 600, 307 200 и 921 600 байт; переход от 4 к 24 битам увеличивает объём в 6 раз.
Первая ошибка — путать число цветов с глубиной цвета: 256 цветов требуют 8 бит, а не 256 бит. Так происходит, если воспринимать число оттенков как размер кода. Проверьте себя формулой 2ⁱ: именно степень двойки должна дать число цветов.
Вторая ошибка — оставить результат в битах и назвать его байтами. Ошибку допускают, когда забывают, что 1 байт содержит 8 бит. После умножения на глубину всегда проверьте единицу измерения и разделите результат на 8.
Третья ошибка — умножить размер только на ширину или высоту. Один из размеров показывает лишь число элементов в строке или столбце, поэтому сначала вычислите N = W × H. Если ответ не учитывает оба измерения, он занижен.
Четвёртая ошибка — применять формулу несжатого изображения к сжатому файлу. Расчёт по пикселям показывает объём исходных данных, а алгоритм сжатия может удалить повторения или изменить представление. Уточните формат и способ сжатия, если требуется реальный размер файла.
Для расчётов нужны двоичная система счисления, степени двойки и умение переводить биты в байты. Без них трудно определить глубину цвета и объём данных.
Знания о пикселях помогают понимать форматы графических файлов, разрешение экрана, требования к памяти и скорость передачи изображений по сети. По разрешению и глубине цвета можно заранее оценить нагрузку на устройство.
Дальше эти идеи используются при изучении сжатия графической информации, цветовых моделей и цифровой фотографии. Там к расчёту пикселей добавляются способы уменьшения объёма и точного описания цвета.
Почему один пиксель нельзя закодировать дробным числом бит?
Бит принимает только одно из двух значений: 0 или 1. Поэтому код пикселя составляют из целого числа бит, а дробный бит невозможно отдельно записать и считать.
Сколько бит нужно для изображения с 16 или 256 цветами?
Для 16 цветов требуется 4 бита, потому что 2⁴ = 16. Для 256 цветов нужно 8 бит, так как 2⁸ = 256.
Почему реальный размер графического файла может быть меньше расчётного?
Расчёт обычно показывает объём несжатых данных. Форматы PNG, JPEG и другие используют сжатие, поэтому фактический размер зависит от содержания изображения и выбранного алгоритма.
Чем разрешение изображения отличается от глубины цвета?
Разрешение показывает, сколько пикселей приходится на ширину и высоту изображения. Глубина цвета показывает, сколько бит отведено для описания цвета одного пикселя.
Как определить число цветов по известному объёму памяти и размеру изображения?
Сначала объём памяти переводят в биты и делят на число пикселей. Полученная величина даёт глубину цвета i, после чего число цветов находят по формуле 2ⁱ.
Практическая работа 2.2 Кодирование графической информации