Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
36
Добавлен:
17.05.2013
Размер:
948 Кб
Скачать
☆

Варианты группового 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

2-ой байт – пиксель1 го канала(0-255)

3-ий байт – пиксель 2го канала(0-255)

4-ый байт – пиксель 3 го канала(0-255)

Сущ-ют литеральные гр пиксельного уровня: для этого также как и в схемах байтового уровня используется старший бит 1 го байта. В RLE схемах пиксельного уровня счетчик содержит данные о количестве пикселей .

RLE-схемы с использованием флага

При таком способе кодир-ия для представления группы используется не 2 ,а 3 байта.

1-ый байт – флаг, значение которого указывает на то , что следующие 2 байта явл частью закодиров-ого пакета.

255

0-255

0-255

флаг

счётч

знач

2-ой байт – счетчик группы

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 как фразами, а затем ищет их повторения.

Соседние файлы в предмете Компьютерная Графика