Як стиснення файлів?

Стиснення файлів є основною частиною роботи Інтернету. Це дозволяє нам передавати файли, які в іншому випадку зажадали б занадто великої пропускної здатності і часу. Кожного разу, коли ви отримуєте доступ до файлів ZIP або переглядаєте зображення у форматі JPEG, ви отримуєте вигоду від стиснення файлів.

Таким чином, в якийсь момент ви, ймовірно, поставили запитання: як працює стиснення файлів? Ось основний погляд на те, як працює стиснення.

Що означає стиснення?

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

Важливо відзначити, що стиснення не нескінченно. Хоча стиснення файлу в ZIP зменшує його розмір, ви не можете продовжувати стискати файл, щоб зменшити його розмір до нуля.

Зазвичай стиснення файлів поділяється на два основні типи: з втратами і без втрат. Давайте подивимося, як вони обидва працюють по черзі.

Як працює стиснення файлів: стиснення з втратами

Стиснення з втратами зменшує розмір файлу, видаляючи непотрібні біти інформації. Це найчастіше зустрічається у форматах зображень, відео та аудіо, де немає необхідності в ідеальному уявленні вихідного медіа. Багато поширених форматів для цих типів носіїв використовують стиснення з втратами; MP3 і JPEG - два популярних приклади.

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

Так само файли JPEG видаляють непотрібні частини зображень. Наприклад, у зображенні, що містить блакитне небо, стиснення JPEG може змінити всі пікселі неба на один або два відтінки синього замість використання десятків різних відтінків.

Однак чим сильніше ви стискаєте файл, тим помітніше стає зниження якості. Ви, ймовірно, випробували це з брудними файлами MP3, завантаженими на YouTube. Наприклад, порівняйте цей високоякісний музичний трек:

З цією сильно стислою версією тієї ж пісні:

Стиснення з втратами підходить, коли файл містить більше інформації, ніж потрібно для ваших цілей. Наприклад, припустимо, у вас є величезний файл зображення RAW. Хоча ви, ймовірно, хочете зберегти цю якість при друку зображення на великому банері, безглуздо завантажувати файл RAW в Facebook.

Картинка містить так багато даних, що не помітно при перегляді в соціальних мережах. Стиснення зображення у високоякісний JPEG викидає деяку інформацію, але зображення виглядає майже неозброєним оком. Дивіться наше порівняння популярних графічних форматів для більш глибокого погляду на це.

Стиснення з втратами у загальному використанні

Як ми вже згадували, стиснення з втратами відмінно підходить для більшості видів носіїв. У зв'язку з цим життєво важливо, щоб такі компанії, як Spotify і Netflix, постійно передавали величезні обсяги інформації. Максимальне зменшення розміру файлу при збереженні якості робить їх роботу більш ефективною. Чи можете ви уявити, чи було кожне відео YouTube зберігатися і передаватися в оригінальному незжатому форматі?

Але стиснення з втратами не працює так добре для файлів, де вся інформація має вирішальне значення. Наприклад, використання стиснення з втратами в текстовому файлі або електронній таблиці призведе до викривленого виводу. Ви дійсно не можете нічого викинути без серйозної шкоди для кінцевого продукту.

При збереженні у форматі з втратами, ви часто можете встановити рівень якості. Наприклад, багато графічних редакторів мають повзунок для вибору якості JPEG від 0 до 100.

Економія на рівні 90 або 80 відсотків призводить до невеликого зменшення розміру файлу, з невеликою різницею в очах. Але збереження в поганій якості або повторне збереження одного і того ж файлу у форматі з втратами погіршить його.

Нижче ви можете побачити приклад цього (натисніть, щоб побачити збільшені зображення). Ліворуч оригінальне зображення, завантажене з Pixabay у форматі JPEG. Середнє зображення є результатом збереження його у форматі JPEG з 50-відсотковою якістю. І саме праве зображення показує вихідне зображення, збережене замість цього у форматі JPEG з 10-відсотковою якістю.

На перший погляд середнє зображення виглядає не так вже й погано. Ви можете помітити артефакти по краях коробок тільки при збільшенні. Звичайно, саме праве зображення відразу виглядає жахливо.

Перед кадруванням для завантаження розміри файлів становили 874 КБ, 310 КБ і 100 КБ відповідно.

Як працює стиснення файлів: стиснення без втрат

Стиснення без втрат - це спосіб зменшити розмір файла, щоб ви могли ідеально відновити вихідний файл. На відміну від стиснення з втратами, він не викидає жодної інформації. Замість цього стиснення без втрат по суті працює за рахунок усунення надлишковості.

Розгляньмо простий приклад, щоб показати, що це означає. Нижче стопка з 10 цеглин: два синіх, п'ять жовтих і три червоних. Цей стек - простий спосіб проілюструвати ці блоки, але є й інший спосіб зробити це.

