Методи кодування без втрат зменшують розмір цифрових файлів.
Кодування без втрат, або стиснення без втрат, відноситься до процесу більш ефективного кодування даних, щоб вони займали менше бітів або байтів, але таким чином, щоб вихідні дані можна було відновити, біт за біт, коли дані декомпресований. Перевага методів кодування без втрат полягає в тому, що вони створюють точну копію вихідних даних, але вони також мають деякі недоліки в порівнянні з методами кодування з втратами.
Коефіцієнт стиснення
Методи кодування без втрат не можуть досягти високого рівня стиснення. Кілька методів кодування без втрат можуть досягти коефіцієнта стиснення вище 8:1, що несприятливо порівняно з так званими методами кодування з втратами. Методи кодування з втратами, які досягають стиснення шляхом відкидання деяких вихідних даних, можуть досягти коефіцієнта стиснення 10:1 для аудіо і 300:1 для відео з незначною або зовсім не відчутною втратою якість. За даними New Biggin Photography Group, 24-бітове кольорове RGB-зображення розміром 1943 на 1702 пікселі з оригінальним розміром 9,9 мегабайт можна зменшити лише до 6,5 мегабайт за допомогою формату PNG без втрат, але можна зменшити лише до 1 мегабайта за допомогою JPEG із втратами формат.
Відео дня
Час передачі
Будь-яка програма, яка передбачає зберігання або розповсюдження цифрових зображень, або і те, і інше, передбачає, що ці операції можна виконати за розумний проміжок часу. Час, необхідний для передачі цифрового зображення, залежить від розміру стиснутого зображення та від коефіцієнта стиснення, який може бути досягнутий за допомогою Методи кодування без втрат набагато нижчі, ніж методи кодування з втратами, методи кодування без втрат непридатні для цих додатків.
Кодування Хаффмана
Багато методів кодування без втрат, включаючи PNG, використовують форму кодування, відому як кодування Хаффмана. У кодуванні Хаффмана чим частіше символ зустрічається в вихідних даних, тим коротший двійковий рядок, який використовується для представлення його в стислих даних. Однак кодування Хаффмана вимагає двох проходів, один для побудови статистичної моделі даних, а другий для їх кодування, тому це відносно повільний процес. Це, у свою чергу, означає, що методи кодування без втрат, які використовують кодування Хаффмана, є значно повільнішими, ніж інші методи під час читання чи запису файлів.
Декодування
Іншим недоліком кодування Хаффмана є те, що двійкові рядки або коди в закодованих даних мають різну довжину. Це ускладнює програмному забезпеченню декодування визначити, коли воно досягло останнього біту даних і чи закодовані дані пошкоджений -- іншими словами, він містить помилкові біти або біти відсутні -- він буде декодований неправильно, а вихід буде дурниці.