Тапсырмалар на графическую информацию
Растровое изображение состоит из отдельных точек — пикселей. Чтобы решить задачу о его информационном объёме, нужно определить число пикселей, узнать количество бит на один пиксель по глубине цвета и правильно перевести результат в байты, килобайты или другие единицы.
Что такое растровое изображение
Растровая графическая информация хранится в виде таблицы пикселей. Каждый пиксель имеет цвет, а цвет кодируется некоторым количеством бит. Чем больше ширина и высота изображения, тем больше пикселей в нём содержится. Чем больше глубина цвета, тем больше памяти требуется для хранения каждого пикселя.
Пиксель — минимальный элемент растрового изображения, которому можно назначить цвет. Разрешение изображения — число пикселей по горизонтали и вертикали, например \(800 \times 600\). Первое число — ширина, второе — высота. Подробно о смысле этих величин см. в статье разрешение изображения.
Если изображение имеет ширину \(W\) пикселей и высоту \(H\) пикселей, то количество пикселей равно произведению \(W\) и \(H\). Физический размер картинки в сантиметрах для таких тапсырма обычно не важен: важны именно пиксельдер.
Чтобы найти число пикселей растрового изображения, умножьте ширину изображения в пикселях на его высоту в пикселях.
Глубина цвета и объём изображения
Глубина цвета \(i\) — количество бит, используемых для кодирования цвета бір пикселя. Если на один пиксель отводится \(i\) бит, то изображение из \(N\) пикселей занимает \(N \cdot i\) бит без учёта заголовка файла, палитры и сжатия.
Единицы измерения нужно переводить последовательно: \(8\) бит составляют \(1\) байт, \(1024\) байта — \(1\) Кбайт, \(1024\) Кбайт — \(1\) Мбайт. В некоторых условиях встречается десятичная система, где \(1\) КБ считают равным \(1000\) байт. В экзаменационных задачах обычно явно указано, какую систему использовать; если указано «\(1\) Кбайт = \(1024\) байта», применяйте именно это соотношение.
Пиксели → биты → байты → Кбайты или Мбайты. Сначала найдите \(W \cdot H\), затем умножьте на глубину цвета, после этого разделите на \(8\) и нужное число \(1024\).
Число возможных цветов
Глубина цвета связана с количеством различных цветов. Если для бір пикселя используется \(i\) бит, каждый бит может иметь значение \(0\) немесе \(1\). Поэтому возможное число комбинаций равно \(2^i\).
Например, при глубине цвета \(8\) бит можно закодировать \(2^8=256\) цветов, а при \(24\) битах — \(2^{24}\) вариантов цвета. В задачах могут дать число цветов вместо глубины цвета. Тогда глубину находят из равенства \(2^i=K\). Если \(K\) является степенью двойки, показатель степени можно определить сразу: \(256=2^8\), значит, глубина цвета равна \(8\) бит.
Изображение имеет разрешение \(640 \times 480\) и глубину цвета \(8\) бит. Сколько байт требуется для хранения пиксельных данных без сжатия?
Разобранный пример
Условие. Растровое изображение имеет размер \(1024 \times 768\) пикселей. Глубина цвета равна \(16\) бит. Определим информационный объём изображения в Кбайтах, считая, что сжатия нет.
Объём изображения равен 1536 Кбайт, или \(1{,}5\) Мбайт, если \(1\) Мбайт \(=1024\) Кбайта. В условии не учитываются служебные данные файла и сжатие.
Обратные тапсырма
Иногда известен объём изображения, а найти нужно разрешение, глубину цвета или число пикселей. Используйте ту же формулу и выражайте неизвестную величину.
Если одна сторона изображения неизвестна, а другая дана, сначала найдите число пикселей \(N\), затем разделите его на известную сторону. Если требуется получить ширину и высоту при известном отношении сторон, составьте уравнение с этим отношением.
Например, изображение объёмом \(512\) Кбайт при глубине цвета \(8\) бит содержит \(512 \cdot 1024 \cdot 8 / 8=524\,288\) пикселей. Если высота равна \(512\) пикселей, ширина равна \(524\,288/512=1024\) пикселя.
Если глубина цвета равна \(8\) бит, деление на \(8\) при переводе битов в байты сокращается с умножением на глубину цвета. Поэтому объём в байтах просто равен числу пикселей.
Что меняет размер файла
Полученный по формуле объём — это объём несжатых пиксельных данных. Реальный файл может быть больше из-за заголовка, палитры и служебной информации или меньше благодаря сжатию. Подробнее о вычислениях для конкретного файла рассказано на странице размер файла изображения, а о методах уменьшения объёма — на странице сжатие изображения.
Если в условии сказано, что изображение хранится без сжатия и каждый пиксель занимает заданное число бит, применяйте формулу напрямую. Если указан коэффициент сжатия \(q\), то при идеализированном условии объём после сжатия можно вычислить как \(I/q\).
1. Путают пиксели с сантиметрами или точками на дюйм: для объёма нужны размеры в пикселях. 2. Забывают умножить на глубину цвета. 3. Делят на \(8\) слишком рано или вообще не переводят биты в байты. 4. Используют \(1000\) вместо \(1024\), хотя в условии дана двоичная система. 5. Учитывают сжатие, хотя в задаче требуется объём несжатого изображения. 6. Путают число цветов \(K\) с глубиной \(i\): связь между ними задаёт формула \(K=2^i\).
Алгоритм шешімдер экзаменационной тапсырма
- Выпишите ширину \(W\), высоту \(H\) и глубину цвета \(i\).
- Найдите число пикселей: \(N=W \cdot H\).
- Умножьте число пикселей на число бит на пиксель.
- Переведите биты в байты, разделив на \(8\).
- Переведите результат в требуемые единицы, используя \(1024\) немесе \(1000\) по условию.
- Проверьте порядок величины и единицы ответа.
Для цветного изображения данные могут быть представлены несколькими каналами, например в модели RGB. Если в условии сказано, что каждый из трёх каналов кодируется \(8\) битами, общая глубина цвета равна \(3 \cdot 8=24\) бита на пиксель. Нельзя умножать на три ещё раз, если глубина \(24\) бита уже дана.
Быстрая проверка
Главное
- Число пикселей равно \(W \cdot H\).
- Объём несжатого изображения в битах равен \(W \cdot H \cdot i\).
- Для перевода битов в байты результат делят на \(8\), для перевода байтов в Кбайты — на \(1024\).
- Число цветов и глубина цвета связаны формулой \(K=2^i\).
- Всегда проверяйте единицы измерения, систему перевода и наличие сжатия в условии.