Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТІ_л15-16.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
458.24 Кб
Скачать

15.1.4. Четвертий варіант алгоритму rle

Цей варіант алгоритму використовується для стиснення двійкового зображення. Ідея цього алгоритму на основі кодування довжин повторень та одного із статистичних алгоритмів полягає у тому, що виявляються послідовності (ланцюжки) даних, які складаються з однакових елементів та кодуються за допомогою одного із статистичних алгоритмів лише довжини цих ланцюжків.

Оскільки ланцюжки складаються з одних нулів та одних одиниць, то у результуючій послідовності довжин цих ланцюжків вони (довжини) будуть строго перемежовуватися. Отже, відпадає необхідність вказувати код даних для кожного ланцюжка як у перших двох алгоритмів, а лише на початку кодового слова вказати, з якого символу 0 чи 1 починається закодована послідовність.

Отже, кодове слово складається з префіксного символу (1 біт) та послідовності довжин ланцюжків, які строго чергуються між собою.

Приклад 15.4. Нехай потрібно закодувати двійкове (двоколірне – наприклад, чорно-біле) зображення розміром елементів, яке наведено на рис.7.1 [Шульг.]. Чому взяли зображення розміром буде зрозуміло далі.

Рис.15.1.

Проскануємо це зображення по стрічках (двом кольорам на зображенні, наприклад, чорному та білому, будуть відповідати двійкові символи 0 та 1). У результаті отримаємо двійковий вектор даних

X= 01110000111100000001000000010000000100000001111000

11110111101111

довжиною 64 біт (швидкість коду – 1 біт/елемент зображення).

Виділимо у векторі послідовності (ланцюжки) з однаковими даними (це будуть ланцюжки з одних нулів та одних одиниць) та визначимо їх довжини. Результуюча послідовність довжин ланцюжків (додатних цілих чисел), яка відповідає вектору буде мати вигляд

= 1 3 4 4 7 1 7 1 7 1 7 4 3 4 1 4 1 4

Тепер цю послідовність можна закодувати одним із статистичних алгоритмів, наприклад, класичним алгоритмом Хафмена, який для даного прикладу має таблицю кодування (табл. 15.1.)

Таблиця 15.1

Довжина

ланцюжка

Код

4

1/3

0

1

1/3

1

1/3

10

2

2/3

7

2/9

110

3

2/3

3

1/9

111

3

1/3

Для того, щоб вказати, що закодована послідовність починається з 0, записують на початку кодового слова префіксний символ 0. У результаті отримуємо кодове слово

= 0101110011010110101101011001110100100

довжиною у 36 біт, тобто швидкість коду біт/елем. зображення. Відповідно ефективність (коефіцієнт) стиснення .

При стисканні зображень великого розміру, яке містить багато елементів, що повторюються, ефективність стиснення суттєво зростає.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]