Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 Сжатие графических изображений.docx
Скачиваний:
4
Добавлен:
20.08.2019
Размер:
259.4 Кб
Скачать

11

Сжатие графических изображений

Стоит начать считывать цветные или полутоновые изображения сканером формата А4, и 100 Мбайт дискового пространства будет заполнено меньше чем за 1 час (размер графического файла — от 400 Кбайт до нескольких мегабайт). А сравни­мый по качеству с телепередачей компьютерный фильм требует хранения данных объемом около 22 Мбайт/с. Поэтому на сегодняшний день остро стоит проблема сжатия и восстановления информации. Но сжатие файла сильно зависит от его структуры.

Графические форматы

Для хранения графических данных используются разные форматы. В файле растровой графики содержится информация, необходимая компьютеру для вос­создания изображения. Каждый формат предусматривает собственный способ кодирования информации о пикселях и других присущих компьютерным изображениям данных.

BMP

BMP (BitMaP) — это формат растровой графики, используемый для Windows, в котором эта система хранит свои растровые изображения Для файлов данного формата чаще всего используется расширение BMP, хотя иногда может быть и расширение RLE.

В файлах ВМР информация о цвете каждого пикселя кодируется 1, 4, 8, 16 или 24 битами на пиксель. Количество бит на пиксель определяет возможное число цветов в изображении. Изображение при глубине 1 бит на пиксель может иметь всего два цвета, а при глубине 24 бит на пиксель — более 16 млн. различных цветов.

Файл состоит из четырех основных разделов: заголовка файла, информационного заголовка растровых данных, таблицы цветов и собственно растровых данных. Заголовок файла содержит информацию о файле, в том числе адрес, с которого начинается область растровых данных. В информационном заголовке растровых данных находятся сведения об изображении, хранящемся в файле, например его высота и ширина в пикселях. В таблице цветов хранятся значения основных цветов RGB (красный, зеленый, синий) для использования в дальнейшем в процессе полу­чения большего количества оттенков в рисунке. Если же видеоадаптер не позволяет отображать более 256 цветов, то для точной цветопередачи можно программно устанавливать такие значения RGB в адаптерах таблиц цветов.

TIFF

Формат TIFF (Tagged Image File Format) появился в 1993 году. Он применялся в графическом редакторе PhotoStyler. Несмотря на то, что эта программа в настоя­щее время уже не используется, формат TIFF по-прежнему популярен.

В основном он применяется в издательских системах, то есть там, где требуется получать изображения наилучшего качества.

TIFF имеет еще одно неоспоримое достоинство — он очень удобен при переносе изображений между компьютерами различных типов (например, с PC на Macintosh и обратно).

TIFF — один из самых сложных форматов. В его спецификации определено достаточно большое количество разделов. Например, один раздел хранит инфор­мацию о ширине изображения в пикселях, другой — о его высоте. В третьем разделе содержится таблица цветов, а в четвертом — сами растровые данные. Изображение, представленное в формате TIFF, полностью определяется его разделами, и этот формат файла легко расширяется, поскольку для придания файлу дополнительных свойств достаточно лишь определить дополнительные типы разделов.

Растровые данные файла TIFF могут сжиматься с использованием любого из нескольких методов, поэтому для чтения файлов TIFF должны быть средства рас­паковки RLE, LZW и несколько других.

И хотя файловый формат TIFF достаточно сложен, он остается одним из лучших для передачи растровых массивов из одной программы в другую благодаря своей универсальности. Он позволяет кодировать в двоичном виде практически любое изображение без потери его визуальных или каких-либо иных атрибутов.

GIF

Формат GIF (Graphics Interchange Format), появившийся в 1987 году, является очень старым, но по-прежнему популярен в Интернете. От других графических форматов его отличает использование режима индексированных цветов (не более 256). Но это не мешает GIF быть любимым форматом веб-мастеров, которые применяют его для создания и оформления веб-страниц. Главной причиной этого является использование небольших по размеру файлов.

