algoritmi de compresie - clasificarea metodelor de compresie

Tehnicile de compresie a datelor pot fi împărțite în două tipuri:
  1. Denaturarea (loseless) metode de compresie (numite și tehnici de compresie fără pierderi) se asigură că datele decodate vor corespunde exact cu originalul;
  2. Denaturând metode (lossy) de compresie (numite, de asemenea, metode de compresie lossy) pot distorsiona datele originale, de exemplu prin îndepărtarea părții neesențial a datelor, după recuperarea completă este imposibilă.

Primul tip de comprimare utilizat în cazul în care datele sunt importante pentru a recupera după comprimare într-o formă nedistorsionată, este important pentru text, date numerice, și așa mai departe. N. complet reversibil de compresie, prin definiție, nimic nu este eliminat din datele originale. Compresia se realizează numai în detrimentul altor reprezentări, date mai eficiente.

În plus, puteți selecta:
  • Metode de compresie de uz general (de uz general), care nu depind de natura fizică a datelor de intrare și sunt în general orientate în text de compresie, programe executabile, module obiect și biblioteci, și așa mai departe. D. T. E. Date care în principal, și stocate în calculator;
  • metode de compresie specifice (speciale), sunt orientate pentru a comprima datele de origine cunoscute, cum ar fi sunet, imagini, și așa mai departe. d. Și datorită cunoașterii caracteristicilor specifice ale datelor comprimate se realizează în mod semnificativ mai bună calitate și / sau rata de compresie mai mică decât atunci când se utilizează o tehnică de uz general.
Prin definiție, un scop general metode de compresie - Denaturarea; distorsionare poate fi doar metode speciale de compresie. De obicei, distorsiunea permisă numai în prelucrarea tuturor tipurilor de semnale (sunet, imagini, date de la senzori fizici), atunci când se cunoaște în ce mod și în ce măsură datele pot fi schimbate fără a pierde calitățile lor de consum.

Criterii de evaluare Metode de compresie

Principalele proprietăți ale unui algoritm de compresie a datelor sunt:
  • de calitate (coeficient sau gradul de) compresie. .. Adică, raportul dintre lungimea (în biți) de reprezentare a datelor comprimate la lungimea reprezentării inițiale;
  • codare și decodare viteză. definită de timpul petrecut pe codare și decodare a datelor;
  • cantitatea de memorie necesară.

În domeniul de compresie a datelor, așa cum se întâmplă adesea, legea actelor de pârghii: algoritmii care folosesc mai multe resurse (timp și spațiu), ajunge de obicei de compresie de calitate mai bună. și invers: mai puțin consumatoare de resurse algoritmi de compresie de calitate. de obicei, randament mai multe resurse.

Astfel, construcția optimă din punct de vedere practic algoritmul de compresie a datelor este o sarcină destul de banală, deoarece este necesar pentru a realiza o compresie de calitate suficient de mare (nu neapărat optimă din punct de vedere teoretic) cu o cantitate mică de resurse utilizate.

Este clar faptul că criteriile de evaluare a tehnicilor de compresie din punct de vedere practic, sunt foarte dependente de aplicația avută în vedere. De exemplu, atunci când se utilizează compresie în sisteme în timp real trebuie să furnizeze codare de mare viteză și decodare; pentru sisteme integrate parametru critic - cantitatea de memorie necesară; pentru sistemele de stocare a datelor pe termen lung - calitatea de compresie și / sau rata de decodare, etc ...

Programul Fiabilitate și complexitatea algoritmilor

Fiabilitatea sistemelor și a sistemelor software este foarte importantă și este furnizat ca o programare infailibil și de proiectare și de caracteristicile algoritmilor utilizați.

În cazul în care erorile sunt determinate în principal de caracterul complet și calitatea testării (precum și calificările și programarea culturii) și nu depind de voința dezvoltator, alegerea algoritmilor - este gestionat și proces controlat.

Pentru a oferi compresie finală și timpul de pre-cunoscut (cel mai rău caz), este necesar să posede timpul de funcționare bun algoritm determinist (preferabil, puțin dependentă de datele codate) și o cantitate cunoscută de memorie necesară. În special, punerea în aplicare a acestor cerințe este necesară pentru dezvoltarea sistemelor integrate, sisteme în timp real, sisteme de fișiere, de compresie a datelor, precum și a altor sisteme cu limitări stricte privind resursele comune ale diferitelor procese.

Dacă din punct de vedere teoretic algoritmi polinomiali având o complexitate polinomială sau exponențială, considerată o soluție bună la problema, în practică numai algoritmi adecvați cu complexitate timp liniar liniară sau logaritmică, în care este extrem de dorit ca timpul mediu de rezidență (pe datele tipice) au fost liniare.