Замість того, щоб показувати всі 10 блоків, ми можемо видалити всі кольори, крім одного. Потім, якщо ми використовуємо цифри, щоб показати, скільки цеглин кожного кольору було, ми представили точно такий же біт інформації, використовуючи набагато менше цеглин. Замість 10 цеглин нам тепер потрібно тільки три.

Це проста ілюстрація того, як можливе стиснення без втрат. Він зберігає ту ж інформацію більш ефективним способом, видаляючи надмірність. Розгляньмо реальний файл, де рядок нижче:

mmmmmuuuuuuuoooooooooooo

Можна «стиснути» до наступної, набагато коротшої форми:

m5u7o12

Це дозволяє нам використовувати сім символів замість 24 для представлення одних і тих же даних, що є значною економією.

Стиснення без втрат у повсякденному використанні

Як ми згадували вище, стиснення без втрат важливо в тих випадках, коли ви не можете видалити вихідний файл. Якщо вам цікаво, як працюють ZIP-файли, це відповідь.

Коли ви створюєте ZIP-файл з виконуваної програми Windows, він використовує стиснення без втрат. Стиснення файла ZIP є більш ефективним способом зберігання програми, але коли ви розпаковуєте (розпаковуєте) її, вся оригінальна інформація присутня. Якщо ви використовували стиснення з втратами для стиснення виконуваних файлів, розпакована версія буде пошкоджена і непридатна для використання.

Поширені формати без втрат включають PNG для зображень, FLAC для аудіо та ZIP. Формати відео без втрат рідкісні, тому що вони займають величезну кількість місця.

Коли використовувати стиснення з втратами проти стиснення без втрат

Тепер, коли ми розглянули обидві форми стиснення файлів, ви можете задатися питанням, коли слід використовувати одну або іншу. Як з'ясовується, «кращої» форми стиснення не існує - все залежить від того, для чого ви використовуєте файли.

Загалом, ви повинні використовувати стиснення без втрат, якщо ви хочете отримати ідеальну копію вихідного матеріалу, і стиснення з втратами, якщо недостатньо хороша копія. Давайте подивимося на інший приклад, щоб побачити, як вони можуть працювати в гармонії.

Скажімо, ви тільки що відкопали свою стару колекцію компакт-дисків і хочете оцифрувати її. щоб у вас була вся музика на вашому комп'ютері. Коли ви копіюєте свої компакт-диски, має сенс використовувати такий формат, як FLAC, який без втрат. Це дозволяє вам мати майстер-копію на вашому комп'ютері, яка так само хороша, як і оригінальний компакт-диск.

Пізніше, можливо, ви захочете поставити музику на телефон або старий MP3-плеєр, щоб ви могли слухати на ходу. Можливо, ви не дбаєте про те, щоб ваша музика була в ідеальній якості, тому ви можете конвертувати файли FLAC в MP3 Це дає вам аудіофайл, який як і раніше ідеально підходить для прослуховування, але не займає багато місця на вашому мобільному пристрої. Якість MP3, перетвореного з FLAC, буде такою ж доброю, як якщо б ви створили стиснутий MP3 прямо з оригінального КД.

Тип даних, представлених у файлі, також може визначати, який тип стиснення є найкращим. Оскільки в PNG-зображеннях використовується стиснення без втрат, вони пропонують невеликі розміри файлів для зображень з великим рівномірним простором, наприклад, комп'ютерні знімки екрану. Тим не менш, ви помітите, що PNG займають набагато більше місця, коли вони являють собою суміш кольорів на реальних фотографіях.

Проблеми під час стискання файлів

Як ми вже бачили, перетворення форматів з втратами у формат втрат - це добре, так само як і перетворення одного формату без втрат в інший. Однак ви ніколи не повинні конвертувати формат з втратами в без втрат і повинні остерігатися перетворення одного формату з втратами в інший.

Перетворення форматів з втратами на без втрат просто марна трата простору. Пам'ятайте, що формати з втратами викидають дані; неможливо відновити ці дані.

Скажімо, у вас є 3MB MP3-файл. Перетворення цього у FLAC може призвести до 30-мегабайтного файлу, але ці 30-мегабайтні містять точні звуки, які зробив набагато менший MP3. Перетворення назад у формат без втрат не «відновлює» інформацію, яку викинуло стиснення MP3.

Нарешті, як згадувалося раніше, перетворення одного формату з втратами в інший (або багаторазове збереження в тому ж форматі) призведе до подальшого зниження якості. Кожного разу, коли ви застосовуєте стиснення з втратами, ви втрачаєте більше деталей. Це стає все більш і більш помітним, поки файл по суті не зруйнований.

Як працює компресія? Тепер ти знаєш

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

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

Пробував стиснення без втрат і потрібно щось відправити другу? Спробуйте скористатися цими швидкими способами передачі великих файлів онлайн. І якщо вам потрібна допомога в стисненні великих аудіофайлів, ось кілька простих і ефективних способів.