În prezent, puțini oameni se gândesc la modul în care funcționează compresia. Comparativ cu trecutul, utilizarea unui computer personal a devenit mult mai ușoară. Practic, fiecare persoană care lucrează cu sistemul de fișiere folosește arhive. Dar puțini oameni se gândesc la modul în care funcționează și la ce principiu este compresia fișierelor. Prima versiune a acestui proces a fost codurile Huffman și acestea sunt încă folosite în diverse arhive populare. Mulți utilizatori nu se gândesc nici măcar cât de ușor este să comprimați fișierul și în funcție de ce schemă funcționează. În acest articol, vom examina modul în care compresia funcționează, ce nuanțe ajută la accelerarea și simplificarea procesului de codificare și vom înțelege, de asemenea, care este principiul construirii unui copac de codificare.
Istoria algoritmului
Primul algoritm de codificare eficientă a informațiilor electronice a fost codul propus de Huffman la mijlocul secolului al XX-lea, și anume în 1952. Acesta este în prezent principalul element de bază al majorității programelor create pentru a comprima informații. În prezent, una dintre cele mai populare surse care folosesc acest cod sunt arhivele ZIP, ARJ, RAR și multe altele.
Acest algoritm Huffman este de asemenea folosit pentru a comprima imagini JPEG și alte obiecte grafice. Ei bine, toate faxurile moderne folosesc și codificarea, inventată în 1952. În ciuda faptului că de la crearea codului a trecut atât de mult timp, până în ziua de azi este folosită în cele mai noi cochilii și pe echipamentele vechi și moderne.Principiul codificării eficiente
Baza pentru algoritmul Huffman este o schemă care vă permite să înlocuiți cele mai probabile simboluri cele mai frecvent întâlnite cu codurile sistemului binar. Iar cele care sunt mai puțin frecvente sunt înlocuite cu coduri mai lungi. Trecerea la codurile Huffman lungi are loc numai după ce sistemul folosește toate valorile minime. Această tehnică vă permite să minimizați lungimea codului pentru fiecare caracter al mesajului original ca întreg.
Un punct important este că, la începutul codificării, probabilitatea de apariție a literelor ar trebui să fie deja cunoscută. Din acestea, mesajul final va fi compilat. Pe baza acestor date, se construiește arborele de cod Huffman, pe baza căruia se va efectua procesul de codificare a literelor din arhivă.Codul lui Huffman, exemplu
Pentru a ilustra algoritmul, să luăm o variantă grafică de construire a unui arbore de cod. Pentru a utiliza această metodă a fost eficientă, merită clarificată definirea unor valori necesare pentru conceptul acestei metode. Setul de arce și noduri direcționate de la nod la nod este denumit de obicei un grafic. Arborele în sine este un grafic cu un set de anumite proprietăți:
- în fiecare nod nu poate intra decât mai mult decât unul din arce;
- unul dintre noduri trebuie să fie rădăcina copacului, adică nici un arc nu ar trebui să intre în el;
- dacă din rădăcină începe să se deplaseze de-a lungul arcurilor, acest proces ar trebui să permită obținerea completă a oricăror noduri.
Algoritm pentru construirea unui copac în funcție de Huffman
Construcția codului Huffman se face din literele alfabetului de intrare. Se creează o listă a acelor noduri care sunt libere în arborele de cod viitor. Greutatea fiecărui nod din această listă ar trebui să fie aceeași cu probabilitatea de apariție a literei mesajului corespunzător acestui nod. În acest caz, printre puținele noduri libere ale copacului viitor, se alege cel care cântărește cel mai puțin. În același timp, dacă indicatorii minime sunt observate în mai multe noduri, atunci este posibil să alegeți libere oricare dintre perechi.
După aceasta, se creează nodul părinte, care ar trebui să cântărească atât cât cântărește suma acestei perechi de noduri. După aceasta, părintele este trimis la lista cu noduri gratuite, iar copiii sunt șterși. În același timp, arcele primesc indicii corespunzători, unul și zerouri. Acest proces este repetat exact atâta timp cât este necesar pentru a lăsa un singur nod. După aceasta, numerele binare sunt scrise de sus în jos.Îmbunătățirea eficienței compresiei
Pentru a spori eficiența de compresie, este necesar ca în timpul codului de construcții copac pentru a utiliza toate datele cu privire la probabilitatea de apariție a literelor într-un anumit fișier, atașat la un copac, și să nu permită faptul că acestea sunt împrăștiate peste un număr mare de documente de tip text. Dacă parcurgeți mai întâi acest fișier, puteți calcula imediat statisticile despre cât de des se întâlnesc literele dintr-un obiect care urmează a fi comprimat.
Accelerarea procesului de compresie
Pentru a accelera lucrarea algoritmului, literele trebuie să fie determinate nu de indicii de probabilitate de apariție a unei anumite litere ci de frecvența apariției acesteia. Datorită acestui lucru, algoritmul devine mai simplu, iar lucrul cu acesta este foarte accelerat. Acest lucru evită, de asemenea, operațiunile asociate cu virgule și diviziuni plutitoare.
În plus, în acest mod, codul dinamic Huffman, sau mai degrabă algoritmul în sine, nu este supus nici unei modificări. Acest lucru se datorează în principal faptului că probabilitățile sunt direct proporționale cu frecvențele. Merită acordată o atenție deosebită faptului că greutatea finală a fișierului sau așa-numitul nod rădăcină va fi egală cu suma numărului de litere din obiectul care urmează să fie procesat.concluzie
Codurile lui Huffman sunt un algoritm simplu și de lungă durată, care este încă folosit de multe programe și companii renumite. Simplitatea și claritatea acesteia permit obținerea unor rezultate efective ale comprimării fișierelor din orice volum și reducerea considerabilă a spațiului ocupat de acestea pe discul de stocare. Cu alte cuvinte, algoritmul Huffman este o schemă bine studiată și bine concepută, a cărei relevanță nu scade până în prezent.
Și datorită capacității de a reduce dimensiunea fișierelor, de a le transfera în rețea sau în alte moduri, devine mai ușoară, mai rapidă și mai convenabilă. Lucrul cu algoritmul, puteți comprima absolut orice informație fără a afecta structura și calitatea sa, dar cu efectul maxim de reducere a greutății fișierului. Cu alte cuvinte, codificarea codului Huffman a fost și rămâne cea mai populară și actuală metodă de comprimare a dimensiunii fișierului.Transformare incredibilă: pisica "orbită" din stradă a surprins pe toată lumea cu frumusețea ochilor lor. Pisica nu vedea aproape nimic și nu se putea mișca. Dar când a fost vindecat de scabie, sa dovedit că nu era deloc orb. Mai mult, ochii lui Cotton sunt doar unii.