- •История развития комп графики
- •Основные понятия комп графики
- •Пиксельные данные и палитры
- •Цветовые пространства
- •Типы палитры
- •Векторные файлы.
- •Растровые файлы
- •Фрактальная графика
- •Сжатие данных
- •Физическое и логическое сжатие
- •Симметричное и ассиметричное сжатие
- •Адаптивное,полуадаптивное и неадаптивное кодир-ие
- •Сжатие с потерями и без потерь
- •Классификация приложений,использ-х алгоритм компрессии
- •Требования к приложениям,использ-х алгоритм компрессии
- •Групповое кодир-ие rle
- •Варианты группового rle-кодир-ия
- •Кодирование ccitt
- •Алгоритм Хаффмана для символьных групп
- •Сжатие jpeg
- •Этапы сжатия jpeg
- •Mpeg-сжатие
- •Сравнительный анализ mpeg-стандартов
- •Форматы графических файлов
- •Вопросы к экзамену по компьютерной графике
Варианты группового rle-кодир-ия
Данные изображ-ия обычно кодир-ся последовательно.Растер кодир-ся,начиная с верхнего лев угла по оси Х слева направо к нижн правому углу. Альтернатив схемы позволяют записывать закодир-ые данные по высоте растора(т.е. по оси Y),а также кодируют растр зигзагом.
Иногда встречаются варианты группового RLE-кодир-ия с потерями: отбрасывают данные в процессе кодир-ия(обычно младший бит в каж пикселе),что серьёзно увеличивает степень сжатия изображ-ия,но примен-ся только в многоцветных изображ-х. RLE-кодировщик должен останавливаться в конце каждой строки развертки растровых данных. Построчное кодир-е требует меньшего размера буфера и предотв-ет проблему перекрестного кодир-я. Перекрестное кодирование – слияние строк развертки, происходящее из-за того, что в процессе кодирования различие между строками исчезает. При выйгрыше в нескол байтов в процессе сжатия без маркера конца строки FB значительно усложняется процесс декодирования инф-ии, а также нарушается базовый принцип организации растрового изображ-ия в виде строк развёртки.
Программа-кодировщик помещает в закодированные данные маркер конца строки развёртки, чтобы программа-декодировщик могла распознать начало строки развертки. Этот маркер предст собой уникальный пакет, точно определённый спецификацией RLE. Обычно маркер конца строки развёртки им длину 1 байт. Преимущество построчного кодирования - программа легко воспроизводит любую часть изображения. Другим способом определения в блоке закодир-х данных начальных точек любой строки развертки является создание таблиц строк разверток TCR, содержащих по 1 элементу для любой строки, в этот элемент записана инф-я о смещении начала каждой строки развертки в файле.
RLE-схемы битового,байтового и пиксельного уровней
Различают алгоритмы группового кодирования по длине групп данных. RLE-схемы, применяемые для кодирования растровой графики, делятся на классы в зависимости от уровня обрабатываемых данных. Большинство форматов используют 3 класса: битовый, байтовый и пиксельный уровни.
Битового уровня – кодируют в группы биты строк развертки, игнорируя при этом границы битов и слов. Используются только при обработке монохромных изображений, которые содержат достаточное количество битовых групп. RLE-схемы битового уровня кодируют в группы только до 128 битов, создавая из них однобайтовый пакет. 7 младших битов этого байта содержат счетчик группы, самый старший бит – значения группы (0 или 1).
Байтового уровня – эти схемы кодируют в группы одинаковые байтовые знчения, игнорируя при этом отдельные биты. RLE-сх байтового ур кодируют в 2-х байтовый пакет: 1-ый байт – счетчик группы(0-255)
2-ой байт – значение группы (0-255). Используемая схема 2х байтового кодирования, позволяет хранить в потоке данных как закодированные, так и не закодированные группы. Незакодированные группы – литералы. В этом случае 1-7 бит 1- го байта пакета содержит счетчик группы, а самый старший бит 1-го байта – тип группы: 1- закодированная группа, 0 – литеральная группа, т. е следующие байты должны читаться на прямую из закодированных данных изображения в количестве, указанном счетчиком группы +1.
1 |
0-127 |
0-255 |
тип гр |
счётчик гр |
значение гр |
0 |
0-127 |
0-255 |
0-255 |
Тип гр |
счётчик гр |
Знач 1 |
Знач 2 |
Группа- указывает, сколько пикселей подряд будут считаны. RLE-сх байтового ур эффективны для данных изображения, кот хран-ся в виде 1 байта на пиксель.
Пиксельного уровня – применяются тогда, когда для хранения одного пиксельного значения используется 2 или более смежных байтов данного изображения. На пиксельном уровне биты игнорируются, а байты используются для идентификации пиксельного значения. Размер закодированного пакета зависит от размера пиксельных значений, подлежащих кодир-ю. Сведения о кол-ве битов или байтов пикселя записано в заголовке файла изображения.
1-ый байт – счетчик(0-255)
N |
red |
green |
blue |
0-255 |
0-255 |
0-255 |
0-255 |
3-ий байт – пиксель 2го канала(0-255)
4-ый байт – пиксель 3 го канала(0-255)
Сущ-ют литеральные гр пиксельного уровня: для этого также как и в схемах байтового уровня используется старший бит 1 го байта. В RLE схемах пиксельного уровня счетчик содержит данные о количестве пикселей .
RLE-схемы с использованием флага
При таком способе кодир-ия для представления группы используется не 2 ,а 3 байта.
1-ый байт – флаг, значение которого указывает на то , что следующие 2 байта явл частью закодиров-ого пакета.
255 |
0-255 |
0-255 |
флаг |
счётч |
знач |
3-ий байт – значение группы
Значение флага д.б. заранее задано.
//Флаг:= 255
флаг |
счётч |
знач |
255 |
15 |
218 |
218- данные не закодир. 16 раз повоторзнач 218.
Если в процессе кодирования встречаются одинарные,двойные или тройные группы пикселей, то их значения записываются непосредственно в поток сжатых данных. При декодирований, если встреч флаговое знач, то читаются и обрабатываются счетчик и значение группы. Если прочитанный символ не явл флаговым знач-ем, то он записыв-ся в выходной поток данных напрямую.
Недостатки:1).минимальный размер группы, пригодной для кодир-я увеличив до 4х байт. 2).если поток незакодированных данных содержит значения символов = флаговому значению, то этот символ д.б. закодирован в 3х байтовый пакет.
RLE-пакет вертикального повторения
Некоторые RLE-схемы для повышения эффект-ти сжатия использ пакет повторения строк развертки или пакет вертикального повторения. Этот пакет не хранит реальных строк развертки, он содержит указатель на необходимость повторить предыдущую строку. Пакет вертикального повторения занимает всего 1 байт для счетчика группы, причем этот байт равен 0. Второй байт – для значения количества повторяемых строк развёртки.
LZW-сжатие
Этот метод сжатия без потерь применяется в различных форматах файлов: GIF, TIFF; включен в стандарт сжатия для модемов и язык Post Script. Используется для сжатия текста и является основой архивирующих программ: ZIP,ARG, COMPRESS. Был разработан в 1977 г., в 1984 был доработан и стал наз LZW.
Алгоритм LZW позволяет работать с любым типом данных, обеспечивает быстрое сжатие и распаковку. Этот алгоритм основан на поиске шаблонов в изображении и сохранении их. Программа считывает значения пикселей и строит таблицы кодов, которые представляют повторяющиеся пиксельные узоры, найденные этой программой. Степень сжатия достигается 3:1 или 4:1. Хорошо сжимаются насыщенные узорами изображения, содержащие большие блоки однотонной окраски или повторяющиеся одинаковые значения цветовых элементов. Этот алгоритм, как и RLE, не является форматом – он лишь включен в различные другие форматы файлов.
LZW является полуадаптивным, т.к. строит словарь данных из входного потока, образцы данных идентифицируются в потоке данных и сопоставляются с записями из словаря. Если данные не представлены в словаре, то создается кодовая фраза, которая записывается как в словарь, так и в выходной поток сжатых данных. Т.к. фразы имеют меньший физический размер, чем исходные данные, то LZW считается сжатием. Декомпрессор работает в порядке, обратном кодированию. Преимущество LZW в том, что для него необязательно сохранять словарь для последующего декодирования. При сжатии текстовых файлов LZW инициализирует первые 256 записей символами ASCII как фразами, а затем ищет их повторения.
