
- •Сжатие данных
- •Терминология
- •Физическое и логическое сжатие
- •Симметричное и асимметричное сжатие
- •Адаптивное, полуадаптивное и неадаптивное кодирование
- •Сжатие с потерями и минимизация потерь
- •Варианты группового кодирования
- •Пакеты вертикального повторения
- •Удаление шума и дифференцирование
- •Варианты алгоритма lzw
- •Юридические вопросы использования lzw
- •Историческая справка
- •Одномерное кодирование Group 3 (g31d)
- •Сжатие tiff Type 2
- •Двухмерное кодирование Group 3 (g32d)
- •Двухмерное кодирование Group 4 (g42d)
- •Советы по разработке кодировщиков и декодеров ccitt
- •Jpeg в перспективе
- •Основы jpeg
- •Преобразование изображения
- •Субдискретизация компонентов цветности
- •Применение дискретного косинус-преобразования
- •Квантование каждого блока
- •Арифметическое кодирование
- •Сжатие jpeg без потерь
- •Селективное улучшение
- •Фрагментация изображения
- •Принцип работы jbig
- •Принципы работы art
- •Основы фрактальной графики
- •Мультимедиа
- •Анимация
- •Цифровая видеоинформация
- •Цифровая аудиоинформация
- •Стандарт midi
Принцип работы jbig
Двухуровневые изображения состоят всего из двух цветов, поэтому хранятся они в виде одного бита на пиксель. Самый распространенный тип двухуровневого изображения — черно-белое (например, страница книги). Тем не менее единичным (цвет знаков) или нулевым (цвет фона) состоянием одного бита можно представить любые два цвета.
Для типичных двухуровневых алгоритмов сжатия, основанных на методе группового кодирования, характерна построчная обработка изображения. Такие алгоритмы называют методами одномерного кодирования. Методы двухмерного кодирования кодируют группы пикселей, описывая различия между пиксельными значениями текущей и предыдущей строк развертки.
JBIG кодирует избыточные данные изображения путем сравнения значения пикселя в строке развертки со значениями группы пикселей, уже отсканированных кодировщиком. Эти пиксели называются шаблоном и образуют простую схему комбинаций пикселей, которые окружают кодируемый пиксель. Значения таких пикселей используются для идентификации избыточных комбинаций в данных изображения. Эти комбинации затем сжимаются с помощью адаптивного арифметического сжимающего кодировщика.
Адаптивная природа шаблонов позволяет с высокой точностью предсказывать цвет кодируемых значений пикселей. При этом степень сжатия полутоновых изображений на 80% выше, чем в случае применения неадаптивных методов.
Хотя основное предназначение JBIG — это сжатие данных двухуровневых изображений, с его помощью можно обрабатывать и цветные, и полутоновые изображения глубиной до 255 битов на пиксель. Такие многобитовые пиксельные изображения сжимаются по битовым плоскостям, а не по пикселям. Например, 8-битовое изображение, сжатое по методу JBIG, кодируется в виде восьми отдельных битовых плоскостей.
Описанный метод можно применять в качестве альтернативы JPEG-кодированию без потерь. Установлено, что при обработке изображений глубиной 2—5 битов на пиксель JBIG дает лучшие результаты, чем вариант JPEG с использованием Q-кодировщика, а при обработке изображений глубиной 6—8 битов на пиксель результаты совпадают.
Чтобы нормализовать изменения между смежными байтовыми значениями в данных изображения, каждую битовую плоскость рекомендуется предварительно обрабатывать по алгоритму циклического двоичного кодирования. Этот процесс повышает эффективность кодировщика JBIG.
JBIG-изображения можно кодировать последовательно или поступательно. Последовательно кодируемые изображения записываются в один слой с полным разрешением, при этом другие изображения, с меньшим разрешением, в этот поток данных не помещаются. Такое последовательное JBIG-изображение по функциям и применению эквивалентно G4-изображению. Декодируется оно за один проход и имеет примерно такую же степень сжатия, как и при использовании G4.
Поступательное кодирование начинается с изображения с самым высоким разрешением, а заканчивается изображением с самым низким разрешением. Изображение с высоким разрешением записывается в отдельный слой, а затем используется для создания изображения с более низким разрешением, которое также записывается в отдельный слой. Каждый слой, следующий за первым, называется удвоением разрешения. Таким образом, изображение с тремя слоями имеет два удвоения.
Число удвоений при кодировании не ограничено. Например, изображение с разрешением 1200 точек на дюйм можно закодировать в один слой (1200 точек на дюйм), в три (1200, 600 и 300 точек на дюйм) или в пять слоев (1200, 600, 300, 150 и 75 точек на дюйм). Минимальное разрешение определяется тем, что считается полезным. Даже неразборчивое изображение с разрешением 10 точек на дюйм можно использовать как пиктограмму.
Поступательное декодирование — это обратный процесс: изображение с самым низким разрешением декодируется первым, затем следуют изображения с более высоким разрешением, пока не будет достигнуто полное разрешение. Преимущество этого метода состоит в том, что данные появляются на устройстве вывода мгновенно. Декодировать и передавать уточняющие данные необходимо только до достижения соответствующей разрешающей способности этого устройства.
Последовательный и поступательный методы JPEG-кодирования полностью совместимы. Изображения, сжатые методом последовательного кодирования, могут читаться поступательными JBIG-декодерами. Последовательные JBIG-декодеры могут читать в поступательно закодированных JBIG-изображениях только первый слой, с самым низким разрешением.
Многие приложения, в которых применяется JBIG, могут использовать только последовательное кодирование и декодирование. В первую очередь это касается факсимильной передачи. Поэтому можно реализовать упрощенный алгоритм JBIG, который будет кодировать только первый слой потока JBIG-данных. Такие кодировщики выдают достоверный поток JBIG-закодированных данных, который могут читать все JBIG-декодеры.
При поступательном кодировании в поток JBIG-данных добавляется не слишком много данных по сравнению с последовательным кодированием, однако требования к памяти здесь выше. Поскольку изображение с низким разрешением кодируется из данных следующего изображения, с более высоким разрешением (а при декодировании — наоборот), то необходим буфер, в котором будут храниться данные изображения, используемые в качестве эталона.
Сжатие ART
ART — это оригинальный алгоритм сжатия, который был создан и продается фирмой Johnson-Grace. Эта фирма, занимающаяся разработкой программного обеспечения, основана в 1992 году Стивом Джонсоном и Крисом Грейсом. Johnson-Grace разрабатывает инструментальные программные средства, например Web-броузеры для online-сервисов и конечных пользователей.