Методы сжатия графических данных

Присжатии методом RLE(Run — Length Encoding) последовательность повторяющихся величин (в нашем случае — набор бит для представления видеопикселя ) заменяется парой — повторяющейся величиной и числом её повторений.

Метод сжатия RLE включается в некоторые графические форматы, например, в формат PCX .

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

Сжатие методом RLE наиболее эффективно для изображений, которые содержат большие области однотонной закраски, и наименее эффективно — для отсканированных фотографий, так как в них нет длинных последовательностей одинаковых видеопикселей .

Метод сжатия LZWоснован на поиске повторяющихся узоров в изображении. LZW (Lempel-Ziv-Welch) разработан в 1978 году израильтянами Лемпелом и Зивом и доработан позднее в США. Сжимает данные путем поиска одинаковых последовательностей (они называются фразы) во всем файле. Выявленные последовательности сохраняются в таблице, им присваиваются более короткие маркеры (ключи). Так, если в изображении имеются наборы из розового, оранжевого и зеленого пикселов, повторяющиеся 50 раз, LZW выявляет это, присваивает данному набору отдельное число (например, 7) и затем сохраняет эти данные 50 раз в виде числа 7. Метод LZW, так же, как и RLE, лучше действует на участках однородных, свободных от шума цветов, он действует гораздо лучше, чем RLE, при сжатии произвольных графических данных, но процесс кодирования и распаковки происходит медленнее.

Сильно насыщенные узорами рисунки могут сжиматься до 0,1 их первоначального размера. Метод сжатия LZW применяется для файлов форматов TIFFи GIF;при этом данные формата GIFсжимаются всегда, а в случае формата TIFFправо выбора возможности сжатия предоставляется пользователю. Существуют варианты формата TIFF,которые используют другие методы сжатия. Из-за различных схем сжатия некоторые версии формата TIFFмогут оказаться несовместимыми друг с другом. Это означает, что возможна ситуация, когда файл в формате TIFFне может быть прочитан в некоторой графической программе, хотя она должна «понимать» этот формат. Другими словами, не все форматы TIFFодинаковы. Но, несмотря на эту проблему, TIFFявляется одним из самых популярных растровых форматов в настоящее время.

 

Хорошо сжимаемое изображение Плохо сжимаемое изображение

Рис. 11.3. Сжатие методом RLE

Метод сжатия JPEGобеспечивает высокий коэффициент сжатия для рисунков фотографического качества. Формат файла JPEG ,использующий этот метод сжатия, разработан объединенной группой экспертов по фотографии (Joint Photographic Experts Group ). Сжатие по методу JPEGсильно уменьшает размер файла с растровым рисунком (возможен коэффициент сжатия 100 : 1). Высокий коэффициент сжатия достигается за счет сжатия с потерями, при котором в результирующем файле теряется часть исходной информации. Метод JPEGиспользует тот факт, что человеческий глаз очень чувствителен к изменению яркости, но изменения цвета он замечает хуже. Поэтому при сжатии этим методом запоминается больше информации о разнице между яркостями видеопикселей и меньше — о разнице между их цветами. Так как вероятность заметить минимальные различия в цвете соседних пикселей мала, изображение после восстановления выглядит почти неизменным. Пользователю предоставляется возможность контролировать уровень потерь, указывая степень сжатия. Благодаря этому, можно выбрать наиболее подходящий режим обработки каждого изображения: возможность задания коэффициента сжатия позволяет сделать выбор между качеством изображения и экономией памяти. Если сохраняемое изображение — фотография, предназначенная для высокохудожественного издания , то ни о каких потерях не может быть и речи, так как рисунок должен быть воспроизведён как можно точнее. Если же изображение — фотография, которая будет размещена на поздравительной открытке, то потеря части исходной информации не имеет большого значения. Эксперимент поможет определить наиболее допустимый уровень потерь для каждого изображения.

