16
 Metode de compresie

Codificarea Huffman Prezentare

Embed Size (px)

Citation preview

Page 1: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 1/16

 

Metode de compresie

Page 2: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 2/16

1. Codarea Huffman

 Atunci când se codifică în mod individual simbolurile unei sursede informaţie, codarea Huffman conduce la cel mai mic numărde simboluri de cod pentru fiecare simbol sursă. Codul obţinuteste optimal pentru o valoare fixată  n, cu condiţia casimbolurile sursă să fie codificate unul câte unul. În practică, simbolurile sursă sunt fie intensităţi de imagine, fieieşirea unui operator de transformare a intensităţii.

Primul pas  în codarea Huffman este formarea unei secvenţede reducere a surselor prin ordonarea probabilităţilorsimbolurilor considerate şi combinarea simbolurilor cu

probabilitatea cea mai mică  într-un singur simbol în sursaredusă.Fig. 1 ilustrează acest proces pentru o codare binar ă.

Page 3: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 3/16

 

 În coloana din stânga se notează  simbolurile sursă  ordonate după probabilităţile lor, descrescător, de sus în jos. Pentru a forma primareducere cele două  probabilităţi de jos (cele mai mici) se combină pentru a forma un simbol compus cu probabilitatea egală  cu sumacelor două probabilităţi iniţiale. Acest simbol compus şi probabilitateaasociată  se plasează  în coloana primei reduceri astfel încâtprobabilităţile să fie ordonate, din nou, descrescător, de sus în jos.Procesul se repetă  până  când sursa redusă  are numai două simboluri.

Page 4: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 4/16

 Al doilea pas  este codificarea propriu-zisă  Se începe princodarea sursei reduse cu cel mai mic număr de simboluri.Codul binar minimal pentru sursa cu două simboluri este codulde un bit: 0 şi 1.După  cum se poate observa în Fig. 2, simbolurile 0 şi 1 seasignează  celor două  simboluri din coloana din dreapta(aleator).

Page 5: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 5/16

Pentru că simbolul sursei reduse care are probabilitatea 0.6 afost generat din combinarea a două simboluri ale sursei redusetrei (din stânga), valoarea 0 folosită  pentru a codifica acestsimbol este asignată  ambelor simboluri din sursa 3, apoi seadaugă arbitrar 0 şi 1 pentru a forma două coduri de câte doibiţi. Se repetă  această  procedur ă  până  se codifică  sursainiţială.

 pixelbiti

 Lmed 