Файл формата GIF начинается с заголовка, содержащего код, который говорит о том, что это именно GIF-файл; далее следует номер версии GIF и другая инфор­мация. Если файл хранит одно изображение, то за заголовком обычно располагается общая таблица цветов, определяющая цвета изображения. Если в файле хранится несколько изображений (формат GIF, аналогично TIFF, позволяет кодировать в одном файле два и более изображений), то вместо общей таблицы цветов каждое изображение сопровождается своей собственной таблицей цветов.

Файл GIF имеет одну особенность — постепенное отображение картинки на экране. В этом случае строки изображения выводятся на экран не подряд, а в оп­ределенном порядке: сначала каждая восьмая, затем — четвертая и т. д. Таким об­разом, полностью изображение показывается в четыре прохода, что позволяет еще до полной загрузки понять его суть и в случае необходимости прервать загрузку.

Очень популярны анимированные GIF-файлы. Например, собачки, смешно ма­шущие ушами, или крокодил, раскрывающий свою зубатую пасть.

Основные достоинства формата GIF заключаются в широком распространении этого формата и его компактности. Но в изображениях, хранящихся в виде GIF- файла, не может быть использовано более 256 цветов.

PSD

PSD (Photoshop Document) является «родным» форматом Adobe Photoshop. Он может хранить информацию по слоям. Этот формат поддерживает глубину цвета вплоть до 16 бит на канал (48 бит на пиксель для цветных изображений и 16 бит на пиксель для черно-белых). Кроме того, хранится информация об альфа-каналах, слоях, контурах, прозрачности, векторных надписях и т. д.

Формат PSD используется для хранения изображений, содержащих специфи­ческие, свойственные только Adobe Photoshop, элементы. PSD-файлы могут быть открыты во многих популярных программах просмотра графических файлов.

PDF

Формат PDF (Portable Document Format) в свое гремя был разработан компанией Adobe. Он применяется для описания документов. Для создания, редактирова­ния и просмотра PDF-файлов используются специальные программы (например Acrobat Reader). Этот формат весьма широко применяется в процессе допечатной подготовки.

PDF-формат позволяет выполнять много различных операций. Например, со­здавать электронные документы для обмена данными. На сегодняшний день су­ществует масса приложений, которые понимают данные в формате PDF и могут читать PDF-файлы. Кроме того, можно формировать интерактивные документы. Файлы в формате PDF могут применяться для создания электронных форм, информация из которых хранится в базе данных.

JPEG

Формат JPEG (Joint Photographic Experts Group) является наиболее попу­лярным среди профессионалов и любителей цифровой фотографии. Это легко объяснимо, поскольку именно данный формат обеспечивает минимальные размеры файлов при возможности сохранения 24-битных полноцветных изображений.

В его основе лежит достаточно сложный алгоритм сжатия графических данных, работа которого основана на особенностях человеческого зрения.

Несмотря на то что при сохранении изображений в формате JPEG обеспечи­вается высокая степень сжатия, имеют место потери данных. И чем сильнее сжи­мается изображение, тем большими будут потери. Поэтому при использовании данного формата следует идти на компромисс и выбирать такую степень сжатия, при которой потери данных будут практически незаметны для человеческого глаза.

Основные сведения о сжатии изображений

Сжатие информации делится на архивацию и компрессию. Первая происходит без потери качества, вторая — с потерями. Разница между этими способами в том, что при втором не происходит полного восстановления исходного сохраненного изображения в полном качестве. Но каким бы ни был алгоритм компрессии данных, для работы с ним файл нужно проанализировать и распаковать, то есть вернуть данные в исходный незапакованный вид для их быстрой обработки (обычно это происходит незаметно для пользователя).

