Файл: Методы кодирования данных (Общие принципы кодирования данных).pdf
Добавлен: 29.04.2023
Просмотров: 214
Скачиваний: 1
ГЛАВА 2. КОДИРОВАНИЕ МУЛЬТИМЕДИА-ИНФОРМАЦИИ
2.1 Кодирование графической информации
Графическая информация — довольно широкое понятие, оно может включать в себя фотографии, рисунки, чертежи и схемы, книжные изображения и так далее.
Изображения принято разделять на векторную и растровую графику.
Представление графической информации растровым способом осуществляется при помощи точечного подхода. Изображение делят горизонтальными и вертикальными линиями, в результате чего получаются точки (пиксели), причем, чем больше их количество, тем более точной будет информация об изображении.
Таким образом, растровое изображение состоит из горизонтальных линий (строк), а строки в свою очередь из пикселей. Массив элементарных единиц изображения принято называть растром. Четкость изображения определяется количеством строк и количеством точек в каждой строке, то есть от разрешающей способности экрана. В настоящее время достаточно качественным считается разрешение 1360x768, то есть 1360 точек на строку и 768 строчек на экран.[1]
Поскольку каждая строка состоит из последовательности пикселей, то все изображение целиком, вытянутое в линию, можно представить в виде линейной последовательности точек.
Любое изображение имеет некоторое цветовое представление, поэтому возникает необходимость получить представление цвета изображения. Принципы кодирования цветных и черно-белых изображений имеют некоторые различия.
Для кодирования черно-белых изображений, не имеющих полутонов, пиксель принимает только два значения: черный и белый, соответственно, для кодирования достаточно одного бита памяти (1 – белый, 0 – черный, либо наоборот). Изображение, полученное таким образом, будет чрезмерно контрастным, в то время как черно-белые изображение, как правило, состоят не только из черного и белого цветов, но и различных промежуточных оттенков (темно-серый, светло-серый и прочие). Добавление даже двух дополнительных оттенков, например, темно-серого и светло-серого, потребует уже два бита, для кодирования цветового состояния одного пикселя.
Чтобы получить реалистичные монохромные изображения используют кодирование цветового состояния пикселя с помощью одного байта. Это позволяет передавать 256 оттенков серого цвета (градации от полностью белого до черного). В таком случае для передачи всего растра из 640 x 480 пикселей понадобится 307200 байтов. [7]
Для цветных изображений одного бита на пиксель явно недостаточно. Кодирование четырехцветного изображения требует 2 бита на пиксель, поскольку 2 бита могут принимать 4 различных состояния.
Цветные изображения определяются двоичным кодом цвета каждого пикселя, хранящимся в видеопамяти, также они могут иметь различную глубину цвета, задаваемую количеством битов, используемым для кодирования цвета точки. Чаще всего используются значения глубины цвета 8, 16, 24 и 32 бита.
Цветное изображение может быть закодировано различными способами. Наиболее известным является метод RGB (RGB - первые буквы слов Red, Green, Blue, обозначающих соответственно красный, зеленый и синий цвет). Данный метод основывается на физиологической особенности зрительного анализатора человека: глаз воспринимает все цвета как сумму трех основных цветов - красного, зеленого, синего. Соответственно, цвет в системе RGB представляется в виде суммы различной яркости красного (red), зеленого (green) и синего (blue) цветов. Для получения одного цветного пикселя в одно и то же место экрана направляется сразу три цветных луча. [1]
В результате растровые изображения представляют собой однослойную сетку пикселей, а код пикселя имеет информацию о его цвете.
Каждый отдельный пиксель представлен информацией о яркости для каждого из трех основных цветов с целью его отображения. Видеопамять ПК содержит информацию об изображении, выводимом на экран, в двоичном формате.
Если считать, что для кодирования одного из цветов достаточно одного бита ( "0" в бите будет обозначать отсутствие в суммарном цвете данного основного, а "1" - его присутствие), то для кодирования одного цветного пикселя понадобится 3 бита (по одному пикселю на каждый цвет). Пусть первый бит будет соответвовать красному цвету, второй — зеленому, а третий — синему. В таком случае, например, сиреневый цвет будет задаваться кодом 101 (красный цвет есть, зеленого нет, синий есть), а желтый цвет — кодом 110 (красный и зеленый цвет есть, синий отсутствует). Данная схема кодирования подразумевает, что каждый пиксель может иметь один из восьми цветов.
Однако для получения реалистического монохромного изображения этого недостаточно, и поэтому используется кодирование цветов с помощью одного байта. Это позволяет передавать по 256 оттенков для каждого из основных цветов. При этом обеспечивается передача 16777216 (256*256*256) различных цветов, и это позволяет приблизиться к действительной чувствительности человеческого глаза. Такой метод представления цветной графики называется режимом True Color (истинный цвет), то есть полноцветным режимом. Данная схема кодирования цвета требует 3 байта (24 бита) памяти на изображение одного пикселя.
Еще один широко используемый метод представления цвета называется CMYK В отличие от RGB, этот метод является субтрактивной системой, то есть при выводе на бумагу максимальная яркость обеспечивает черный цвет, а отсутствие – белый. Это составляет их принципиальное различие. CMYK раскладывается на С (Cyan – голубой), M (Magenta – пурпурный), Y (Yellow – желтый) и K (blacK – черный).
Вместо основного цвета здесь используется его дополнение до белого. Если красный, зеленый и синий суммарно дают белый цвет, то дополнением для красного будет сочетание зеленого и синего цветов, то есть голубой. Дополнением для зеленого цвета является пурпурный, как сочетание красного и синего, а для синего – желтый цвет (то есть сочетание красного и зеленого). Таким образом, голубой, пурпурный, желтый с добавлением черного составляют основные цвета в системе CMYK .
Режим CMYK также считается полноцветным, и для передачи состояния одного пикселя ему требуется 4 байта (32 бита) памяти, что позволяет передавать 4294967295 различных цветов.
Очевидно, что полноцветные режимы требуют большого количества памяти. Для растра 640 x 480 при использовании RGB-метода требуется 921600 байтов, а для системы CMYK – 1228800 байтов памяти. Поэтому для экономии памяти создаются различные режимы и графические форматы, которые требуют намного меньше памяти, но при этом несколько хуже передают цвет. Таким является, например, режим High Color. Для передачи цвета одного пикселя в нем используется 16 битов (то есть возможно передать 65535 цветовых оттенков), а также индексный режим, базирующийся на специальной таблице цветовых оттенков. Необходимый цвет из этой таблицы выбирается при помощи номера-индекса, занимающего один байт памяти [7].
Помимо цвета отдельных пикселей, при передаче изображения в память компьютера, необходимо фиксировать большое количество дополнительной информации: размер изображения, яркость пикселей и другие. Конкретный способ кодирования всей необходимой информации образует графический формат. Форматы кодирования графики, которые основаны на передаче цвета каждой отдельной точки изображения, принадлежат группе растровых (BitMap форматов ).
Наиболее распространенными растровыми форматами являются BMP, JPEG и GIF-форматы. В формате BMP задается цветность всех точек изображения. Также имеется возможность выбрать монохромный режим (256 градаций) или цветной (16 256 или 16777216 цветов). Разумеется, такой формат требует много памяти.
GIF-формат - графический формат обмена (Graphics Interchange Format) предполагает использование специальных методов сжатия кода, и при этом обеспечивает поддержку только 256 цветов. Это определяет несколько худшее качество изображения, относительно формата BMP, но важным достоинством GIF-формата является то, что он требует в десятки раз меньше памяти.
JPEG-формат — Объединенная группа экспертов по фотографии (Joint Photographic Experts Group) использует методы сжатия, которые приводят к потерям некоторых деталей. Формат поддерживает 16777216 цветов, обеспечивая тем самым довольно высокое качество изображения, и занимает промежуточное положение между форматами GIF и BMP по требованиям к памяти.[1]
Из всего вышесказанного следует вывод, что качество кодирования изображения тем выше, чем большее количество пикселей составляет изображение. В свою очередь, качество цветового представления тем лучше, чем большее количество цветов используется, поскольку каждая точка содержит большее количество информации.
Качество изображения определяется разрешающей способностью монитора, то есть количеством точек, из которых оно состоит. Чем выше разрешающая способность, тем выше качество изображения.
Главным недостатком растровой графики является ее слабое масштабирование (изображение, закодированное в растровом формате, при увеличении его размера сильно теряет в качестве). Данную проблему призваны решить методы векторной графики.
Кодирование векторных изображений
Векторное изображение состоит не из пикселей, а из так называемых геометрических примитивов (линии, отрезки, точки, а также геометрические фигуры, которые могут быть из них получены: прямоугольники, эллипсы, окружности и прочие). Базовым объектом векторной графики является линия. Любой элемент векторного изображения является объектом, который описывается при помощи математических уравнения линий, дуг, окружностей. Сложные объекты представляются в виде совокупности элементарных графических объектов. Сложность представления векторного изображения позволяет получить значимое преимущество относительно растровой графики: векторные изображения могут увеличивать и уменьшать свои размеры без потери качества, в то время как при увеличении растрового изображения значительно снижается его качество за счет увеличения размеров пикселей.
Так, например, для представления векторного изображения круга достаточно закодировать в двоичный код тип объекта "окружность" (для этого необходимо задать ее радиус, координаты центра, выбрать толщину и цвет линии, а также цвет заливки). В растровой системе та же задача будет решаться кодированием цвета каждого пикселя. Соответственно, чем больше размер изображения, тем больше места для его хранения потребуется на запоминающем устройстве. [1]
Недостатком векторного способа является невозможность записи в двоичном коде реалистичных фотографий. По этой причине фотокамеры используют принципы растровой графики.
Компания Adobe разработала специальный язык, служащий для описания изображений при помощи указанных методов, - язык PostScript (poster script - сценарий плакатов, афиш, объявлений). PostScript служит основой для некоторых векторных графических форматов (форматы PS и EPS). Большинство популярных программ не воспроизводят тексты и изображения, записанные в данных форматах, поэтому для их просмотра и печати требуются специализированные программные средства.
Помимо растровой и векторной, существует еще одна разновидность графики - фрактальная графика. Основой фрактальной графики является фрактал - математически построенная фигура, которая является частью точной ее копии в несколько раз большей, чем одна часть. Большая фигура, в свою очередь, является частью еще большей. Основой метода фрактального кодирования является обнаружение в изображении самоподобных участков.
В методе фрактального кодирования используются системы доменных и ранговых блоков изображения, блоков квадратной формы, покрывающих все изображение. Изображение разбивается на множество неперекрывающихся ранговых подизображений, затем определяется множество перекрывающихся доменных подизображений. Алгоритм кодирования находит для каждого рангового блока наиболее подходящий ему доменный блок и аффинное преобразование, переводящее этот доменный блок в данный ранговый блок. Далее структура изображения отображается в систему доменных блоков, ранговых блоков и преобразований. Данный подход послужил основой для большинства методов фрактального кодирования.[13]
2.2 Кодирование звуковой информации
Процесс кодирования звуковой информации с использованием персонального компьютера можно представить в виде двух этапов, первый из которых - преобразование звуковых волн в колебания электрического тока; второй - дискретизация полученного аналогового сигнала.
С точки зрения физики, звук является продольными упругими волнами сжатия и разрежения, свободно распространяющимися в воздухе или иной среде, с некоторыми, непрерывно изменяющимися, амплитудой и частотой.
Амплитуда определяет громкость, с которой человек воспринимает звук. Частота характеризует высоту тона. Звуковой сигнал определяется непрерывно изменяющимися величинами, т.е является аналоговым.Поскольку персональный компьютер оперирует дискретными величинами, данный сигнал необходимо привести в доступную цифровую форму. Данное превращение осуществляется с помощью специального оборудования - аналоговоцифровых преобразователей. Для вывода звуковой информации применяется обратный процесс и соответствущие средства - цифроаналоговые преобразователи.