JPEG – это алгоритм сжатия, основанный не на поиске одинаковых элементов, как в RLE и LZW, а на разнице между пикселами. Кодирование данных происходит в несколько этапов. Сначала графические данные конвертируются в цветовое пространство типа LAB, затем отбрасывается половина или три четверти информации о цвете (в зависимости от реализации алгоритма). Далее анализируются блоки 8х8 пикселов. Для каждого блока формируется набор чисел. Первые несколько чисел представляют цвет блока в целом, в то время, как последующие числа отражают тонкие делали. Спектр деталей базируется на зрительном восприятии человека, поэтому крупные детали более заметны.

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

Таким образом, чем выше уровень компрессии, тем больше данных отбрасывается, тем ниже качество. Используя JPEG можно получить файл в 1-500 раз меньше, чем ВМР! Формат аппаратно независим, полностью поддерживается на РС и Macintosh, однако он относительно нов и не понимается старыми программами (до 1995 года). JPEG не поддерживает индексированные палитры цветов. Первоначально в спецификациях формата не было и CMYK, Adobe добавила поддержку цветоделения, однако CMYK JPEG во многих программах делает проблемы. Лучшим решением является использование JPEG-сжатия в Photoshop EPS-файлах.

Существуют подформаты JPEG. Baseline Optimized - файлы несколько лучше сжимаются, но не читаются некоторыми программами. JPEG Baseline Optimized разработан специально для Интернета, все основные браузеры его поддерживают. Progressive JPEG так же разработан специально для Сети, его файлы меньше стандартных, но чуть больше Baseline Optimized. Главная особенность Progressive JPEG в поддержке аналога черезстрочного вывода.

Из сказанного можно сделать следующие выводы. JPEG’ом лучше сжимаются растровые картинки фотографического качества, чем логотипы или схемы - в них больше полутоновых переходов, среди однотонных заливок же появляются нежелательные помехи. Лучше сжимаются и с меньшими потерями большие изображения для web или с высокой печатной резолюцией (200-300 и более dpi), чем с низкой (72-150 dpi), т.к. в каждом квадрате 8х8 пикселов переходы получаются более мягкие, за счет того, что их (квадратов) в таких файлах больше. Нежелательно сохранять с JPEG-сжатием любые изображения, где важны все нюансы цветопередачи (репродукции), так как во время сжатия происходит отбрасывание цветовой информации. В JPEG’е следует сохранять только конечный вариант работы, потому что каждое пересохранение приводит ко все новым потерям (отбрасыванию) данных и превращении исходного изображения с кашу.

Цветовое пространство LAB представляет цвет в трех каналах: один канал выделен для значений яркости (L - Lightnes) и два других - для цветовой информации (А и В). Цветовые каналы соответствуют шкале, а не какому-нибудь одному цвету. Канал А представляет непрерывный спектр от зеленого к красному, в то время как канал В - от синего к желтому. Средние значения для А и В соответствуют реальным оттенкам серого.

Существует похожая цветовая модель YCC, используемая в форматах Kodak Photo CD и FlashPix, здесь не описываемых.

Метод сжатия Хаффмана (Huffman) разработан в 1952 году и используется как составная часть в ряде других схем сжатия, таких как LZW, Дефляция, JPEG. В методе Хаффмана берется набор символов, который анализируется, чтобы определить частоту каждого символа. Затем для наиболее часто встречающихся символов используется представление в виде минимально возможного количества битов. Например, буква "е" чаще всего встречается в английских текстах. Используя кодировку Хаффмана вы можете представить "е" всего лишь двумя битами (1 и 0), вместо восьми битов, необходимых для представления буквы "е" в кодировке ASCII.

Информация о методах сжатия, используемых в растровых форматах файлов, приведена в таблице 11.2.

Таблица 11.2. Растровые форматы графических файлов