Архивация – графических данных используется как для растровой, так и для векторной графики. При этом способе уменьшения данных программа анализирует наличие в сжимаемых данных некоторых одинаковых последовательностей данных и исключает их, записывая вместо повторяющегося фрагмента ссылку на предыдущий такой же (для последующего восстановления). Такими одинаковыми последовательностями являются пиксели одного цвета, повторяющиеся текстовые символы или некая информация, которая в рамках массива данных повторяется несколько раз. Например, растровый файл с фоном строго одного цвета (например, синего) имеет в своей структуре очень много повторяющихся фрагментов.

Компрессия — это способ сохранения данных при использовании которого не гарантируется полное восстановление исходной графической информации. При таком способе хранения обычно графические данные немного теряются по сравнению с оригинальными, но этими искажениями вполне можно пренебречь и управлять. Обычно файлы, сохраненные с использованием этого способа, занимают значительно меньше дискового пространства, чем файлы, сохраненные с помощью простой архивации. Суть методов сжатия с потерей качества — используя особенности восприятия графической информации человеком, отбросить часть данных безвозвратно. Чем выше степень компрессии, тем больше ущерб качеству. Оптимальное решение выбирается для конкретного случая с учетом применения.

Компрессия нужна не всегда. Сократить объем графических данных можно, проанализировав имеющийся файл и уменьшив его размер, цветность или разре­шение.

Алгоритмы сжатия файлов без потерь

Как известно, любой файл, невзирая на то, какая информация в нем хранится, состоит из символов и, возможно, невидимых кодов управления печатью. Каждый символ в кодах ASCII представляется 1 байтом. Ниже рассмотрены несколько ал­горитмов архивации.

Алгоритм Хаффмана

Символы заменяются кодовыми последовательностями разной длины. Чем чаще используется символ, тем короче код (например буквы «а», «е», «и», «с» - 3 бита, «щ», «х», «э», «ю» - 8 бит). Могут использоваться готовые кодовые таблицы или строиться новые на основе статистического анализа конкретного файла. Гаран­тируется возможность декодирования, хотя кодовые последовательности имеют разную длину. Степень сжатия — до 50 %.

Алгоритм Лемпеля-Зива (LZW)

Алгоритм сжатия данных LZW основан на поиске и замене в исходном файле одинаковых последовательностей данных для их исключения и уменьшения размера файла. В отличие от предыдущего метода сжатия, LZW более разборчиво просматривает сжимаемые данные, что приводит к лучшему результату.

Данный алгоритм основан на сведении к минимуму избыточности. Вместо кодирования каждого символа кодируются часто встречающиеся последовательности символов (например, слова «который», «также»). Имена же собственные, встреча­ющиеся один раз, не кодируются.

Программа алгоритма просматривает файл с текстом или байтами графиче­ской информации и выполняет статистический анализ для построения кодовой таблицы.

Если заменить 60-70 % текста символами, длина которых меньше половины от первоначальной, можно добиться сжатия примерно 50 %.

При применении этого алгоритма к загрузочным файлам (EXE, СОМ) резуль­тат составляет 10-20 %, так как избыточность кода, создаваемого компиляторами, меньше избыточности текста на естественном языке.

Файлы баз данных тоже архивируются незначительно, так как могут содержать редко повторяющуюся информацию (имена, номера телефонов, адреса).

Графические контурные файлы архивируются хорошо, так как обладают боль­шой избыточностью (фон).

Полутоновые и цветные изображения тоже можно архивировать, но с меньшим успехом.

Данный тип сжатия не вносит искажений в исходный графический файл и подходит для обработки растровых данных любого типа: черно-белых, монохромных или полноцветных. Наилучшие результаты получаются при компрессии изобра­жений с большими областями одного цвета или с повторяющимися одинаковыми структурами.

Этот метод демонстрирует самые поразительные результаты степени сжатия (среди других существующих способов сжатия графических данных) при полном отсутствии потерь или искажений в исходных файлах. Используется в файлах формата TIFF, PDF, GIF, PostScript и др.

