Задача 3.1 (для самостійного розв’язання)
Значення ймовірностей pi , з якими дискретне джерело інформації генерує символи алфавіту, для різних варіантів наведені у таблиці. Побудувати нерівномірні ефективні коди за методиками Шеннона-Фано та Хаффмена для кодування символів джерела. Порівняти ефективність кодів.
№ варіанта |
p1 |
p2 |
p3 |
p4 |
p5 |
p6 |
p7 |
p8 |
p9 |
1 |
0,07 |
0,41 |
0,13 |
0,09 |
0,06 |
0,11 |
0,05 |
0,04 |
0,04 |
2 |
0,35 |
0,15 |
0,06 |
0,02 |
0,03 |
0,08 |
0,02 |
0,07 |
0,22 |
3 |
0,18 |
0,05 |
0,27 |
0,29 |
0,02 |
0,03 |
0,05 |
0,11 |
0 |
4 |
0,12 |
0,03 |
0,05 |
0,40 |
0,12 |
0,08 |
0,05 |
0,04 |
0,11 |
5 |
0,52 |
0,12 |
0,05 |
0,18 |
0,04 |
0,03 |
0,06 |
0 |
0 |
Алгоритм rle
В основі алгоритму RLE лежить ідея виявлення послідовностей даних, що повторюються, та заміни цих послідовностей більш простою структурою, в якій вказується код даних та коефіцієнт повторення. Наприклад, нехай задана така послідовність даних, що підлягає стисненню:
1 1 1 1 2 2 3 4 4 4
В алгоритмі RLE пропонується замінити її наступною структурою: 1 4 2 2 3 1 4 3, де перше число кожної пари чисел -це код даних, а друге - коефіцієнт повторення. Якщо для зберігання кожного елементу даних вхідної послідовності відводиться 1 байт, то вся послідовність займатиме 10 байт пам'яті, тоді як вихідна послідовність (стиснений варіант) займатиме 8 байт пам'яті.
Чим менше значення коефіцієнта стиснення, тим ефективніший метод стиснення. Зрозуміло, що алгоритм RLE буде давати кращий ефект стиснення при більшій довжині послідовності даних, що повторюється. У випадкові розглянутого вище прикладу, якщо вхідна послідовність матиме такий вигляд: 1 1 1 1 1 1 3 4 4 4, то коефіцієнт стиснення буде рівний 60%. У зв'язку з цим найбільша ефективність алгоритму RLE досягається при стисненні графічних даних (особливо для однотонових фонових зображень).
Задача 4.1 (для самостійного розв’язання)
Згідно з варіантами, поданими у таблиці, стиснути послідовність символів алгоритмом RLE.
№ варіанта |
Інформаційний масив А |
1 |
1101000111010001110101001101010111010110 |
2 |
1011100110111001101111001011110110111010 |
3 |
010110000101100110011011000100111001001000010010 |
4 |
010110001001100110011011010110101101001001010000 |
5 |
100110000001101101011010011111101111111111011011 |