2.2)504.0()506.0(

)41.0()31.0()23.0()14.0(

=×+×+

+×+×+×+×=

 

Metoda Huffman produce un cod optimal. După  ce a fostobţinut codul, codarea şi/sau decodarea f ăr ă  erori serealizeaz

ă pe baza unui tabel.

Codul propriu-zis este numit cod bloc  pentru că  fiecare simbolsursă este transformat într-o secvenţă fixă de simboluri de cod.

Page 6: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 6/16

Este instantaneu pentru că fiecare cuvânt de cod dintr-un şir desimboluri de cod poate fi decodificat f ăr ă a lua în consideraresuccesiunea de simboluri.Este unic decodabil   pentru că  orice şir de simboluri de codpoate fi decodificat într-un singur mod.Deci, orice şir de simboluri codificate Huffman poate fidecodificat examinând simbolurile individuale ale şirului de lastânga la dreapta.Pentru codul binar din Fig. 2, decodificarea de la stânga la

dreapata a şirului 010100111100 conduce la: primul cuvând decod valid este 01010, care corespunde simbolului 3a , apoi 011care corespunde simbolului 1a ... Mesajul decodificat este

62213   aaaaa .

Page 7: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 7/16

Ex.Imagine cu niveluri multiple de gri din fig. 3 este 8512512   ××  şiare histograma indicată.

Page 8: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 8/16

Pentru că  intensităţile nu sunt egal probabile, se poateimplementa în MATLAB procedura Huffman pentru a codificaintensităţile cu 7.428 biţi/pixel (incuzând tabelul de codurinecesar pentru reconstrucţia imaginii iniţiale).Reprezentarea comprimată  are o entropie mai mare decâtentropia estimată (7.3838 biţi/pixel, din ec. ???) cu

)3838.7428.7(5122−×  sau 11587 biţi, aproximativ %6.0 .

Raportul de compresie şi redundanţa relativă sunt

077.1428.7

8==C   

0715.0

077.1

11   =−= R  

 Adică, 7.15% din imaginea iniţială codificată cu lungime fixă de8 biţi, a fost eliminată pentru că a fost redundantă.

Page 9: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 9/16

2. Codarea LZW Lempel – Ziv – Welch

 În Cap. anterior şi codarea Huffman am luat în considerareeliminarea redundanţ ei codului .

 În acest paragraf: compresia f ăr ă  erori care ia în considerareredundanţ a spaţ ial ă dintr-o imagine.Metoda de codare LZW asignează cuvinte de cod de lungimefixă secvenţelor cu lungime variabilă ale sursei de simboluri.Shannon: codificarea secvenţelor de simboluri ale sursei şi nu

simboluri individuale.O caracteristică a codificării LZW este aceea că nu este nevoiede cunoaşterea a priori a probabilităţii de apariţie a simbolurilorcare trebuie codificate.

LZW – GIF, TIFF, PDF.

Page 10: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 10/16

Ex. Lena, o imagine 8512512  ××

.Folosind Adobe Photoshop, o versiune TIFF necomprimată  aacestei imagini ocupă  286740  bytes pe disc: 262144  bytespentru imaginea 8512512   ××  plus 24596 bytes overhead.Folosind opţiunea TIFF compresie LZW, se obţine un fişier de224420 bytes. Raportul de compresie este 28.1=C  .La Huffman 077.1=C  .Compresia suplimentar ă  se datorează  eliminării unora dinredundanţele spaţiale.

Page 11: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 11/16

Codarea LZW este destul de simplă conceptual.La începutul procesului de codare se construieşte o carte decoduri (sau un dic ţ ionar ) care conţine simboluri sursă ce trebuiecodificate.Pentru imaginile cu niveluri multiple de gri, pe 8 biţi, primele256 cuvinte de cod se asignează intensităţilor 255,...,2,1,0 .Pe măsur ă  ce codificatorul examinează  în mod secvenţialpixelii din imagine, secvenţele de intensităţi care nu sunt îndicţionar se plasează  în locaţii determinate în mod algoritmic

(de ex, la locaţia următoare nefolosită).De exemplu, dacă  primii doi pixeli din imagine sunt albi,secvenţa 255255−  poate fi asignată  locaţiei 256, adresa careurmează locaţiilor rezervate pentru nivelurile de intensitate între

0 şi 255.Următoarea dată când se vor citi doi pixeli consecutivi albi, seva folosi cuvântul de cod 256 (adresa locaţiei care conţinesecvenţa 256 – 256) pentru a-i reprezenta.

Page 12: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 12/16

Dacă  în procesul de codificare se foloseşte un dicţionar de 9biţi (512 cuvinte), cei 8+8 biţi folosiţi iniţial pentru a reprezentacei doi pixeli se vor înlocui cu un singur cuvânt de cod de 9 biţi.

 În mod clar, dimensiunea dic ţ ionarului   este un parametruimportant. Dacă dicţionarul este prea mic, detecţia secvenţelorva fi mai puţin probabilă. Dacă  este prea mare, dimensiuneacuvintelor de cod va afecta negativ performanţa compresiei.

Ex.Imaginea 44× , 8 biţi, a unei muchii verticale.

39 39 126 126

39 39 126 126

39 39 126 126

39 39 126 126

Page 13: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 13/16

Se foloseşte un dicţionar cu 512 cuvinte, cu următorul conţinutde start:

Iniţial, locaţiile 256 – 511 nu sunt utilizate. În Tabel sunt detaliate etapele de codificare a celor 16 pixeli.

Page 14: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 14/16

 

Page 15: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 15/16

Imaginea se codifică procesând pixelii de la stânga la dreapta,de sus în jos. Fiecare valoare succesivă  de intensitate esteconcatenată  cu o variabilă  (coloana 1) numită  secvenţacurentă recunoscută (currently recognized sequence).Se caută  în dicţionar fiecare secvenţă concatenată şi dac ă se

g ăseşte, cum este cazul din prima linie din tabel, se înlocuieştecu mai noua secvenţă concatenată şi recunoscută (localizată îndicţionar). Aceasta s-a f ăcut în coloana 1 din linia 2. Nu segenerează niciun cod de ieşire iar dicţionarul nu este afectat.

Dacă  secvenţa concatenată  nu a fost g ăsit ă, totuşi, adresasecvenţei curente recunoscute este transmisă  la ieşire subforma următoarei valori codificate, secvenţa concatenată  dar

nerecunoscută  se adaugă  în dicţionar iar secvenţa curentă recunoscută este iniţializată la valoarea pixelului curent. Aşa se întâmplă în linia 2 din tabel.

Page 16: Codificarea Huffman Prezentare

7/26/2019 Codificarea Huffman Prezentare

http://slidepdf.com/reader/full/codificarea-huffman-prezentare 16/16

Ultimele două coloane indică secvenţele de intensităţi care seadaugă în dicţionar când se scanează întreaga imagine 4 x 4. Au fost definite nouă cuvinte de cod suplimentare. În final, dicţionarul va conţine 265 cuvinte de cod iar algoritmulLZW a identificat mai multe secvenţe de intensităţi care serepetă. Astfel, imaginea iniţială  de 128 biţi (16 pixeli x 8biţi/pixel) se transformă în 90 biţi (adică, 10 coduri de 9 biţi)Ieşirea codificată se obţine citind coloana 3 de sus în jos.Raportul de compresie este 1.42:1.