Uploaded by Nadya Zhuravlyova

losslessDataCompression 060309

advertisement
Алгоритмы сжатия
данных без потерь
Антипин Иван
1
Введение
 Алгоритмы сжатия без потерь
 Алгоритмы сжатия с потерями


Отсеивание информации
Сжатие алгоритмом без потерь
2
Алгоритмы сжатия без
потерь
 «Статические» методы
 «Динамические» методы
 Алгоритмы словарного сжатия
 Преобразования данных
3
Алгоритмы сжатия без
потерь
 «Статические» методы


По заданным вероятностям символов
кодируют символ
Для кодирования нужно распределение
вероятностей
 «Динамические» методы

Оценивать вероятности во время
кодирования
4
Алгоритмы сжатия без
потерь
 Алгоритмы словарного сжатия


Не используют вероятности
Используют куски уже закодированных
(или незакодированных, но известных
декодеру ) данных
 Преобразования данных

Особые преобразования над данными
для лучшего сжатия каким либо
алгоритмом
5
«Статические» методы
 Алгоритм Хаффмана
 Код Шенона-Фано
 Арифметическое кодирование
6
Алгоритм Хаффмана
 Пусть известны вероятности рi появления
каждого символа входного алфавита ai .
Выберем два символа с наименьшей
вероятностью и выбросим их из алфавита,
добавив новый символ {ai ,aj} суммарной
вероятностью выброшенных символов. Для
каждой из выброшенных символов добавим
в начало код 1 и 0 соответственно. Если этот
символ вида {ai ,aj} то добавим
соответствующий код для обоих символов.
7
Алгоритм Хаффмана
 В результате алгоритма каждому
символу будет приписан некоторый
код
 Этим кодом и кодируется символ
сообщения, которое необходимо
закодировать
8
Код Шенона-Фано
 {1234}→(3421)
символ
вероятно
сть
1
0.1
 ((4)(21))
2
0.1
 4-01, (21)- 00
3
0.5
4
0.3
 (3421)→((3)(421))
 3-1, (421)-0
 (421)
 ((2)(1))
 2-001, 1-000
9
Арифметическое
кодирование
P(xi)
0
4
1
P(xi)
10
«Динамические» методы
 Адаптивные Арифметическое
кодирование и метод Хафмена
 Алгоритмы семейства PPM [Prediction
by Partial Matching]
11
Адаптивный метод
Хаффмана
корень
0
2
0
1
0
3
0
1
00
4
1
1
симв вероя код
ол
тность
1
0.1
001
2
0.1
000
3
0.5
1
4
0.3
01
12
Адаптивный метод
Хаффмана
 Каждому символу ставиться в
соответствии вес
 Вероятности каждого символа
вычисляется как отношение веса
символа к сумме всех весов
13
Адаптивный метод
Хаффмана
 При адаптивном методе Хафмена
первоначально строится некоторое
дерево Хафмена. При поступлении
очередного символа он кодируется
согласно текущему дереву, его вес
увеличивается и при необходимости
дерево перестраивается.
14
Адаптивное
Арифметическое
кодирование
 Частоте каждого из символов вначале
присваивается некоторое число ε
 Символ кодируется по данному
вероятностному спектру
 При поступление очередного символа
его частота увеличивается на 1
15
Контекстное моделирование
 сильная зависимость вероятности
появления символа от
непосредственно ему
предшествующих ( контекста [КМ] )
 контекстное моделирование - оценка
вероятности появления символа в
зависимости от непосредственно ему
предшествующих.
16
Контекстное моделирование
 Оценки вероятностей при контекстном
моделировании строятся на
основании счетчиков частот,
связанных с текущим контекстом
Счетчик «A»
строка
Счетчик «B»
…
Счетчик «Z»
17
Контекстное моделирование
 После каждого появления символа s в
рассматриваемом контексте КМ
производится



Кодирование символа
Увеличение значения счетчика символа
s в соответствующей контексту КМ.
Переход к другому контексту
18
Алгоритмы PPM
 Попытка оценки символа начинается
с KM(N). где N является параметром
алгоритма и называется порядком
РРМ-модели .
 В случае нулевой частоты символа в
КМ текущего порядка осуществляется
переход к КМ меньшего порядка за
счет использования механизма уходов
(escape strategy).
19
Алгоритмы PPM
Z
«A» - p1
0
windo
indo
«B» - p2
0
Кодер
…
«Z» - p26
0
«Esc» - p !=0
20
Алгоритмы PPM
 Оценка вероятности ухода


Априорные(РРМA, PPMB, РРМС, PPMD,
РРМX)
Адаптивные (PPMZ, PPMd, PPMonstr)
 Повышение точности оценок в
контекстных моделях высоких
порядков
 Обновление счетчиков символов
21
Алгоритмы семейств LZ77 и
LZ78
 Входную последовательность символов
можно рассматривать как
последовательность строк, содержащих
произвольное количество символов. Идея
методов данного семейства состоит в
замене строк символов на такие коды, что их
можно трактовать как индексы строк
некоторого словаря. При декодировании
осуществляется обратная замена индекса на
соответствующую ему фразу словаря.
22
LZ77
 Идея


Найти данные, которые необходимо
закодировать, в уже закодированных и
сослаться на них
Если не удаётся то поместить без
изменений
 Словарь – уже закодированные
данные, в которых осуществляется
поиск
23
LZ77
(смещение,длина)символ
24
LZ77
 LZSS

добавление к каждому указателю и
символу однобитового префикса
позволяющего различать эти объекты.
 LZB

