
29 Rle схемы битового, байтового, пиксельного уровня.
Любой алгоритм группы кодирования отличаются друг от друга длиной групп данных. RLE схема для кодирования растровых изображений и использования в большинстве форматов.
1.битовый уровень
кодирует в группы биты строк развертки, игнорируя при этом границы байтов и слов. Используется для обработки монохромных однобитовых изображений .
RLE кодирует в группу от 1 до 128 битов, создавая из них 1 байтовые пакеты.
7 младших битов содержат счетчик группы, старший бит содержит значение группы.
8 –ой бит – (0\1), значение группы
1-7 – ой биты – счетчик группы (0-127)
2.байтовый уровень
Кодирует одинаковые байтовые значения, игнорируя отдельные биты. RLE кодируется в 2-х байтовый пакет
1-ый байт – счетчик группы(0-255)
2-ой байт – значение группы (0-255)
Используемая схема 2х байтового кодирования, позволяет хранить в потоке данных как закодированные, так и не закодированные группы.
Незакодированные группы – литералы. В этом случае 1-7 бит 1- го байта пакета содержит счетчик группы, а самый старший бит 1-го байта – тип группы:
1- закодированная группа
0 – литеральная группа, т. е следующие байты должны читаться на прямую из закодированных данных изображения в количестве, указанном счетчиком группы +1.
1 – ый байт 1-127 - счетчик
0-255 – значение группы
1 |
0-127 |
0-255 |
0 |
0-127 |
1,2,3,4,…,255 |
закод.
литеральная
Эффективно для изображений ,хранящихся в виде 1 байта на пиксель.
3.пиксельного уровня
Используется для хранения 1 пиксельного значения , 2 или более смежных байтов изображения.
На пиксельном уровне биты игнорируются, а байты принимаются во внимание любого пиксельного значения. Размер закодированного пакета зависит от размера пиксельных значений , подлежащих кодированию.
Сведения о количестве битов или байтов пикселя записаны в заголовке файла изображения.
1-ый байт – счетчик(0-255)
N |
red |
green |
blue |
3-ий байт – пиксель 2го канала(0-255)
4-ый байт – пиксель 3 го канала(0-255)
Существуют литеральные группы пиксельного уровня для этого также как и в схемах байтового уровня используется старший бит 1 го байта.
В RLE схемах пиксельного уровня счетчик содержит данные о количестве пикселей .
30Rle схемы с использованием флага.
При этом способе для представления группы используется не 2 ,а 3 байта.
1ый байт – флаг, значение которого указывает на то , что следующие 2 байта часть закодированного пакета.
255 |
0-255 |
0-255 |
3ий байт – значение группы
флаг 255 – закодированная группа
Если нет флага – незакодированная группа.
255 |
15 |
218 |
|
15 |
218 |
цвет пиксель цвет
Если в процессе кодирования встречаются одинаковые группы пикселей, то их значение непосредственно в потоке сжатых данных. При декодирований:
флаговое значение – то читают и обрабатывают счетчик и значение группы
не флаговое то, он записывается напрямую
Недостатки минимальный размер до 4 х символов
поток незакодированных данных содержит значения символов = флаговому значению, Этот символ должен быть закодирован в 3х байтовый пакет.31 RLE пакет вертикального повторения.
Пакет вертикального повторения строк развертки. Он не хранит действительные данные строк развертки , а указывает на необходимость повторить предыдущую строку .Он занимает 2 байта.
1 ый байт – счетчик группы
2 ой байт - количество повторяемых строк развертки
FB
255 |
255 |
0 |
255 |
32LWZ сжатие.
Этот метод сжатия данных без потерь применяется в различных формах файловых изображений , в частности gif, tif , включен в стандартное сжатие для модемов и используется в zip архивации , compress, ipg. Был разработан Лейболом и Зифом lz-78 для растровых данных .
в 1984 алгоритм был доработан Велчем и стал LZW
LZW- позволяет работать с любыми данными, так как обеспечивает быструю распаковку и сжатие данных . Он основан на поиске шаблонов внутри заданной строки и сохранения этих шаблонов .
Программа считает каждый представляющий собой повторяющийся пиксельный узор .
Степень сжатия 3:1-4:1 хорошо сжимает сильно насыщенный узор изображения , содержащий очень большие блоки однотонной окраски или повторяющиеся цветные узоры.
Метод LZW не является форматом, но включается в различные форматы файлов.
WED/WE/WEE/WEB/WET
ВЫХ.ПОСЛ. КОДИР.ПОСЛ.
/(значение) 256=/w
w 257=we
e 258=ed
d 259=d/
256 260=/we
e 261=e/
260 262=/wee
261 263=e/w
257 264=web
260 265=b/
260 266=/we
Алгоритм распаковки аналогичен сжатию с точностью до наоборот.
Работа алгоритмов начинается с проверки наличия строки (очередного символа из входящего потока в библиотеку, так как первые 255 символов уже определены , то если не находится строка в таблице символов , в выходном потоке пишется значение по таблице ASCI , а в таблицу добавляется следующее значение , равное строка+символ. Этот процесс продолжается до тех пор пока не запишутся все входящие данные инее записаны все коды.
Алгоритм LWZ относится к алгоритмам подстановки , то есть к методам адаптивного кодирования , базирующегося на словарях. Словарь строится в процессе кодирования .
LWZ –необходимо сохранять словари для последнего кодирования потока данных .
При сжатии текстовых файлов lwz или первые 250 записей словаря одного байтовыми символами ASCI.
Эти записи представляют значения , которые встречаются в потоке данных в различных композициях , строят новые подстроки , записывающиеся в конец словаря .
кодирование и декодирование начинается со словаря .