Название формата Программы, которые могут открывать файлы Метод сжатия
BMP Windows Device Independent Bitmap Все программы WINDOWS, которые используют растровую графику RLE для 16- и 256- цветных изображений (по желанию)
PCX Z - Soft PaintBrush Почти все графические приложения для PC RLE (всегда)
GIF Graphic Interchange Format Почти все растровые редакторы; большинство издательских пакетов; векторные редакторы, поддерживающие растровые объекты LZW (всегда)
TIFF Tagged Image File Format Большинство растровых редакторов и настольных издательских систем; векторные редакторы, поддерживающие растровые объекты LZW (по желанию) и др.
TGA TrueVision Targa Программы редактирования растровой графики RLE (по желанию)
IMG Digital Research GEM Bitmap Некоторые настольные издательские системы и редакторы изображений WINDOWS RLE (всегда)
JPEG Joint Photographic Experts Group Последние версии программ редактирования растровой графики; векторные редакторы, поддерживающие растровые объекты JPEG (можно выбрать степень сжатия)

О некотоых других форматах

Adobe PostScript

PostScript - язык описания страниц (язык управления лазерными принтерами) фирмы Adobe. Был создан в 80-х годах для реализации принципа WYSIWYG (What You See is What You Get). Файлы этого формата представляют из себя программу с командами на выполнение для выводного устройства. Они имеют расширение .ps или, реже, .prn и получаются с помощью функции Print to File графических программ при использовании драйвера PostScript-принтера. Такие файлы содержат в себе сам документ (только то, что располагалось на страницах), все связанные файлы (как растровые, так и векторные), использованные шрифты, а так же другую информацию: платы цветоделения, дополнительные платы, линиатуру растра и форму растровой точки для каждой платы и другие данные для выводного устройства. Если файл создан правильно, не имеет значения на какой платформе он делался, были использованы шрифты True Type или Adobe Type 1 - все равно. Тем не менее нужно учитывать, что даже в том случае, когда вы сделали верные установки в окне печати, могут возникнуть проблемы связанные с некорректным переводом используемой вами программы ее графического языка на язык PostScript (например, внедрением информации о неиспользуемых шрифтах). Наиболее корректные PS-файлы создают программы Adobe.

Данные в PostScript-файле, как правило, записываются в двоичной кодировке (Binary). Бинарный код занимает вдвое меньше места, чем ASCII. Кодировка ASCII иногда требуется для передачи файлов через сети, для кроссплатформенного обмена, для печати через последовательные кабели. В приведенных случаях двоичная кодировка может исказиться (что сделает файл нечитаемым) или вызвать "странное" поведение файл-сервера. Эти проблемы давно изжиты в современных системах, но старые компьютеры и серверы бывают им подвержены. Сказанное относится ко всем форматам, основанным на языке PostScript: EPS и PDF, которые описываются ниже.

PDF (Portable Document Format)

PDF предложен фирмой Adobe как независимый от платформы формат для создания электронной документации, презентаций, передачи верстки и графики через сети. Используется как внутренний графический формат в Mac OS X.

PDF-файлы создаются путем конвертации из PostScript-файлов или функцией экспорта ряда программ. Для конвертации используется программа Adobe Acrobat Distiller, это лучший способ создания PDF. Создание PDF методом экспорта из программ дает, как правило худший результат - файлы получаются более тяжелыми, часто имеют проблемы со встраиванием шрифтов.

Для создания PDF так же существует программа PDFWriter, работающая как виртуальный принтер. PDFWriter не основан на PostScript и не может корректно обрабатывать графику. Он предназначен для быстрого изготовления простых текстовых документов. У него наблюдается та же проблема со встраиванием шрифтов, что и многих программ, умеющих экспортировать PDF. Самые надежные и максимально близкие к оригиналу PDF создает из PostScript и EPS-файлов программа Acrobat Distiller, поставляемая в пакете Adobe Acrobat.

PDF первоначально проектировался как компактный формат электронной документации. Поэтому все данные в нем могут сжиматься, причем к разного типа информации применяются разные, наиболее подходящие для них типы сжатия: JPEG, RLE, CCITT, ZIP (похожее на LZW и известное еще как Deflate). Программа Acrobat Exchange 3 (которая в 4-й версии стала называться просто Acrobat 4.0) позволяет расставлять гиперссылки, заполняемые поля, включать в файл PDF видео и звук, другие действия.