Алгоритм rle (Run Length Encoding)

Изображение рассматривается как последовательность байтов. Одинаковые байты кодируются парой: первый байт (count) является счетчиком одинаковых байтов, а второй — байтом из кодируемой последовательности. Для отличия счетчика два его старших бита устанавливаются равными единице. Это позволяет кодировать последовательности длиной не более 63. Байты изображения со значениями больше 191 кодируются двумя байтами.

Достоинствами метода являются простота и скорость декодирования.

Декодирование происходит следующим образом. Для очередного байта осуществляется проверка, установлены ли старшие биты неравными нулю. Если да, то байт является счетчиком, количество повторений равно count (сбрасываются старшие биты). Следующий байт переписывается в видеопамять в count-экземплярах. Если старшие биты байта не установлены, то он переписывается в видеопамять без изменения.

CCITT Group 3, CCITT Group 4

Эти два похожих метода сжатия графических данных работают с однобитными изображениями, сохраненными в цветовой модели Bitmap. Они основаны на поиске и исключении из исходного изображения дублирующихся последовательностей данных (как и в предыдущем типе сжатия — RLE). Оба ориентированы на упаковку именно растровой графической информации, так как работают с отдельными рядами пикселов в изображении.

Изначально алгоритм был разработан для сжатия данных, передаваемых через факсимильные системы связи (CCITT Group 3), а более совершенная разновидность этого метода архивации данных (CCITT Group 4) подходит для записи монохромных изображений с более высокой степенью сжатия.

Как и предыдущий алгоритм, он в основном подходит для сжатия изображений с большими одноцветными областями. Его достоинство — скорость выполнения, а недостаток — ограничения при компрессии графических данных (не все данные удается эффективно сжать таким образом). Этот метод применяется для файлов формата PDF, PostScript и др.

Обрезка «хвостов»

При форматировании жесткий диск разбивается на области (кластеры). Каждый кластер содержит определенное количество секторов по 512 байт. В зависимости от НЖМД (накопителя на жестком магнитном диске) кластер содержит 4,8 или 16 секторов (2, 4 или 8 Кбайт). Операционная система очень неэкономично уп­равляет ресурсами. Она всегда выделяет для файла целое количество кластеров. Если нужно сохранить файл размером 1 байт, выделяется один кластер размером 8 Кбайт, причем оставшееся место использовано не будет. По теории вероятности на каждом файле теряется в среднем 1/2 кластера. (Чтобы проверить потерянное место на диске, можно воспользоваться программой FileSize из пакета NortonUtilites.)

Программы сжатия данных помогают занять практически все свободное про­странство диска, упаковывая и размещая больше данных на неиспользованных участках.

Сжатие с потерями цветных и полутоновых файлов

Цветные и полутоновые файлы содержат большое количество информации (цветные — 24 бита на пиксель, черно-белые — 8 бит на пиксель) и могут «весить» до нескольких мегабайт (25 Мбайт при сканировании цветного изображения (10 то­чек на миллиметр)). Для таких файлов характерно постоянное изменение инфор­мации вдоль линии сканирования.

Алгоритмы сжатия с потерями основаны на особенностях цветовой чувстви­тельности человеческого глаза. Глядя на картинку, человек выделяет крупные цве­товые пятна, переходы между ними, но может проигнорировать мелкие детали, изменения оттенков, абсолютную яркость.

Например, глаз человека воспринимает относительную яркость, а не абсолют­ную. Точка телевизора не может быть чернее, чем серый цвет выключенного теле­визора. Видимый иссиня-черный цвет — не более чем иллюзия, которая возникает из-за соседства с ним контрастных ярких тонов.

Также можно заметить, что на большой площади изображения изменения цвета и интенсивности часто незначительны (например, для неба). Сжатие по методу RLE позволяет уменьшить размеры файлов в два-три раза. Но это не решает проб­лему полностью, нужны более высокие степени сжатия.