Изображение в памяти компьютера кодируется так же, как и все виды информации, – в виде двоичной последовательности. При кодировании изображений используют два метода: растровое и векторное кодирование.
Векторное кодирование изображений
Компьютер хранит эти элементы изображения в виде математических формул, а при открытии файла программа прорисовывает элементы изображения по их математическим формулам и уравнениям.
Векторное изображение имеет ряд достоинств.
Во-первых, векторное изображение масштабируется (увеличивается или уменьшается) без потери качества, так как масштабирование происходит при помощи математических операций: параметры примитивов просто умножаются на коэффициент масштабирования. В связи с этим изображение может быть преобразовано в любой размер (от логотипа на визитной карточке до стенда на улице) и при этом его качество не изменится.
Во-вторых, векторные файлы имеют сравнительно небольшой размер, так как компьютер запоминает только начальные и конечные координаты элементов изображения, что достаточно для описания элементов в виде математических формул. Размер файла, как правило, не зависит от размера изображаемых объектов, но зависит от сложности изображения: количества объектов на одном рисунке. А понятие «разрешение» не применимо к векторным изображениям.
Растровое кодирование изображений
Пиксель – это минимальный участок изображения, цвет которого можно задать независимым образом.
Каждый пиксель имеет определенное положение и цвет. Хранение каждого пикселя требует определенного количества битов информации, которое зависит от количества цветов в изображении.
Качество растрового изображения зависит от размера изображения – пространственного разрешения (количества пикселей по горизонтали и вертикали) и количества цветов, которые можно задать для каждого пикселя.
Растровые изображения чувствительны к масштабированию: при уменьшении растрового изображения несколько соседних точек преобразуются в одну, поэтому теряется различимость мелких деталей изображения; при увеличении изображения увеличивается размер каждой точки и появляется ступенчатый эффект, который можно увидеть невооруженным глазом.
Программы растровой графики работают с пикселями экрана, которые мы видим при увеличении картинки.
В дальнейшем мы будем рассматривать растровые изображения, так как графические данные, помещаемые в память и выводимые на экран, имеют растровый формат вне зависимости от того, с помощью каких программных средств (растровых или векторных) они получены.
Нахождение количества цветов и объема изображения
Любое изображение имеет объем, который можно найти по формуле:
где i – глубина кодирования (количество бит, необходимых для хранения одного пикселя) в битах;
m – количество точек в строке; n – количество строк.
Максимальное количество цветов в изображении можно вычислить по формуле:
где K – количество цветов в изображении, i – глубина кодирования в битах.
Обратите внимание на те значения, которые используются в формуле. Это говорит о том, что необходимо знать степени двойки, чтобы быстро и безошибочно выполнять вычисления.
Пример.
Решение. Используем формулу для нахождения объема изображения:
\(V = i \bullet m \bullet n\)
\(V = 8 \bullet 160 \bullet 320 = 8 \bullet 16 \bullet 10 \bullet 32 \bullet 10 = 2^{3} \bullet 2^{4} \bullet 2^{5} \bullet 100 = 2^{12} \bullet 100\) бит
Переведем результат в Кбайты:
\(\frac{2^{12} \bullet 100\ }{8 \bullet 1024} = \frac{2^{12} \bullet 100\ }{2^{3} \bullet 2^{10}} = \frac{100}{2} = 50\) Кбайт
Кодирование звуковой информации
Мы рассмотрели задание, где нас просили найти объем изображения. Теперь давайте поговорим о кодировании звуковой информации. Кодирование звуковой информации зависит от частоты дискретизации и глубины кодирования.
Чем большее количество измерений производится за 1 секунду (чем больше частота дискретизации), тем точнее процедура двоичного кодирования и качественнее запись.
Единицы измерения \(1\ Гц = {1\ с}^{- 1}\), 1 килоГерц = 1000 Герц.
Современные звуковые карты обеспечивают 16-битную глубину кодирования звука.
Количество различных уровней сигнала (состояний при данном кодировании) можно рассчитать по формуле:
где i – глубина кодирования.
Формула для расчета размера цифрового моноаудиофайла:
где N – частота дискретизации (Гц); i – глубина звука (бит); t – время звучания (секунды).
Если записывается стереозвук, т.е. ведется двухканальная запись, то оцифровке подвергается не один электрический сигнал, а сразу два с левого и правого микрофона и, соответственно, удваивается количество сохраняемой цифровой информации. Есть один интересный пример, который иллюстрирует различие моно и стерео-записи. Когда только начинали появляться наушники, то звук одинаково поступал на оба наушника сразу, и везде играла одна и та же музыка.
Сейчас же вы можете замечать, что в каждом наушнике играют определенные звуки, и музыка кажется нам более объемной. Так на практике можно различать моно- и стерео-записи.
Помимо одноканальной и двухканальной записей, в условиях задач можно встретить четырехканальную (квадро) и восьмиканальную запись. Это всего лишь значит, что объем нужно будет умножить на 4 или 8.
Пример.
Решение. Переведем частоту дискретизации требуемую единицу измерения:
N = 8 кГц = 8 000 Гц
Найдем размер файла, используя формулу и учитывая, что запись двухканальная:
𝑉 = 𝑁 ∙ 𝑖 ∙ 𝑡
𝑉 = 2 ∙ 8 000 ∙ 16 ∙ 12 = 2 ∙ 8 ∙ 1000 ∙ 16 ∙ 3 ∙ 4 = 2 ∙ 23 ∙ 1000 ∙ 24 ∙ 3 ∙ 22 = 210 ∙ 3 ∙ 1000 бит
Переведем в нужную единицу измерения:
𝑉 = 210 ∙ 3 ∙ 1000/ 213 = 3 ∙ 1000/ 23 = 375 Кбайт.