Метод сжатия CCITT (International Telegraph and Telephone Committie) был разработан для факсимильной передачи и приема. Является более узкой версией кодирования методом Хаффмана. CCITT Group 3 идентичен формату факсовых сообщений, CCITT Group 4 - формат факсов, но без специальной управляющей информации.

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

PDF все больше используется для передачи по сетям в компактном виде графики и верстки. Он может сохранять всю информацию для выводного устройства, которая была в исходном PostScript-файле. Это касается PDF версий 1.2 (Acrobat 3) и выше. Однако, версия 1.2 не может включать сведения о треппинге, некоторые другие специфические данные (DSC, например), не использует цветовые профили. Все это реализовано в последующих вариантах формата.

Adobe Photoshop Document

Внутренний формат популярного растрового редактора Photoshop в последнее время стал поддерживаться все большим количеством программ. Он позволяет записывать изображение со многими слоями (до 1000), их масками, дополнительными Альфа-каналами и каналами простых (spot) цветов, корректирующими, векторными, текстовыми слоями, контурами и другой информацией - все, что может сделать Photoshop. В версии 3.0 появляются слои, контуры и RLE-компрессия, в 4-й версии алгоритм улучшается, файлы становятся еще меньше. В версии 5 реализован принципиально иной подход к управлению цветом. В программу была внедрена архитектура управления цветом, основанная на профилях для сканеров, мониторов и принтеров Международного консорциума по цвету (International Color Consortium, ICC). В шестой версии метод управления цветом переработан.

Несмотря на многочисленные дополнения функциями формат Photoshop'a имеет полную совместимость от 3-й до 7-й версии. В Photoshop'e 2.5 не было слоев и контуров, поэтому он выступает, как отдельный подформат.

Однослойный Photoshop Document понимают ряд программ, многослойные могут импортировать Illustrator и InDesidn. Corel Painter и Corel PHOTO-PAINT открывают на редакцию многослойные документы Photoshop.

Одной из простейших форм сжатия является метод RLE (Run Length Encoding - кодирование с переменной длиной строки). Действие метода RLE заключается в поиске одинаковых пикселов в одной строке. Если в строке, допустим, имеется 3 пиксела белого цвета, 21 - черного, затем 14 - белого, то применение RLE дает возможность не запоминать каждый из них (38 пикселов), а записать как 3 белых, 21 черный и 14 белых в первой строке.

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

Adobe Illustrator Document

Adobe Illustrator - самый первый продукт Adobe. Он был создан сразу же после выхода PostScript Level 1, его можно назвать интерфейсом для PostScript. До 9-й версии ядро формата основывалось на EPS, с 9-й в основе лежит ядро PDF. Это дает основание полагать, что в будущем появится, наконец, многостраничность. Формат Illustrator'а напрямую открывается Photoshop'ом, его поддерживают почти все программы Макинтош и Windows так или иначе связанные с векторной графикой и графикой вообще. Все, что создает Adobe Illustrator, совместимо PostScript (исключение составляют, разве что Gradient Meshes, которые нужно растеризовать перед закрытием на печать).

Формат Illustrator’ра является наилучшим посредником при передаче векторов из одной программы в другую, с РС на Macintosh и назад. Наиболее совместимыми можно назвать 3-ю и 4-ю версии. При передаче градиентных заливок между векторными редакторами в редактируемом виде (когда они не конвертируются в последовательность фигур) нужно использовать версии формата, начиная с 6-й. Внедренные или связанные с документом растровые файлы при обмене через формат Illustrator'a во всех программах, кроме FreeHand версии 9 и выше, теряются. Начиная с 9-й версии формат Illustrator'а может содержать внедренные шрифты (включая такие особенные шрифтовые форматы как Adobe Type 3 и Adobe Multiple Master) и ICC-профиль. Illustrator 9 позволяет сориентировать проект на цветовое пространство RGB или CMYK и сохранить это в файле.

