coduri eficiente denivelate - studopediya

Codurile bloc denivelate sunt folosite aproape exclusiv pentru codarea surselor pentru a elimina sau reduce redundanța cauzată de faptul că mesajele nu sunt la fel de probabil. Ideea unei astfel de codificare este că o mai multe mesaje scurte probabile codificate blocuri, și mai puțin probabil - lung, având ca rezultat o medie scade lungimea blocului.

Atunci când construirea de cod neregulat este necesar pentru a asigura unicitatea decodare. Să ilustrăm acest lucru cu un exemplu simplu. Să presupunem că alfabetul sursă conține șase mesaje notate A, B, C, D, E, transmise independent de probabilitățile P (A) = 0,4; P (B) = 0,3; P (B) = 0,1; P (D) = 0,08; P (D) = 0,07; F (E) = 0,05. Suma acestor probabilități, desigur, este egal cu 1. De notat că entropia sursei

unde i = l. 6 Stoc Nu există mesaje în alfabetul sursă.

Pentru a codifica aceste mesaje de cod binar uniform, trebuie să-și petreacă pe fiecare mesaj de trei caractere. În conformitate cu teorema de codificare aceste mesaje sursă pot fi codificate de caractere binare, astfel încât, în medie, fiecare mesaj expend PCN = 2,16 + simboluri e binare, în cazul în care e - număr arbitrar mic pozitiv. Să încercăm să o facă fără a se gândi o decodare lipsită de ambiguitate, pur și simplu atribuirea cele mai probabile simboluri ale blocurilor mai scurte, de exemplu:

Astfel, pentru transmiterea mesajelor A și B, cu probabilitatea totală de 0,7, folosind un singur caracter, sau pentru a trimite alte mesaje cu probabilitatea totală de 0,3 până la două caractere, astfel încât numărul mediu de caractere per mesaj

Sa dovedit că mesajele sunt codificate mai economic decât să permită teorema de codificare. Dar acest lucru se explică prin faptul că codul selectat nu este potrivit pentru transmiterea de mesaje, deoarece aceasta nu oferă o decodare lipsită de ambiguitate. Într-adevăr, chiar și a adoptat o secvență de caractere:

Acesta poate fi, în conformitate cu (1.37) pentru a decoda, astfel:

A B A B A B A A A B, și așa mai departe. E.,

și chiar și o varietate de moduri.

Desigur, este posibil cu codul (1.37), pentru a asigura unicitatea decodare, în cazul în care după fiecare mesaj pentru a transmite un simbol ( „virgulă“) care separă posturile. Dar atunci nu va fi binar, și ternare. Morse a făcut acest lucru prin crearea de propriul cod, în cazul în care, în plus față de puncte și linii utilizate un al treilea caracter • «decalaj».

Cu toate acestea, puteți construi și decodificate fără ambiguități „nici un punct“ binarele. Este de ajuns (deși nu este necesar) pentru a construi codul astfel încât acesta satisface așa-numita „proprietate prefix.“ Acesta se află în faptul că nimeni nu a folosit cuvântul de cod nu ar trebui să coincidă cu începutul ( „prefixul“) al unui alt cuvânt de cod. Această proprietate nu este îndeplinită în codul (1,37), deoarece, de exemplu, un cuvânt care corespunde mesajului A, este începutul unui cuvânt, un mesaj B și T. D.

Există mai multe algoritmi pentru construirea de cod non-uniform cu proprietatea de prefix. Printre acestea sunt cele mai bune, adică. E. Permiterea cea mai bună abordare la limita definită de entropia este algoritmul Hafmena. Considerăm aici un simplu fenotipuri algoritm, în cele mai multe cazuri, duce la aceleași rezultate.

Algoritmul feno este după cum urmează. mesaje sursă alfabet înregistrate în ordinea probabilităților non-creștere sunt împărțite în două părți, astfel încât probabilitatea cumulativă de posturi în fiecare dintre aceste piese au fost aproape identice cu putință. Prima parte a raportat atribuit ca primul caracter 0, iar rapoartele a doua parte - 1. Apoi, fiecare din aceste piese (atunci când conține mai mult de un mesaj) este împărțit în două, în echiprobabile posibil și ca o parte din al doilea caracter pentru primul dintre ele este luat 0 și pentru al doilea - 1. Acest proces se repetă până când fiecare dintre părți nu rămâne într-un singur post.

De exemplu, (1.37), în prima etapă de separare, în prima parte ar fi un singur mesaj cu o probabilitate de 0,4 A, în timp ce a doua parte - alte mesaje cu o probabilitate totală de 0,6. În cazul în care sunt incluse în prima parte a celor două mesaje (A și B), abaterea de probabilitate egală ar fi chiar mai mare. Atribuim postul și simbolul 0 și restul mesajului, ca primul caracter -1.

În secțiunea a doua etapă a mesajului B, C, D, E, E în două părți la fel de probabile, incluse în prima parte a mesajului B, iar a doua parte - B, C, D, E. probabilități Există cumulative pentru cele două părți ale aceleași - de la 0, 3. Mesaj WNV B ca al doilea caracter 0, iar mesajele rămase - 1. În a treia etapă de mesaje C și D formează o singură parte, iar posturile D și E - al doilea, etc. Ca rezultat, vom ajunge la o astfel de cod ..:

B D -10 -1110 (1,40)

Acest cod, după cum puteți vedea, în structura sa are proprietatea de prefix. De aceea, de exemplu, o secvență de caractere (1,39) decodificat în mod unic, și anume:

Numărul mediu de caractere per mesaj, luând în considerare probabilitatea lor egală cu 2,2 m. E. Exceed entropie (1,36) mai mică de 2%. Chiar mai aproape ar fi să se apropie de entropie, în cazul în care codul de compilarea pentru a compara cu cuvintele cod nu sunt mesaje unice, și o secvență de mai multe mesaje.

Ar trebui subliniat din nou ca un mod eficient coduri neuniforme poate reduce doar sursa de concediere, care este cauzată de probabilități inegale de mesaje. În cele mai multe cazuri, rolul principal este jucat de redundanța altă origine, asociată cu relația dintre elementele mesajului.

articole similare