Стиснення даних
Попри постійне зростання ємності носіїв інформації, потреба у зменшенні розмірів файлів залишається актуальною. Особливо це важливо під час:
- передавання даних комп’ютерними мережами;
- використання мобільного зв’язку;
- зберігання інформації на носіях обмеженого обсягу;
- публікації даних в Інтернеті.
Для цього застосовують алгоритми стиснення даних.
Стиснення даних — це процес перекодування інформації з метою зменшення розміру файлів без або з частковою втратою інформації.
Типи файлів, для яких застосовується стиснення
Стиснення широко використовується під час створення та зберігання файлів різних типів:
| Тип даних | Приклади форматів |
|---|---|
| Графічні | TIFF, JPEG, PNG |
| Звукові | MPEG, WMA |
| Відео | MPEG4, WMV, MOV |
Види стиснення даних
Стиснення без втрати даних
Алгоритми цього типу забезпечують повне відновлення початкових даних і застосовуються там, де точність інформації не допускає змін.
- текстові документи;
- програмний код;
- бази даних;
- табличні дані.
Стиснення з частковою втратою даних
Алгоритми з втратою даних зменшують обсяг файлу за рахунок відкидання малопомітної для людини інформації та базуються на особливостях людського зору й слуху.
Вони застосовуються для:
- графічних файлів;
- аудіо;
- відео.
Важливе обмеження: алгоритми з втратою даних не можна використовувати для текстових і числових файлів, оскільки навіть незначна втрата символів призводить до спотворення змісту.
Методи стиснення даних
Алгоритми Хаффмана та Шеннона–Фано
Ці алгоритми базуються на частоті появи символів у повідомленні:
- символи, які трапляються частіше, кодуються коротшими кодами;
- рідкісні символи отримують довші коди.
Приклад принципу роботи
У реченні зі 112 символів стандартне кодування (1 байт на символ) дає 112 байтів. Після аналізу частот найчастіші символи отримують 1–2 біти, а рідкісні — до 4 бітів.
Результат: загальна довжина коду зменшується до 239 біт (приблизно 30 байтів), тобто майже у 4 рази.
Обмеження методу
- файл повинен містити таблицю кодування та службові дані;
- для дуже малих файлів розмір може не зменшитися, а навіть збільшитися.
Алгоритм RLE
RLE — це метод кодування повторів, який замінює послідовності однакових даних коротким описом.
Принцип
Замість довгої послідовності однакових символів записується значення та кількість повторів.
Приклад застосування
- логотипи;
- чорно-білі зображення;
- графіка з великими одноколірними ділянками.
У прикладі з логотипом Apple замість 48 бітів використовується коротший опис, що забезпечує суттєве скорочення даних.
Обмеження
- малоефективний для даних без повторів;
- не підходить для фотографій з великою кількістю дрібних деталей.
Порівняння методів стиснення
| Метод | Тип стиснення | Найкраще підходить для |
|---|---|---|
| Хаффман | Без втрати | Тексти, числові дані |
| Шеннон–Фано | Без втрати | Тексти |
| RLE | Без втрати | Прості зображення |
| JPEG | З втратою | Фотографії |
| MPEG | З втратою | Відео |
Висновки
- Стиснення даних необхідне для ефективного зберігання та передавання інформації.
- Вибір алгоритму залежить від типу даних, допустимості втрат і вимог до якості.
- Алгоритми без втрат гарантують точність, але мають менший коефіцієнт стиснення.
- Алгоритми з втратами забезпечують значне зменшення обсягу, але не придатні для критично важливих даних.