
- •Задание
- •Практическая часть Сжатие «вручную» 2-ух фрагментов данных методом группового кодирования
- •Исходная строка символов:
- •Сжатие «вручную» 2-ух фрагментов данных методом lzw
- •Сжатие «вручную» 2-х фрагментов данных c применением кодов Хаффмана
- •Сжатие «вручную» фрагмента данных с применением алгоритмов rle, lzw и кодов Хаффмана
- •Реализация алгоритма jpeg в среде Mathcad и применение
МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
Кафедра 308
Лабораторная работа №2
на тему: «Методы сжатия изображений»
по дисциплине
«Обработка аудио- и видеоинформации»
Вариант 5
Студент:
Группы № 03-518
Шпилевой С.Г.
Преподаватель:
Доцент, к.т.н.
Максимов А.Н.
Москва 2013
Задание
Провести «вручную» сжатие 2-ух фрагментов данных методом группового кодирования. Сравнить полученные коэффициенты сжатия.
Провести «вручную» сжатие 2-ух фрагментов данных методом LZW. Сравнить полученные коэффициенты сжатия.
Провести «вручную» сжатие 2-ух фрагментов данных с применением кодов Хаффмана. Сравнить полученные коэффициенты сжатия.
Провести «вручную» сжатие 2-ух фрагментов данных с применением алгоритмов RLE, LZW и кодов Хаффмана. Описать полученные результаты и сделать соответствующие выводы.
Реализоваь алгоритм JPEG в среде Mathcad и применить его для сжатия двух фрагментов изображения согласно варианту задания при q=2 для 1-ого фрагмента и при q=2 и 7 для 2-ого фрагмента. Сравнить полученные коэффициенты сжатия и объяснить результаты. Сделать вывод о влиянии пиксельных значений исходных фрагментов изображения на эффективность сжатия.
Исходные данные
|
Номер задания |
||||
1 (RLE) |
2 (LZW) |
3 (Haffman) |
4 (все три метода) |
5 JPEG |
|
Вариант 5 |
1,2 |
5,8 |
11,10 |
16 |
21,26 |
Практическая часть Сжатие «вручную» 2-ух фрагментов данных методом группового кодирования
Алгоритм группового кодирования известный в англоязычной литературе как RLE – Run Length Encoding является самым простым и, как следствие, самым быстрым и нетребовательным к ресурсам ЭВМ. Его идея предельно проста: если во входном потоке данных встречаются повторяющиеся группы символов (байтов), то в выходной (сжатый) поток записываются лишь число символов в группе и сам повторяющийся символ.
Исходная строка символов:
bbbbbbbccccccbbcaaaaaaabbbccccaaaaaaabbbbbaaaaadddddddddaaaadd
Исходная строка символов после кодирования будет иметь вид:
7b6c2b1c7a3b4c7a5b5a9d4a2d
Так как исходная строка занимала 62 байта, а кодированная – 26 байт, то в результате достигается коэффициент сжатия Kсж = 62/26 = 2,385 > 1, следовательно, сжатие считается эффективным.
Исходная строка символов:
cbcbbbbcdccddaddabbddccaaaccddddccbbbaaadddddbbbbcacccddaabb
Исходная строка символов после кодирования будет иметь вид:
03cbc4b02cd2c2d1a2d1a2b2d2c3a2c4d2c3b3a5d4b02ca3c2d2a2b
Так как исходная строка занимала 60 байт, а кодированная – 55 байт, то в результате достигается коэффициент сжатия Kсж = 60/55 = 1,09 > 1, следовательно, сжатие считается эффективным.
Сжатие «вручную» 2-ух фрагментов данных методом lzw
LZW относится к группе словарных методов сжатия, которые разбивают входной поток данных на слова. Словом называется последовательность символов (байт). Совокупность всех слов называется словарем, в котором каждое слово содержится под своим номером (индексом, ссылкой). В выходной поток записываются только ссылки. Эффект сжатия возникает за счет того, что длина ссылок, как правило, меньше длины слов. Словарь формируется итеративно, по ходу работы алгоритма сжатия/распаковки.
b | a | a | c | c | b | cc | bc | a | ba | cc | ab | ba | ab | aa | ab |cc
1 0 0 2 2 1 6 8 0 3 6 11 3 11 4 11 6
Номер слова |
Слово |
Номер слова |
Слово |
0 |
a |
10 |
bca |
1 |
b |
11 |
ab |
2 |
c |
12 |
bac |
3 |
ba |
13 |
cca |
4 |
aa |
14 |
abb |
5 |
ac |
15 |
baa |
6 |
cc |
16 |
aba |
7 |
cb |
17 |
aaa |
8 |
bc |
18 |
abc |
9 |
ccb |
|
|
Сжатый поток состоит из ссылок:
1 0 0 2 2 1 6 8 0 3 6 11 3 11 4 11 6
Входной поток был байтовым, на каждую ссылку отводится тоже один байт, получаем коэффициент сжатия Ксж = 27/17 = 1.588 > 1. Сжатие считается эффективным.
8) aaacbcbbbbcccbbbcacc
0 3 2 1 5 1 8 2 10 8 6 0 10
Номер слова |
Слово |
Номер слова |
Слово |
0 |
a |
8 |
bb |
1 |
b |
9 |
bbc |
2 |
c |
10 |
cc |
3 |
aa |
11 |
ccb |
4 |
aac |
12 |
bbb |
5 |
cb |
13 |
bca |
6 |
bc |
14 |
ac |
7 |
cbb |
|
|
Сжатый выходной поток состоит из ссылок: 0 3 2 1 5 1 8 2 10 8 6 0 10.
Входной поток был байтовым, на каждую ссылку отводится тоже один байт, получаем коэффициент сжатия Ксж = 20/13 = 1.538 > 1, следовательно, сжатие считается эффективным.