CorelDRAW Document

Формат известен в прошлом низкой устойчивостью, плохой совместимостью файлов, искажением цветовых характеристик внедряемых битовых карт, тем не менее пользоваться CorelDRAW чрезвычайно удобно, он имеет неоспоримое лидерство на платформе РС. Многие программы на РС (FreeHand, Illustrator, PageMaker - среди них) могут импортировать файлы CorelDRAW.

В седьмой версии многие основные проблемы были решены. Ее, 8-ю и 9-ю версии CorelDRAW можно без натяжек назвать профессиональными. В файлах этих версий применяется компрессия для векторов и растра отдельно, могут внедряться шрифты, файлы CorelDRAW имеют огромное рабочее поле 45х45 метров; начиная с 4-й версии поддерживается многостраничность, начиная с 7-й - технология OPI.

Файлы формата CorelDRAW можно применять для переноса/передачи работ на PC, но нежелательно импортировать в программы верстки. На Макинтош файлы CorelDRAW для Windows открывают версия CorelDRAW для Макинтош и Adobe Illustrator 8 и выше.

PICT (Macintosh QuickDraw Picture Format)

PICT - собственный формат Mac OS Classic. Стандарт для буфера обмена, использует графический язык Mac OS. PICT способен нести растровую, векторную информацию, текст и звук, использует RLE-компрессию. Поддерживается на Mac’e всеми программами. Чисто битовые PICT-файлы могут иметь любую глубину битового представления (от Lineart до CMYK). Векторные PICT-файлы, которые почти исчезли из употребления в наши дни, имели странные проблемы с толщиной линии и другими отклонениями при печати. Формат используется для потребностей Mac OS, и при создании определенных типов презентаций только для Макинтош. Вне Макинтош PICT имеет расширение .pic или .pct, читается отдельными программами, но работа с ним редко бывает простой и бесхитростной.

RTF (Microsoft Rich Text Format)

Текстовый формат RTF попал сюда за свои неординарные способности к переносу текстов из одной программы в другую. Он позволяет передавать форматированный текст из программ оптического распознавания символов или текстовых редакторов в графические программы или в любых других направлениях. RTF может оказаться хорошим решением (а, иногда, и единственным выходом) при переброске из программы в программу нелатинского, например, ивритского текста или русского в Windows 95/98 Hebrew Edition.

Секрет совместимости заключается в использовании специальных тегов форматирования RTF и Unicode. Именно Unicode (использованный как основа формата Microsoft Word 97/98 для Макинтош и PC) позволяет легко переносить русские тексты с PC на Мак и обратно в файлах MS Word 97/98 (верно и для более высоких версий Word’а).

RTF используется как основной в поставляемом вместе с Mac OS X редакторе TextEdit и в прилагаемом к Windows программе WordPad.

О сохранении изображений в собственных и «чужих» форматах

Как правило, графические программы используют свои собственные форматы для сохранения изображений во внешней памяти. Собственный файловый формат — частный и наиболее эффективный формат для хранения файлов отдельного графического приложения. Например, «родной» формат CorelDRAW — CDR , Adobe PhotoShop — PSD, Fractal Design Painter — RIFF, Paint(стандартная программа WINDOWS ) — BMP. При сохранении изображения в файле всегда нужно указывать тип формата. На рис. 11.4 показано диалоговое окно (Ехроrt \Экспорт),используемое в программе CorelDRAW.

Кроме того, для каждого «чужого» графического формата открываются дополнительные диалоговые окна, с помощью которых пользователь устанавливает параметры формата (количество используемых цветов, необходимость сжатия — для BMP и TIFF, коэффициент сжатия — для JPEG и др.).

Рис. 11.4. Диалоговое окно для сохранения в CorelDRAWизображения в формате JPEG