Стиснення без втрат (англ. Lossless compression) — метод стиснення даних, при використанні якого закодована інформація може бути повністю відновлена зі стиснутих даних. Навпаки, стиснення з втратами дозволяє лише відновлення даних, які є тільки наближенням до початкових даних. Для кожного з типів цифрової інформації, як правило, існують свої оптимальні алгоритми стиснення без втрат.
Стиснення даних без втрат використовується в багатьох програмах. Наприклад, воно використовується в усіх файлових архіваторах. Воно також використовується як компонент в стисненні з втратами.
Стиснення без втрат використовується, коли важливо, щоб відновленні дані були ідентичні оригіналу. Типовий приклад — виконуваний файл або джерельний код, текстовий файл. Деякі графічні файлові формати, наприклад, PNG та GIF використовують тільки стиснення без втрат, тоді як формати TIFF та MNG можуть використовувати стиснення як з втратами, так й без втрат. Формати (стиснення звуку без втрат) використовується для архівування або виробничих цілей, в той час, як менші формати стиснення аудіо з втратами використовуються в аудіопрогравачах та в ситуаціях коли простір для зберігання інформації обмежений або нема потреби в точному відтворенні інформації.
Стиснення та комбінаторика
Легко довести наступну теорему.
|
Доведення. Не обмежуючи спільність, можна припустити, що зменшився файл A довжини N. Позначимо алфавіт як . Розглянемо множину . У цій множині початкових файлів, в той час стиснених не більше ніж . Тому, відповідно до принципу Діріхле виникає протиріччя. ■
Втім, дана теорема анітрохи не кидає тінь на стиснення без втрат. Справа в тім, що будь-який алгоритм стиснення можна модифікувати так, щоб він збільшував розмір не більше ніж на 1 біт: Якщо алгоритм зменшив файл, пишемо «1», потім стиснені дані, якщо збільшив — пишемо «0», потім початкові дані.
Таким чином фрагменти, які не можливо стиснути, не спричинять неконтрольованого збільшення архіву. «Реальних» файлів довжини N набагато менше, ніж (кажуть, що дані мають низку інформаційну ентропію) — наприклад, малоймовірно, щоб «їїї» зустрілося в розумному тексті, а в оцифрованому звуці амплітуда не може в момент зрости з 0 до 100 %. До того ж шляхом спеціалізації алгоритмів на деякі типи даних (текст, зображення, звук, відео та ін.) вдається досягти високого рівня стиснення: таким чином застосовані в архіваторах універсальні алгоритми стискують звук приблизно у 1,5 рази, у той час як FLAC — у 2,5 рази. Більшість спеціалізованих алгоритмів малопридатні для файлів іншої природи: наприклад, звук погано стискається текстовими алгоритмами.
Метод стиснення без втрат
У загальних рисах значення стиснення без втрат полягає в пошуку закономірності в початкових даних і з її урахуванням генерації іншої послідовності, яка повністю описує початкову. Наприклад, для кодування бінарних послідовностей, в яких багато нулів та мало одиниць, ми можемо використати таку заміну:
00 → 0 01 → 10 10 → 110 11 → 111
В такому випадку шістнадцять бітів
00 01 00 00 11 10 00 00
будуть перетворені у 13 бітів
0 10 0 0 111 110 0 0
Така заміна є видом префіксного коду, тобто має таку особливість: якщо ми запишемо стиснений рядок без пропусків, ми все одно зможемо розставити в ній пропуски — а тому, і відновити початкову послідовність. Найбільш відомим префіксним кодом є код Хаффмана.
Більшість алгоритмів стиснення без втрат працюють у дві стадії: на першій генерується статистична модель для вхідних даних, друга представляє вхідні дані в бітовому вигляді, використовуючи модель для отримання «ймовірнісних» даних (тобто таких, що зустрічаються часто).
Статистичні моделі алгоритмів для тексту (чи текстових бінарних даних, таких як виконувальні файли) містять:
Алгоритми кодування через генерування бітових послідовностей:
Обмеження
Алгоритми стиснення без втрат не можуть гарантувати стиснення для усіх видів вхідних даних. Іншими словами, для будь-якого алгоритму стиснення без втрат, існує такий набір вхідних даних, які не зменшуються після обробки алгоритмом, а навпаки — збільшуються. Це було доведено раніше[⇨].
Будь-який алгоритм, що робить деякі файли меншими, повинен робити деякі файли більшими, але не обов'язково, що вони стануть дуже великими. Практично використовуються алгоритми, що забезпечують собі механізм «виходу», що зупиняє кодування файлів, які можуть стати більшими після дії стиснення. Теоретично, один лиш додатковий біт потрібен, щоб сказати декодеру, що кодування вимкнене для усіх вхідних даних; проте, більшість кодувальних алгоритмів використовують більше ніж один повний байт для цієї цілі. Наприклад, файли стисненні алгоритмом DEFLATE ніколи не збільшуються більше ніж на 5 байтів на 65 535 байтів вхідних даних.
Фактично, якщо ми розглядаємо усі рівноймовірні (тобто такі, чиє існування можливе з однаковою ймовірністю) файли довжини N, тоді для будь-якого стиснення без втрат, що зменшує розмір якогось файлу, очікуваний розмір стисненого файлу (в середньому серед усіх можливих файлів довжини N) повинен обов'язково бути більше ніж N.[] Таким чином, якщо ми нічого не знаємо про властивості даних, що збираємось стискати, нам не варто стискати їх взагалі. Алгоритми стиснення без втрат корисні тільки якщо ми швидше за все стискаємо певні види даних ніж інші; тоді алгоритм повинен бути розроблений для ефективного їх стискання.
Отже, головною думкою є не те, що можливо зробити гірше, а те, що не завжди можна отримати непоганий результат. Тоді під вибором алгоритму звичайно розуміється непрямий вибір підмножини з усіх файлів, що стануть корисно меншими. Це теоретична причина для того, що ми маємо мати різні алгоритми для різних видів даних: не існує такого алгоритму, що був би хорошим для будь-якого файлу.
«Трюк», що дозволяє алгоритмам стиснення без втрат (при використанні на даних для яких вони були спроектовані) послідовно стискати файли до меншого розміру, є те, що файли, для яких алгоритми спроектовані діяти, мають деяку форму легко змодельованої надмірності, яку алгоритм повинен видаляти, таким чином зменшуючи їх розмір внаслідок цієї надмірності. Алгоритми в цілому цілком конкретно налаштовані на конкретний вид файлу: наприклад, програми для стиснення аудіо не працюють на текстах і навпаки.
Зокрема, файли, що складаються з випадкових даних, не можуть бути успішно стиснені ні одним із розумних алгоритмів: дійсно, результат такої дії використовується для визначення концепції випадковості в теорії алгоритмічної складності.
Доведено, що неможливо створити алгоритм, який міг би стискати без втрат будь-які дані. Втім, впродовж років компанії заявляють про досягнення «досконалого стиснення», при якому довільне число N випадкових біт можуть завжди бути стиснені до N − 1 біт. Ці заяви можуть бути надійно відкинені навіть без поглиблення у деталі реалізації схеми їх роботи. Ці алгоритми не можуть існувати через суперечність з основними законами математики, бо якщо такий алгоритм існує, він міг би використовуватись циклічно для стиснення даних до нульової довжини. З цієї причини, нібито досконалі алгоритми часто глузливо називають «магічними».
З іншого боку, було доведено[], що не існує жодного алгоритму визначення можливості стиснення файлу в сенсі колмогорівської складності. Хоча це можливо для будь-яких конкретних даних, навіть якщо вони здаються випадковими. Вони можуть бути істотно стиснені, навіть включаючи розмір декомпресора. Як приклад можна навести цифри числа , що виглядають випадковими, але можуть бути створені дуже маленькою програмою (для пі це пояснюється тим, що його можна уявляти у вигляді нескінченного ряду, що на комп'ютері обчислюється ітеративно). Проте, хоч не може бути визначено, чи конкретний файл нестисливий, проста (теорема про нестисливі рядки) показує, що більше ніж 99 % файлів будь-якої даної довжини не можуть бути стиснені більше ніж на один байт (включаючи розмір декомпресора)
Математичне тло
Абстрактно кажучи, алгоритми стиснення можуть бути розглянуті як функції що діють на послідовності (зазвичай байтів). Стиснення успішне, якщо результативна послідовність менша ніж оригінальна (разом з інструкціями для мапи декомпресії). Для того, щоб алгоритм стиснення був без втрат, мапа компресії має формувати взаємно однозначну відповідність між звичайними та стисненими послідовностями бітів.
Принцип Діріхле вказує на відсутність бієктивного відношення між колекцією послідовностей довжини N та будь-якою підмножиною послідовностей довжини N — 1. Тому неможливо розробити алгоритм, що зменшує розмір будь-якої вхідної послідовності.
Психологічне тло
Більшість повсякденних файлів відносно «рідкісні» з точки зору інформаційної ентропії, але таким чином, найбільш ефективні алгоритми стиснення без втрат застосовуються звичайними людьми для непоганого стиснення своїх звичайних файлів. Це може, через неправильне застосування інтуїції, привести деяких людей до думки, що добре спроектовані алгоритми можуть стискати будь-які вхідні дані, таким чином, визначаючи їх як магічні.[]
Практичне застосування
Розробники алгоритмів стиснення розуміють, що потоки високої інформаційної ентропії не можуть бути стиснені, та відповідно включають до своїх програм механізми виявлення і обробки цієї умови. Очевидним способом виявлення це використання сирого алгоритму стиснення та перевірку на стискання вихідного файлу. Іноді виявлення проводиться евристикою; наприклад, програма стиснення може розглядати файли, що мають закінчення «.zip», «.arj» або «.lha», такими, що вже більше не можуть бути стиснені. Загальний спосіб обробки цієї ситуації — це «цитуючий вивід», тобто вихідні дані мають частини вхідних даних, що дозволяє мінімізувати дію злоякісного збільшення після стиснення. Для прикладу, zip формат специфікує «метод стиснення» вхідних даних, що буквально копіюються до архіву.
Виклик на мільйон випадкових чисел
Марк Нельсон, у відповідь на заяви про магічні алгоритми, створив 415 241 байтовий бінарний файл, що містить дані високої ентропії, та заявив про публічний виклик з нагородою в $100 для будь-кого, хто напише програму для стиснення файлу до розміру, який разом з розміром самої програми буде меншим від розміру оригіналу, та що зможе декодувати файл без помилок.
В часто заданих питаннях (FAQ) новинної групи по стисненню міститься виклик Майка Голдмана, що пропонує $5 000 за програму, що може стискати випадкові дані. Патрік Крейг взяв учать у виклику, але перед стисненням він розбив вхідні дані на окремі файли, що закінчуються на 5, яка не зберігається як частина файлу. Опускаючи цей символ, він отримав в результаті розміри файлів (також, відповідно до правил, разом з розміром програми, що збирає їх докупи) менші ніж оригінал. Проте, фактично стиснення не відбулося, та інформація зберігається під назвами, необхідними для коректного відновлення оригіналу, і ця інформація не рахувалась разом з розміром файлів. Таким чином самих файлів недостатньо для відновлення; назви файлів також необхідні. Патрік Крейг погодився, що ніякого стиснення не відбувалось, але аргументував це тим, що умова виклику цього не потребувала. Повну історію цієї події, включаючи обговорення речей, що не відносяться до технічної сторони виклику, міститься на вебсайті Патріка Крейга.
Приклади алгоритмів
- Родина алгоритмів Лемпеля-Зіва
- RLE
- Алгоритм Шеннона-Фано
Перелік форматів стиснення без втрат
- універсальні:
- аудіо
- зображення —
- відео —
- [en]
- [en]
- HuffYUV
- [en]
Див. також
Примітки
- comp.compression FAQ list entry #9: Compression of random data (WEB, Gilbert and others)
- ZIP file format specification [ 2014-12-05 у Wayback Machine.] by PKWARE, Inc., chapter V, section J
- Nelson, Mark (20 червня 2006). . Архів оригіналу за 5 червня 2016.
- Compression of random data.
- Craig, Patrick (26 березня 2001). The $5000 Compression Challenge (англ.).
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Stisnennya bez vtrat angl Lossless compression metod stisnennya danih pri vikoristanni yakogo zakodovana informaciya mozhe buti povnistyu vidnovlena zi stisnutih danih Navpaki stisnennya z vtratami dozvolyaye lishe vidnovlennya danih yaki ye tilki nablizhennyam do pochatkovih danih Dlya kozhnogo z tipiv cifrovoyi informaciyi yak pravilo isnuyut svoyi optimalni algoritmi stisnennya bez vtrat Stisnennya danih bez vtrat vikoristovuyetsya v bagatoh programah Napriklad vono vikoristovuyetsya v usih fajlovih arhivatorah Vono takozh vikoristovuyetsya yak komponent v stisnenni z vtratami Stisnennya bez vtrat vikoristovuyetsya koli vazhlivo shob vidnovlenni dani buli identichni originalu Tipovij priklad vikonuvanij fajl abo dzherelnij kod tekstovij fajl Deyaki grafichni fajlovi formati napriklad PNG ta GIF vikoristovuyut tilki stisnennya bez vtrat todi yak formati TIFF ta MNG mozhut vikoristovuvati stisnennya yak z vtratami tak j bez vtrat Formati stisnennya zvuku bez vtrat vikoristovuyetsya dlya arhivuvannya abo virobnichih cilej v toj chas yak menshi formati stisnennya audio z vtratami vikoristovuyutsya v audioprogravachah ta v situaciyah koli prostir dlya zberigannya informaciyi obmezhenij abo nema potrebi v tochnomu vidtvorenni informaciyi Stisnennya ta kombinatorikaLegko dovesti nastupnu teoremu Ne isnuye algoritmu stisnennya takogo sho dlya naturalnogo N Bud yakij fajl dovzhini ne bilshe nizh N bajt abo zalishayetsya tiyeyi zh dovzhini abo zmenshuyetsya Isnuye fajl dovzhini ne bilshe nizh N yakij zmenshuyetsya hocha b na odin bajt Dovedennya Ne obmezhuyuchi spilnist mozhna pripustiti sho zmenshivsya fajl A dovzhini N Poznachimo alfavit yak 8 displaystyle Theta Rozglyanemo mnozhinu 8 0 8 1 8 N 1 A displaystyle Theta 0 cup Theta 1 cup ldots cup Theta N 1 cup A U cij mnozhini 256 0 256 1 256 N 1 1 displaystyle 256 0 256 1 ldots 256 N 1 1 pochatkovih fajliv v toj chas stisnenih ne bilshe nizh 256 0 256 1 256 N 1 displaystyle 256 0 256 1 ldots 256 N 1 Tomu vidpovidno do principu Dirihle vinikaye protirichchya Vtim dana teorema anitrohi ne kidaye tin na stisnennya bez vtrat Sprava v tim sho bud yakij algoritm stisnennya mozhna modifikuvati tak shob vin zbilshuvav rozmir ne bilshe nizh na 1 bit Yaksho algoritm zmenshiv fajl pishemo 1 potim stisneni dani yaksho zbilshiv pishemo 0 potim pochatkovi dani Takim chinom fragmenti yaki ne mozhlivo stisnuti ne sprichinyat nekontrolovanogo zbilshennya arhivu Realnih fajliv dovzhini N nabagato menshe nizh 256 N displaystyle 256 N kazhut sho dani mayut nizku informacijnu entropiyu napriklad malojmovirno shob yiyiyi zustrilosya v rozumnomu teksti a v ocifrovanomu zvuci amplituda ne mozhe v moment zrosti z 0 do 100 Do togo zh shlyahom specializaciyi algoritmiv na deyaki tipi danih tekst zobrazhennya zvuk video ta in vdayetsya dosyagti visokogo rivnya stisnennya takim chinom zastosovani v arhivatorah universalni algoritmi stiskuyut zvuk priblizno u 1 5 razi u toj chas yak FLAC u 2 5 razi Bilshist specializovanih algoritmiv malopridatni dlya fajliv inshoyi prirodi napriklad zvuk pogano stiskayetsya tekstovimi algoritmami Metod stisnennya bez vtratU zagalnih risah znachennya stisnennya bez vtrat polyagaye v poshuku zakonomirnosti v pochatkovih danih i z yiyi urahuvannyam generaciyi inshoyi poslidovnosti yaka povnistyu opisuye pochatkovu Napriklad dlya koduvannya binarnih poslidovnostej v yakih bagato nuliv ta malo odinic mi mozhemo vikoristati taku zaminu 00 0 01 10 10 110 11 111 V takomu vipadku shistnadcyat bitiv 00 01 00 00 11 10 00 00 budut peretvoreni u 13 bitiv 0 10 0 0 111 110 0 0 Taka zamina ye vidom prefiksnogo kodu tobto maye taku osoblivist yaksho mi zapishemo stisnenij ryadok bez propuskiv mi vse odno zmozhemo rozstaviti v nij propuski a tomu i vidnoviti pochatkovu poslidovnist Najbilsh vidomim prefiksnim kodom ye kod Haffmana Bilshist algoritmiv stisnennya bez vtrat pracyuyut u dvi stadiyi na pershij generuyetsya statistichna model dlya vhidnih danih druga predstavlyaye vhidni dani v bitovomu viglyadi vikoristovuyuchi model dlya otrimannya jmovirnisnih danih tobto takih sho zustrichayutsya chasto Statistichni modeli algoritmiv dlya tekstu chi tekstovih binarnih danih takih yak vikonuvalni fajli mistyat Peretvorennya Berrouza Vilera LZ77 i LZ78 LZW Algoritmi koduvannya cherez generuvannya bitovih poslidovnostej Algoritm Haffmana Arifmetichne koduvannyaObmezhennyaAlgoritmi stisnennya bez vtrat ne mozhut garantuvati stisnennya dlya usih vidiv vhidnih danih Inshimi slovami dlya bud yakogo algoritmu stisnennya bez vtrat isnuye takij nabir vhidnih danih yaki ne zmenshuyutsya pislya obrobki algoritmom a navpaki zbilshuyutsya Ce bulo dovedeno ranishe Bud yakij algoritm sho robit deyaki fajli menshimi povinen robiti deyaki fajli bilshimi ale ne obov yazkovo sho voni stanut duzhe velikimi Praktichno vikoristovuyutsya algoritmi sho zabezpechuyut sobi mehanizm vihodu sho zupinyaye koduvannya fajliv yaki mozhut stati bilshimi pislya diyi stisnennya Teoretichno odin lish dodatkovij bit potriben shob skazati dekoderu sho koduvannya vimknene dlya usih vhidnih danih prote bilshist koduvalnih algoritmiv vikoristovuyut bilshe nizh odin povnij bajt dlya ciyeyi cili Napriklad fajli stisnenni algoritmom DEFLATE nikoli ne zbilshuyutsya bilshe nizh na 5 bajtiv na 65 535 bajtiv vhidnih danih Faktichno yaksho mi rozglyadayemo usi rivnojmovirni tobto taki chiye isnuvannya mozhlive z odnakovoyu jmovirnistyu fajli dovzhini N todi dlya bud yakogo stisnennya bez vtrat sho zmenshuye rozmir yakogos fajlu ochikuvanij rozmir stisnenogo fajlu v serednomu sered usih mozhlivih fajliv dovzhini N povinen obov yazkovo buti bilshe nizh N dzherelo Takim chinom yaksho mi nichogo ne znayemo pro vlastivosti danih sho zbirayemos stiskati nam ne varto stiskati yih vzagali Algoritmi stisnennya bez vtrat korisni tilki yaksho mi shvidshe za vse stiskayemo pevni vidi danih nizh inshi todi algoritm povinen buti rozroblenij dlya efektivnogo yih stiskannya Otzhe golovnoyu dumkoyu ye ne te sho mozhlivo zrobiti girshe a te sho ne zavzhdi mozhna otrimati nepoganij rezultat Todi pid viborom algoritmu zvichajno rozumiyetsya nepryamij vibir pidmnozhini z usih fajliv sho stanut korisno menshimi Ce teoretichna prichina dlya togo sho mi mayemo mati rizni algoritmi dlya riznih vidiv danih ne isnuye takogo algoritmu sho buv bi horoshim dlya bud yakogo fajlu Tryuk sho dozvolyaye algoritmam stisnennya bez vtrat pri vikoristanni na danih dlya yakih voni buli sproektovani poslidovno stiskati fajli do menshogo rozmiru ye te sho fajli dlya yakih algoritmi sproektovani diyati mayut deyaku formu legko zmodelovanoyi nadmirnosti yaku algoritm povinen vidalyati takim chinom zmenshuyuchi yih rozmir vnaslidok ciyeyi nadmirnosti Algoritmi v cilomu cilkom konkretno nalashtovani na konkretnij vid fajlu napriklad programi dlya stisnennya audio ne pracyuyut na tekstah i navpaki Zokrema fajli sho skladayutsya z vipadkovih danih ne mozhut buti uspishno stisneni ni odnim iz rozumnih algoritmiv dijsno rezultat takoyi diyi vikoristovuyetsya dlya viznachennya koncepciyi vipadkovosti v teoriyi algoritmichnoyi skladnosti Dovedeno sho nemozhlivo stvoriti algoritm yakij mig bi stiskati bez vtrat bud yaki dani Vtim vprodovzh rokiv kompaniyi zayavlyayut pro dosyagnennya doskonalogo stisnennya pri yakomu dovilne chislo N vipadkovih bit mozhut zavzhdi buti stisneni do N 1 bit Ci zayavi mozhut buti nadijno vidkineni navit bez pogliblennya u detali realizaciyi shemi yih roboti Ci algoritmi ne mozhut isnuvati cherez superechnist z osnovnimi zakonami matematiki bo yaksho takij algoritm isnuye vin mig bi vikoristovuvatis ciklichno dlya stisnennya danih do nulovoyi dovzhini Z ciyeyi prichini nibito doskonali algoritmi chasto gluzlivo nazivayut magichnimi Z inshogo boku bulo dovedeno dzherelo sho ne isnuye zhodnogo algoritmu viznachennya mozhlivosti stisnennya fajlu v sensi kolmogorivskoyi skladnosti Hocha ce mozhlivo dlya bud yakih konkretnih danih navit yaksho voni zdayutsya vipadkovimi Voni mozhut buti istotno stisneni navit vklyuchayuchi rozmir dekompresora Yak priklad mozhna navesti cifri chisla p displaystyle pi sho viglyadayut vipadkovimi ale mozhut buti stvoreni duzhe malenkoyu programoyu dlya pi ce poyasnyuyetsya tim sho jogo mozhna uyavlyati u viglyadi neskinchennogo ryadu sho na komp yuteri obchislyuyetsya iterativno Prote hoch ne mozhe buti viznacheno chi konkretnij fajl nestislivij prosta teorema pro nestislivi ryadki pokazuye sho bilshe nizh 99 fajliv bud yakoyi danoyi dovzhini ne mozhut buti stisneni bilshe nizh na odin bajt vklyuchayuchi rozmir dekompresora Matematichne tlo Abstraktno kazhuchi algoritmi stisnennya mozhut buti rozglyanuti yak funkciyi sho diyut na poslidovnosti zazvichaj bajtiv Stisnennya uspishne yaksho rezultativna poslidovnist mensha nizh originalna razom z instrukciyami dlya mapi dekompresiyi Dlya togo shob algoritm stisnennya buv bez vtrat mapa kompresiyi maye formuvati vzayemno odnoznachnu vidpovidnist mizh zvichajnimi ta stisnenimi poslidovnostyami bitiv Princip Dirihle vkazuye na vidsutnist biyektivnogo vidnoshennya mizh kolekciyeyu poslidovnostej dovzhini N ta bud yakoyu pidmnozhinoyu poslidovnostej dovzhini N 1 Tomu nemozhlivo rozrobiti algoritm sho zmenshuye rozmir bud yakoyi vhidnoyi poslidovnosti Psihologichne tlo Bilshist povsyakdennih fajliv vidnosno ridkisni z tochki zoru informacijnoyi entropiyi ale takim chinom najbilsh efektivni algoritmi stisnennya bez vtrat zastosovuyutsya zvichajnimi lyudmi dlya nepoganogo stisnennya svoyih zvichajnih fajliv Ce mozhe cherez nepravilne zastosuvannya intuyiciyi privesti deyakih lyudej do dumki sho dobre sproektovani algoritmi mozhut stiskati bud yaki vhidni dani takim chinom viznachayuchi yih yak magichni dzherelo Praktichne zastosuvannya Rozrobniki algoritmiv stisnennya rozumiyut sho potoki visokoyi informacijnoyi entropiyi ne mozhut buti stisneni ta vidpovidno vklyuchayut do svoyih program mehanizmi viyavlennya i obrobki ciyeyi umovi Ochevidnim sposobom viyavlennya ce vikoristannya sirogo algoritmu stisnennya ta perevirku na stiskannya vihidnogo fajlu Inodi viyavlennya provoditsya evristikoyu napriklad programa stisnennya mozhe rozglyadati fajli sho mayut zakinchennya zip arj abo lha takimi sho vzhe bilshe ne mozhut buti stisneni Zagalnij sposib obrobki ciyeyi situaciyi ce cituyuchij vivid tobto vihidni dani mayut chastini vhidnih danih sho dozvolyaye minimizuvati diyu zloyakisnogo zbilshennya pislya stisnennya Dlya prikladu zip format specifikuye metod stisnennya vhidnih danih sho bukvalno kopiyuyutsya do arhivu Viklik na miljon vipadkovih chisel Mark Nelson u vidpovid na zayavi pro magichni algoritmi stvoriv 415 241 bajtovij binarnij fajl sho mistit dani visokoyi entropiyi ta zayaviv pro publichnij viklik z nagorodoyu v 100 dlya bud kogo hto napishe programu dlya stisnennya fajlu do rozmiru yakij razom z rozmirom samoyi programi bude menshim vid rozmiru originalu ta sho zmozhe dekoduvati fajl bez pomilok V chasto zadanih pitannyah FAQ novinnoyi grupi po stisnennyu mistitsya viklik Majka Goldmana sho proponuye 5 000 za programu sho mozhe stiskati vipadkovi dani Patrik Krejg vzyav uchat u vikliku ale pered stisnennyam vin rozbiv vhidni dani na okremi fajli sho zakinchuyutsya na 5 yaka ne zberigayetsya yak chastina fajlu Opuskayuchi cej simvol vin otrimav v rezultati rozmiri fajliv takozh vidpovidno do pravil razom z rozmirom programi sho zbiraye yih dokupi menshi nizh original Prote faktichno stisnennya ne vidbulosya ta informaciya zberigayetsya pid nazvami neobhidnimi dlya korektnogo vidnovlennya originalu i cya informaciya ne rahuvalas razom z rozmirom fajliv Takim chinom samih fajliv nedostatno dlya vidnovlennya nazvi fajliv takozh neobhidni Patrik Krejg pogodivsya sho niyakogo stisnennya ne vidbuvalos ale argumentuvav ce tim sho umova vikliku cogo ne potrebuvala Povnu istoriyu ciyeyi podiyi vklyuchayuchi obgovorennya rechej sho ne vidnosyatsya do tehnichnoyi storoni vikliku mistitsya na vebsajti Patrika Krejga Prikladi algoritmivRodina algoritmiv Lempelya Ziva RLE Algoritm Shennona FanoPerelik formativ stisnennya bez vtratuniversalni Zip 7 Zip RAR GZip PAQ ta in audio Apple Lossless Adaptive Transform Acoustic Coding FLAC Free Lossless Audio Codec Monkey s Audio APE TTA True Audio WavPack ta in zobrazhennya BMP GIF PNG TIFF JPEG 2000 video en en HuffYUV en Div takozhStisnennya z vtratami Stisnennya zvuku Stisnennya videoPrimitkicomp compression FAQ list entry 9 Compression of random data WEB Gilbert and others ZIP file format specification 2014 12 05 u Wayback Machine by PKWARE Inc chapter V section J Nelson Mark 20 chervnya 2006 Arhiv originalu za 5 chervnya 2016 Compression of random data Craig Patrick 26 bereznya 2001 The 5000 Compression Challenge angl Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi