14.1. Кодирование графики
В настоящее время при создании и хранении графических объектов в компьютере используются растровое и векторное изображения (примеры 14.1, 14.2).
Растровое изображение — совокупность отдельных точек (пикселей), каждая из которых имеет свой цвет.
В векторном графическом изображении каждый нарисованный элемент является объектом: линия, овал, прямоугольник и др.
Все объекты имеют определенный перечень значений свойств, которые описывают эти объекты (пример 14.3).
Векторное изображение — совокупность графических примитивов (объектов изображения), которые описаны с помощью числовых значений или математических формул.
Различие в представлении растровых и векторных изображений существует лишь для графических файлов.
При выводе на экран монитора изображения растрового или векторного типов, в видеопамяти компьютера формируется информация растрового типа.
Эта информация состоит из двоичных кодов каждого пикселя. Код пикселя — информация о его цвете.
Если на черно-белое изображение наложить сетку и каждой ячейке белого цвета поставить в соответствие 1, а черного цвета — 0 (или наоборот: 1 — черный, 0 — белый), то можно создать матрицу изображения из нулей и единиц (пример 14.4).
Для черно-белого изображения информационный объем пикселя равен одному биту. Соответственно, информационный объем изображения в битах будет равен количеству пикселей в изображении — произведению ширины на длину изображения.
Чем больше цветов в изображении, тем больше битов понадобится для кодирования одной точки (пример 14.5).
На экране монитора цвет пикселя изображения формируется смешением трех цветовых лучей: красного (англ. Red), зеленого (англ. Green) и синего (англ. Blue).
Поэтому при кодировании цветных изображений используется цветовая модель RGB. В современной версии модели RGB на каждый пиксель отводится 24 бита, по 8 бит на каждый из трех основных цветов, что дает возможность закодировать 16,7 млн оттенков.
Если для каждого из основных цветов использовать меньшее количество бит, то, соответственно, можно закодировать и меньшее количество цветовых оттенков.
Кодирование цветов при использовании 16-цветной палитры приведено в примере 14.6.
В этом случае информационный объем каждого пикселя составляет 4 бита.
Качество изображения на экране зависит от разрешающей способности монитора и глубины цвета.
Любое графическое изображение на экране монитора состоит из строк, которые содержат определенное количество пикселей.
Мониторы могут иметь различные разрешающие способности: 1024 х 768, 1280 х1024, 1366 х 768,1920 х 1080 и др. Разрешение экрана может быть изменено. Для этого в контекстном меню Рабочего стола нужно выбрать команду
Разрешение экрана (пример 14.7).
Глубина цвета определяется количеством бит, используемых для кодирования цвета пикселя. Современные мониторы поддерживают глубину цвета 32 бита: 24 бита хранят код цвета в RGB-палитре, еще 8 бит отводятся на хранение значений прозрачности цвета (альфа-канал).
В файле с графическим растровым изображением хранится информация о цвете каждого пикселя изображения. В таком виде сохраняются изображения в формате BMP.
Другие растровые форматы (JPEG, GIF, PNG) хранят изображение в сжатом виде: при сохранении к изображению, которое на экране представлено матрицей пикселей, применяют алгоритмы архивации.
При сохранении в формате GIF количество цветов уменьшается до 256. При сохранении в формате JPEG сохраняется информация не о каждом пикселе, а о группе пикселей, при этом часть информации теряется.
Такое сжатие необратимо, восстановить изображение в исходном виде невозможно. Однако человеческий глаз не всегда способен заметить изменения, поэтому формат JPEG является одним из самых распространенных для компактного хранения фотографий.
При сохранении изображения в формате PNG используется алгоритм сжатия без потерь.
Формат PNG предназначен прежде всего для использования в Интернете.В файле с векторным изображением сохраняются математические значения свойств объектов изображения, которые необходимы для его построения.
Файлы формата SVG можно просматривать и редактировать в текстовом виде — например, в редакторе NotePad (пример 14.8).
Фрактальная графика, как и векторная, основывается на математических вычислениях.
Базовым элементом фрактальной графики является математическая формула.
Это приводит к тому, что в памяти компьютера не хранится никаких объектов, а изображение строится по уравнениям.
При помощи этого способа можно строить как простейшие изображения, так и сложные иллюстрации, имитирующие ландшафты (пример 14.9).
14.2. Кодирование звука Современные компьютерные устройства оснащены устройствами для ввода и вывода звуковой информации.
Понятие звук тесно связано с понятием волна. Как и любая волна, звук имеет амплитуду и частоту.
Амплитуда характеризует громкость звука. Частота определяет тон, высоту. Обычный человек способен слышать звуковые колебания в диапазоне частот от 16—20 Гц до 15—20 кГц.
При оцифровке звук подвергается дискретизации. Аналого-цифровой преобразователь, встроенный в звуковую карту, производит замеры амплитуды звуковой волны через равные промежутки времени. Полученные числовые значения преобразуются в двоичный код и сохраняются (пример 14.10).
Количество измерений за одну секунду определяет частоту дискретизации звука.
Точность преобразования зависит от разрядности АЦП. Разрядность АЦП характеризует количество дискретных значений, которые преобразователь может выдать на выходе.
Например, двоичный 8-разрядный АЦП способен выдать 256 дискретных значений (0…255), 28 = 256. С разрядностью связано разрешение АЦП — минимальное изменение величины аналогового сигнала, которое может быть преобразовано. Разрешение равно разности значений, соответствующих максимальному и минимальному выходному коду, деленной на количество выходных дискретных значений.
Звуковой файл длительностью в 1 с при частоте дискретизации 8 КГц и разрядности 8 бит будет занимать объем в 7,8 Кбайт.
При увеличении частоты дискретизации до 44,1 КГц и разрядности 24 бита объем файла увеличится до 129,2 Кбайт.
Чтобы записать стереозвук, следует одновременно кодировать два независимых канала звука.
Количество каналов может быть большим: 4 (квадро), 6 (Dolby Digital). Сегодня существуют технологии, поддерживающие до 16 звуковых каналов. Воспроизведение многоканальных фонограмм через систему громкоговорителей, расположенных по окружности от слушателя, называют объемным звуком.
Чем выше частота дискретизации и разрядность, тем качественнее получается звук (пример 14.11).
Однако с увеличением частоты возрастает объем памяти, необходимый для хранения цифрового сигнала, а с увеличением разрядности — и вычислительная нагрузка на цифровые преобразователи.
Чтобы уменьшить объем, занимаемый цифровыми аудиоданными, применяют различные методы сжатия (пример 14.12).
При сжатии звука без потерь к исходному звуку применяют алгоритмы архивации. Возможно удаление избыточных данных — связей между соседними отсчетами цифрового звукового сигнала. Сжатие звука с потерями основано на несовершенстве человеческого слуха (человек не воспринимает сверхнизкие и сверхвысокие частоты, более слабый сигнал становится неслышимым на фоне более сильного и др.).
14.3. Кодирование видео
Видео хранится на диске в виде файлов, содержащих видео-, аудио- и другие потоки, а также метаданные. Видеофайл часто называют медиаконтейнером.
В любой момент из контейнера можно вынуть, например, видео- или аудиодорожки, перекодировать их и поместить в другой контейнер, т. е. изменить формат видеофайла.
Существует несколько форматов видеоконтейнеров (пример 14.13).
Кодирование звукового сопровождения видеоинформации ничем не отличается от кодирования звука.
Изображение в видео состоит из отдельных кадров, которые меняются с
определенной частотой.
Кадр кодируется так же, как обычное растровое изображение.
Видеоданные характеризуются частотой кадров и экранным разрешением. Если частота смены кадров равна 25, то для каждой секунды видео необходимо хранить в памяти 25 кадров.
Разрешение для видео обычно составляет 768 х 484 (для стандарта NTSC) или 768 х 576 (для стандартов PAL и SECAM).В основе кодирования цветного видео лежит стандартная модель RGB.
Если представить каждый кадр изображения как отдельный рисунок, то видеоизображение будет занимать очень большой объем.
Например, одна секунда записи в системе PAL будет занимать 25 Мбайт. Поэтому на практике используются различные алгоритмы сжатия для уменьшения объема видеоданных (пример 14.14). Для просмотра такого видео нужен кодек.Кодек (CoDec) — это сокращение слов компрессор и декомпрессор. Кодек — набор файлов, драйверов и библиотек, необходимых для упаковки видео или звукового файла в сжатый формат и воспроизведения сжатого файла.
Кодек может отслеживать массивы точек изображения с одинаковыми значениями (например, синий цвет моря) и вместо того, чтобы запоминать информацию о каждой точке (яркость и цвет), записать лишь первую (ключевую) точку и количество повторений этой точки до момента изменения ее цвета.
14.4. Решение задач на кодирование графики, звука и видео
Пример 14.15. Для хранения изображения размером 128 х 128 точек выделено 4 Кбайт памяти. Определите, какое максимальное число цветов в палитре.
Пример 14.16. Цвет пикселя, формируемого принтером, определяется тремя составляющими: голубой, пурпурной и желтой красками. Под каждую составляющую одного пикселя отвели по 4 бита. В какое количество цветов можно раскрасить пиксель?
Пример 14.17. Фотография размером 10 х 10 см была отсканирована с разрешением 400 dpi при глубине цвета 24 бита. Определите информационный объем полученного растрового файла в килобайтах (принять 1 дюйм = = 2,5 см).
Пример 14.18. Определить информационный объем в Кбайтах моноаудиофайла длительностью звучания 8 с при глубине звука 8 бит и частоте 8 кГц.
Пример 14.19. Рассчитать время звучания стереоаудиофайла, который был закодирован с частотой дискретизации 32 кГц. Разрядность аудиоадаптера — 16 бит, информационный объем файла равен 70 Мбайт.
Пример 14.20. Какой объем будет иметь видео, передаваемое с разрешением кадра 800 х 600 пикселей с 24-битовой глубиной цвета, скоростью воспроизведения 24 кадра в секунду и длительностью 5 мин? Известно, что стереозвук, наложенный на видео, имеет 256 уровней громкости, частота дискретизации равна 11 250 Гц.