Algoritm de compresie PPM

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 28 mai 2022; verificarea necesită 1 editare .

PPM ( Predicție în limba engleză  prin potrivire parțială  - predicție prin potrivire parțială) este un algoritm de comprimare a datelor statistică adaptiv, fără pierderi, bazat pe modelarea și predicția contextului. Modelul PPM folosește contextul, setul de caractere din fluxul necomprimat care îl precede pe cel dat, pentru a prezice valoarea unui caracter pe baza statisticilor. Modelul PPM în sine prezice doar valoarea unui caracter, compresia directă este efectuată de algoritmi de codare entropică , cum ar fi algoritmul Huffman , codarea aritmetică .

Lungimea contextului care este utilizat în predicție este de obicei foarte limitată. Această lungime este notată n și definește ordinea modelului PPM, care este notat cu PPM(n) . Există și modele nelimitate și sunt pur și simplu denumite PPM* . Dacă un simbol nu poate fi prezis dintr-un context de n simboluri, atunci se încearcă să-l prezică folosind n-1 simboluri. O tranziție recursivă la modele cu un ordin inferior are loc până când apare o predicție într-unul dintre modele sau când contextul devine lungime zero ( n = 0). Modelele de gradul 0 și -1 ar trebui descrise separat. Modelul de ordin zero este echivalent cu cazul modelării fără context, când probabilitatea unui simbol este determinată numai din frecvența apariției acestuia într-un flux de date compresibil. Acest model este de obicei folosit împreună cu codarea Huffman. Modelul ordinului −1 este un model static care atribuie o anumită valoare fixă ​​probabilității unui simbol; de obicei, toate caracterele care pot apărea într-un flux de date compresibil sunt considerate la fel de probabile. Pentru a obține o estimare bună a probabilității caracterului, trebuie luate în considerare contexte de diferite lungimi. PPM este o variantă a strategiei de amestecare, în care estimările de probabilitate făcute pe baza unor contexte de lungimi diferite sunt combinate într-o probabilitate comună. Estimarea rezultată este codificată de orice codificator de entropie (EC), de obicei un fel de codificator aritmetic. În etapa de codificare a entropiei are loc compresia reală.

De mare importanță pentru algoritmul PPM este problema manipulării caracterelor noi care nu au fost încă întâlnite în fluxul de intrare. Această problemă se numește problema frecvenței zero . Unele implementări PPM setează noul număr de caractere la o valoare fixă, cum ar fi una. Alte implementări, cum ar fi PPM-D, măresc pseudonumărul unui nou caracter de fiecare dată când un nou caracter apare efectiv în flux (cu alte cuvinte, PPM-D estimează probabilitatea unui nou caracter ca raport dintre numărul de caractere unice la numărul total de caractere utilizate).

Studiile publicate ale familiei de algoritmi PPM au apărut la mijlocul anilor 1980. Implementările software nu au fost populare până în anii 1990, deoarece modelele PPM necesită o cantitate semnificativă de memorie RAM . Implementările moderne ale PPM sunt printre cele mai bune dintre algoritmii de compresie fără pierderi pentru textele în limbaj natural . [1] [2]

Utilizare practică

Variante ale algoritmului PPM sunt utilizate în prezent pe scară largă, în principal pentru comprimarea informațiilor redundante și a datelor textuale. Următoarele arhivare folosesc PPM [3] :

Note

  1. http://www.maximumcompression.com/algoritms.php Arhivat 13 ianuarie 2021 la Wayback Machine Implementările recente PPM sunt printre cele mai performante programe de compresie fără pierderi pentru text în limbaj natural.
  2. Introducere în compresia datelor Arhivat 28 septembrie 2015 la Wayback Machine ISBN 1-55860-558-4 pagina 141 „unii dintre cei mai performanti algoritmi de compresie a textului sunt variante ale algoritmului ppm”
  3. Introducere în PPM . Preluat la 26 mai 2008. Arhivat din original la 9 ianuarie 2021.

Literatură