
- •2. История развития графической системы персонального компьютера
- •18. Векторный файл (вф)
- •34.Сжатие с потерями и без потерь. Симметричное и асимметричное сжатие.
- •26. Организация данных в виде плоскостей
- •41 Кодирование по алгоритму Хаффмана.
- •31 Фрактальное сжатие
- •44 Сжатие mpeg.
- •20 Каналов.
- •29. Сетчатая (каркасная) модель.
- •48.Прикладные программы создания и редактирования растровых изображений
- •49. Прикладные программы создания и редактирования векторных изображений.
- •38.Сжатие методом lzw
- •40. Lzw декодирования
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 |
Кирпичный |
-
как набор индексов палитры цветов
-
определяется в соответствии со схемой определения цветов.
Палитра также называется картой индексов, таблицей цветов или таблицей перекодировки и представляет собой одномерный массив цветных величин. С помощью палитры цвета задаются косвенно, посредством указания их позиций в массиве. При использовании этого метода данные записываются в файл в виде последовательности индексов. Растровые данные, в которых используется палитра, называется растровыми данными с косвенно или псевдоцветной записью. Палитра обычно включается в тот же самый файл, где содержится изображение. Таким образом, получается значение цвета, которое необходимо для окрашивания пикселя на устройстве вывода. Обычно каждый элемент палитры занимает 24 бита. //Каждое пиксельное значение содержит как индекс палитры. Программа визуализации читает из файла пиксельное значение и обращается к палитре за значением цвета.//
Т.к цветовые модели, существующие с начала века, базируются на 3 цветах, то использование 3-х байтов для хранения пиксельных данных очень удобно. Т.о. объем памяти, занимаемый палитрой, в 3 раза больше, чем максимальное количество определяемых ею цветов. Использование палитры оправдано тогда, когда количество цветов ≤ 256.
В больших и сложных изображениях косвенное сохранение цветов с использованием палитры экономит память за счет сокращения объема данных.
Если объем растровых данных в файле невелик или используется больше 255 цветов, то включение в файл палитры может привести к обратному результату, т.е. требуемый объем памяти возрастет. Косвенное задание цветов имеет некоторые преимущества:
-
Всегда можно узнать, сколько цветов содержит изображение;
-
Очень удобно менять цвета изображения, для этого достаточно изменить в палитре значение одного цвета на значение другого.
К недостаткам относится то, что палитру неэффективно применять для полноцветного изображения.
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 вых-х байт.