Стиснення без втрат
Стиснення без втрат - це не втрачаються дані. Все, що вводиться, можна отримати ідеально. Це добре працює для текстових чи двійкових файлів, де буде помічена найменша помилка.
Стиснення файлів працює, беручи файл і скануючи шаблони, і переводячи ці шаблони в щось інше, що займає менше місця.
Наприклад, "AAAAAAAA" можна перетворити на "8A".
Зрозуміло, що це не так, як це працює саме тому, що тоді у вас виникає проблема, що якби "8A" був у відкритому тексті. Ви віджали файл, і це було б неправильно. Хорошим місцем для початку є або Вікіпедія, або Алгоритм стиснення даних LZW .
Для цього скопійованого нижче є декілька просто psuedo-кодів:
STRING = get input character
WHILE there are still input characters DO
CHARACTER = get input character
IF STRING+CHARACTER is in the string table then
STRING = STRING+character
ELSE
output the code for STRING
add STRING+CHARACTER to the string table
STRING = CHARACTER
END of IF
END of WHILE
output the code for STRING
Для всього стиснення використовується словник пошуку, який використовується для стиснення та розпакування файлу. Чим більший словник, тим більше ви можете його стиснути, хоча ви все-таки стикаєтесь із Законом зменшення повернення .
Також варто зазначити, що стискання не завжди дає менший файл. Бувають ситуації (з невеликими файлами або при стисненні випадкових даних ), що ви не отримаєте менший файл після стиснення. Були деякі цікаві проблеми, пов'язані зі здатністю стискати випадкові дані.
«Стислий» стиснення
Зазначене в основному стосується стиснення без втрат . Інші типи стиснення, що використовуються у відео / аудіо програмах, таких як MP3, JPG та h.264, є прикладами стиснення втрат .
Стиснення втрат працює за рахунок викидання даних, які найменш вірогідні. В аудіо це звуки близько 30 000 Грц і нижче 100 Гц, а також інші речі. У малюнку (статичному) він видаляє різні речі та об'єднує пікселі разом із викиданням даних.
Стиснення втрат - це форма кодування перетворення . Він усереднює дані, щоб зменшити загальний розмір. Наприклад, блок з 10 пікселів на зображенні, всі трохи різні кольори можуть бути об'єднані разом в один колір і таким чином стиснуті.
При стисненні відео часто вказівки розміщуватимуться лише для перемальовування пікселів, які змінилися з останнього кадру, або ключових кадрів .