Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BDlab / 16_v_odnom.docx
Скачиваний:
54
Добавлен:
18.03.2015
Размер:
69.07 Кб
Скачать

38.Сжатие методом lzw

Это метод сжатия без потерь,примен в разл форматах файла изобр. Включен в стандарт сжатия модемов и исп. в языке Post Script.

В 1977 был разработан и был назван LZ-77. Использ алгоритм для сжатия текстов,стал основой таких програм как PKZIP,PKUNZIP,ARJ. В1978 алгоритм был модифицир и стал применяться для сжатия двоичных данных. В 1984 был модиф компрессор и алгоритм получил наз-е LZW. Алгоритм LZW позволяет работать с любым типом данных, обеспечивает быстрое сжатие и распаковку. Этот алгоритм основан на поиске шаблонов в изображении и сохранении их. Программа считывает значения пикселей и строит таблицы кодов, которые представляют повторяющиеся пиксельные узоры, найденные этой программой. Степень сжатия достигается 3:1 или 4:1. Хорошо сжимаются насыщенные узорами изображения, содержащие большие блоки однотонной окраски или повторяющиеся одинаковые значения цветовых элементов. Этот алгоритм, как и RLE, не является форматом – он лишь включен в различные другие форматы файлов. LZW является полуадаптивным, т.к. строит словарь данных из входного потока, образцы данных идентифицируются в потоке данных и сопоставляются с записями из словаря. Если данные не представлены в словаре, то создается кодовая фраза, которая записывается как в словарь, так и в выходной поток сжатых данных. Если эта подстрока встречается повторно во входном потоке, то кодовая фраза соответствующая ей читается из словаря и записывается в выходной поток. Т.к. фразы имеют меньший физический размер, чем исходные данные, то LZW считается сжатием. Декомпрессор работает в порядке, обратном кодированию. Преимущество LZW в том, что для него необязательно сохранять словарь для последующего декодирования. При сжатии текстовых файлов LZW инициализирует первые 256 записей символами ASCII как фразами, а затем ищет их повторения.

8.Отображение цветов.

Набор цветов, который задаётся пиксельными значениями в файле, не всегда совпадает с тем, который может быть отображен на физическом устройстве вывода. Задача согласования набора цветов решается программой визуализации, которая осуществляет преобразование цветов, заданных в файле, в цвета устройства вывода. Существует 2 варианта:

1 если количество цветов, заданных пиксельными значениями в файле значительно меньше количества цветов, которое способно отобразить устройство вывода.

2 устройство вывода способно отобразить меньше цветов, чем записью в исходных данных

Программа визуализации сопоставляет наборы цветов источника и адресата, количество цветов приводится в соответствие с тем количеством цветов, которое способно отобразить устройство. Этот процесс называется квантованием и сопровождается потерей цветов. Оно приводит к появлению артефактов квантования (дополнительные контуры, муар). Иногда артефакты квантования находят применение: используются для удаления шумов в изображении, такой процесс квантования называется сверткой

9.Определение цвета с помощью палитры.

R

G

B

1

255

255

255

Белый

2

255

0

0

Красный

3

0

255

0

Зеленый

4

0

0

255

Синий

5

255

255

0

Желтый

6

0

255

255

Голубой

7

255

0

255

Фиолетовый

8

128

0

0

Бордовый

9

0

128

0

Темно-зеленый

10

0

0

128

Темно-синий

11

128

128

0

Горчичный

12

0

128

128

Грязно-голубой

13

128

0

128

Темно-фиолетовый

14

128

128

128

Серый

15

255

128

128

Кирпичный

Пиксельные данные, содержащие более 1 бита на пиксель, могут представляться:
  1. как набор индексов палитры цветов

  2. определяется в соответствии со схемой определения цветов.

Палитра также называется картой индексов, таблицей цветов или таблицей перекодировки и представляет собой одномерный массив цветных величин. С помощью палитры цвета задаются косвенно, посредством указания их позиций в массиве. При использовании этого метода данные записываются в файл в виде последовательности индексов. Растровые данные, в которых используется палитра, называется растровыми данными с косвенно или псевдоцветной записью. Палитра обычно включается в тот же самый файл, где содержится изображение. Таким образом, получается значение цвета, которое необходимо для окрашивания пикселя на устройстве вывода. Обычно каждый элемент палитры занимает 24 бита. //Каждое пиксельное значение содержит как индекс палитры. Программа визуализации читает из файла пиксельное значение и обращается к палитре за значением цвета.//

Т.к цветовые модели, существующие с начала века, базируются на 3 цветах, то использование 3-х байтов для хранения пиксельных данных очень удобно. Т.о. объем памяти, занимаемый палитрой, в 3 раза больше, чем максимальное количество определяемых ею цветов. Использование палитры оправдано тогда, когда количество цветов ≤ 256.

В больших и сложных изображениях косвенное сохранение цветов с использованием палитры экономит память за счет сокращения объема данных.

Если объем растровых данных в файле невелик или используется больше 255 цветов, то включение в файл палитры может привести к обратному результату, т.е. требуемый объем памяти возрастет. Косвенное задание цветов имеет некоторые преимущества:

  1. Всегда можно узнать, сколько цветов содержит изображение;

  2. Очень удобно менять цвета изображения, для этого достаточно изменить в палитре значение одного цвета на значение другого.

К недостаткам относится то, что палитру неэффективно применять для полноцветного изображения.

39. LZW кодирования

С начала LZW проверяет является ли фраза(подстрока) уже известной. Если подстрока уже встречалась, то кодировщик выводит из словаря ее код, а в словарь записывает код для подстроки +след. символ

#Предположим встретилась строка:

/WED/WE/WEE/WEB/WET/

Словарь Выходной поток

/W-256 /

WE-257 W

ED-258 E

D/-259 D

/WE-260 256

E/-261 E

/WEE-262 260

E/W-263 261

WEB-264 257

B/-265 B

WET/-266 260

T

На первом шаге алгоритм выполняет проверку на наличие подстроки, состоящих из 2-х первых символов послед-ти в словаре (/W).Когда алгоритм не находит эту подстроку, то в выходн. поток он записывает ASCII код для одинакового символа ‘/’ и добаыляет в словарь ‘/W’ Т.к. 256 символов уже определены для ASCII одинак. символов(0-255) то 1-й подстр. м.б. поставлен в соответствии код 256. После того кодировщик читает след. символ, добавляет 2-ю подстроку WE в словарь, а выход. поток выводит ASCII символ ‘W’. Этот процесс повторяется до тех пор пока прочитанная подстрока не сопоставится со зн-ем из словаря. В этом случае система выведет в выход. поток код из словаря, а в словарь добавит уже 3х символьную подстроку Этот процесс продолжается до тех пор пока не исчерпается вход поток. Словарь очень быстро заполняется, т.к. нов. строка добавляется в таблицу каждый раз ,как генерируется код. Если использовать токлько 9-ти битные коды, то в предложенном примере то 19-ти байтная символьная стр-ра будет преобразована в 13.5 битную. Это демонстративный пример ,в действительности сжатие не начинается до тех пор, пока не будет построен примитивные словарь на 100 вых-х байт.

Соседние файлы в папке BDlab