Смещение задается переменным
количеством битов в зависимости от
реального размера словаря (в начале
сжатия он мал). Длина совпадения
записывается y-кодами Элиаса.
25
LZ77
 LZH

Аналогична LZB. но для сжатия
смещений и длин соответствия
используются коды Хаффмана
 LZFG

кодировании фразы не парой
(смещение,длина), а индексом
соответствующего фразе узла дерева
цифрового поиска
26
LZ78
 Алгоритмы этой группы не используют
скользящего окна и в словарь
помещают не все встречаемые при
кодировании строки, а лишь
«перспективные» с точки зрения
вероятности последующего
использования.
27
LZ78
 На каждом шаге в словарь
вставляется новая фраза, которая
представляет собой конкатенацию
одной из фраз словаря, имеющей
самое длинное совпадение со строкой
буфера, и символа s.
 В отличие от семейства LZ77, в
словаре не может быть одинаковых
фраз.
28
LZ78
 LZMV

новая фраза создается с помощью
конкатенации двух последних использованных
фраз, а не конкатенации фразы и символа
 LZW


Предварительное занесение в словарь всех
символов алфавита входной
последовательности
результат работы LZW состоит только из
последовательности индексов фраз словаря.
29
LZW
 {abcdef}
 abedabec
 1,2,5,4,7,5,3
12 5 4 75 3
1
2
3
4
5
6
7
8
9
10
11
12
a
b
c
d
e
f
ab
be
ed
da
abe
ec
30
Преобразования данных
 Метод стопки книг
 Преобразование Барроуза-Уилера
[BWT]
31
Метод стопки книг
 {a,b,c,d,e,f}
 abbfa
a
f
f
b
e
6 6 1 3 3
d
c
b
a
32
Преобразование БарроузаУилера
 Abbfa
abbfa
aabbf
f
bbfaa
abbfa
a
bfaab
bbfaa
a
faabb
bfaab
b
aabbf
faabb
b
2
33
Преобразование БарроузаУилера
2
f
a
aa
aab
aabb
aabbf
a
a
ab
abb
abbf
abbfa
a
b
bb
bbf
bbfa
faabb
b
b
bf
bfa
bfaa
bbfaa
b
f
fa
faa
faab
bfaab
34
Преобразования данных
 Преобразование Барроуза-Уилера
 Метод стопки книг
 Простой метод сжатия
35
Алгоритмы сжатия без
потерь для мультимедиа
 Изображения

Двумерный массив
 Аудио информация

Массив чисел
 Видео информация

Массив изображений
36
Алгоритмы сжатия без
потерь для мультимедиа
То что есть минус то что
предполагали
t
Данные могут
увеличиться!
37
Алгоритмы сжатия без
потерь для мультимедиа
 Линейно-предсказывающее
кодирование


предположение, что значение текущего
является линейной комбинацией
значений h предыдущих элементов
На выходе по-прежнему разность того,
что предсказали и того, что есть на
самом деле
38
Алгоритмы сжатия без
потерь для мультимедиа
 При сжатии видео данных


как правило, соседние кадры
изменяются незначительно.
Можно сжимать не текущее
изображение, а разность между
текущим и предыдущим (или линейной
комбинацией предыдущих)
39
Алгоритмы сжатия без
потерь для мультимедиа
 Субполосное кодирование

для каждой пары элементов сохранять
полусумму и разность.
40
Алгоритмы сжатия без
потерь для мультимедиа
 Для изображений wavelet
b1[i][j]=(a[2i,2j]+a[2i+1,2j]+a[2i,2j+1]+a[2i+1,2j+1])/4
b2[i][j]=(a[2i,2j]+a[2i+1,2j]-a[2i,2j+1]-a[2i+1,2j+1])/4
b3[i][j]=(a[2i,2j]-a[2i+1,2j]+a[2i,2j+1]-a[2i+1,2j+1])/4
b4[i][j]=(a[2i,2j]-a[2i+1,2j]-a[2i,2j+1]+a[2i+1,2j+1])/4
b1 – уменьшенная копия
b2 – границы по горизонтали
b3 – границы по вертикали
b4 – границы по диагонали
41
Алгоритмы сжатия без
потерь для мультимедиа
42
Алгоритмы сжатия без
потерь для мультимедиа
 Фрактальный алгоритм сжатия
изображений

Система линз
 линзы
могут проецировать часть
изображения произвольной формы в
любое другое место нового изображения
 области, в которые проецируются
изображения, не пересекаются
 линза может зеркально отражать и
поворачивать свой фрагмент изображения
 линза должна уменьшать фрагмент
43
Алгоритмы сжатия без
потерь для мультимедиа
 Системе линз соответствует сжимающее
аффинное преобразование
 Теорема

Пусть f: X → X - сжимающее преобразование в
полном метрическом пространстве (X, d).
Тогда существует в точности одна
неподвижная точка y такая, что для любой
точки x последовательность {f(n)x} сходится к
y
44
Алгоритмы сжатия без
потерь для мультимедиа
 Идея фрактального сжатия

Найти такое сжимающее
преобразование, чтобы неподвижной
точкой являлось входное изображения
 Нереально долго!!!
 Поэтому идёт поиск самоподобных
частей изображения с учётом
поворота, отражения и уменьшения по
определённым блокам
45
Заключение
 WinRar использует LZ алгоритмы и
PPM алгоритмы компрессии
 7Zip – LZ и PPM
 Zip – LZ алгоритмы
 Cab – LZ алгоримы
 Bzip2 – BWT
 JPEG – wavelet
46
Заключение
Спасибо за внимание
47
Download