Presentation laddar. Vänta.

Presentation laddar. Vänta.

Datakomprimering a) Komprimering för att spara lagringsutrymme.

Liknande presentationer


En presentation över ämnet: "Datakomprimering a) Komprimering för att spara lagringsutrymme."— Presentationens avskrift:

1 William Sandqvist william@kth.se
Datakomprimering a) Komprimering för att spara lagringsutrymme. b) Komprimering vid dataöverföring. S Burd, Systems Architecture ISBN Figure 6-15 William Sandqvist

2 LZW, algoritmen bakom GIF ZIP PDF
Lempel-Ziv-Welch icke förstörande komprimeringsalgoritm. Patentet gick ut 2006 – varsågoda att använda … William Sandqvist

3 William Sandqvist william@kth.se
Ett exempel Följande exempel har vi hämtat från Wikipedia. Det är ett förvrängt "Hamlet"-citat om 25 bokstäver som effektivt kan komprimeras med LZW-algoritmen. LZW-algoritmen är annars effektivast vid lite längre meddelan-den/filer. To be or not to be or to be or not. Utgångspunkten är att den som komprimerar meddelandet och den som senare ska expandera det är överens om den använda teckentabellen. För att göra exemplet mer lätthanterligt begränsar vi oss till engelska språkets stora bokstäver och utesluter mellanslagen. Tecknet # får betyda meddelandets slut. TOBEORNOTTOBEORTOBEORNOT# William Sandqvist

4 William Sandqvist william@kth.se
Teckentabellen TOBEORNOTTOBEORTOBEORNOT# En fem bitars kod kan koda 32 tecken och detta räcker således som vår teckentabell eftersom vi bara har har 27 tecken ( engelska alfabetets 26 tecken och  # ). Okomprimerad bitsträng – en bitsträng med 25 tecken a´ fem bitar, totalt 25*5=125 bitar. Det är detta bitantal som vi ska försöka minska med hjälp av LZW-algoritmen! William Sandqvist

5 William Sandqvist william@kth.se
LZW-komprimering (1) Uppdatera lexikon från markören och bakåt med tecken/sträng : Ingen uppdater-ing kan ske! Sammansätt meddelandet från markören och framåt med lexikonord: 10100 William Sandqvist

6 William Sandqvist william@kth.se
LZW-komprimering (2) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

7 William Sandqvist william@kth.se
LZW-komprimering (3) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

8 William Sandqvist william@kth.se
LZW-komprimering (4) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

9 William Sandqvist william@kth.se
LZW-komprimering (5) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

10 William Sandqvist william@kth.se
LZW-komprimering (6) Uppdatera lexikon från markören och bakåt med tecken/sträng : Nästa gång behöver Lexikonet 6 bitars ord! Sammansätt meddelandet från markören och framåt med lexikonord: Nästa gång 6 bitars ord! William Sandqvist

11 William Sandqvist william@kth.se
LZW-komprimering (7) Uppdatera lexikon från markören och bakåt med tecken/sträng : Nu 6 bitars ord i tabellen! Sammansätt meddelandet från markören och framåt med lexikonord: Nu 6 bitars ord i meddelandet! William Sandqvist

12 William Sandqvist william@kth.se
LZW-komprimering (8) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

13 William Sandqvist william@kth.se
LZW-komprimering (9) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

14 William Sandqvist william@kth.se
LZW-komprimering (10) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: Nu får vi nytta av ett lexikon-ord! William Sandqvist

15 William Sandqvist william@kth.se
LZW-komprimering (11) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

16 William Sandqvist william@kth.se
LZW-komprimering (12) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

17 William Sandqvist william@kth.se
LZW-komprimering (13) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

18 William Sandqvist william@kth.se
LZW-komprimering (14) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

19 William Sandqvist william@kth.se
LZW-komprimering (15) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

20 William Sandqvist william@kth.se
LZW-komprimering (16) Uppdatera lexikon från markören och bakåt med tecken/sträng : Sammansätt meddelandet från markören och framåt med lexikonord: William Sandqvist

21 William Sandqvist william@kth.se
LZW-komprimering (17) Vi har nu nått slutet av meddelandet (slut-tecknet #). Bitföljden blev 96 tecken lång. Jämför med den ursprungliga bitföljden med 125 bitar! 96/125 = 0,76. Meddelandet har komprimerats med 25%. Längre texter kan reduceras med c:a 50%. William Sandqvist

22 LZW-dekomprimering (1)
Det räcker med att den som ska dekomprimera, ”packa upp”, med-delandet känner den ursprungliga teckentabellen, därefter kan lexikonet konstrueras i takt med att tecknen mottages. Mottaget tecken: 10100 Dekomprimerat meddelande: T Lexikon kan inte uppdateras nu. William Sandqvist

23 LZW-dekomprimering (2)
Mottagna tecken: Dekomprimerat meddelande: TO Uppdaterat lexikon: William Sandqvist

24 LZW-dekomprimering (3)
Mottagna tecken: Dekomprimerat meddelande: TOB Uppdaterat lexikon: William Sandqvist

25 LZW-dekomprimering (4)
Mottagna tecken: Dekomprimerat meddelande: TOBE Uppdaterat lexikon: William Sandqvist

26 LZW-dekomprimering (5)
Mottagna tecken: Dekomprimerat meddelande: TOBEO Uppdaterat lexikon: William Sandqvist

27 LZW-dekomprimering (6)
Mottagna tecken: Nästa gång 6 bitars ord! Dekomprimerat meddelande: TOBEOR Uppdaterat lexikon: Nästa gång behöver Lexikonet 6 bitars ord! William Sandqvist

28 LZW-dekomprimering (7)
Mottagna tecken: Från och med nu 6 bitars ord! Dekomprimerat meddelande: TOBEORN Uppdaterat lexikon: Nu 6 bitars ord! William Sandqvist

29 LZW-dekomprimering (8)
Mottagna tecken: Dekomprimerat meddelande: TOBEORNO Uppdaterat lexikon: William Sandqvist

30 LZW-dekomprimering (9)
Mottagna tecken: Dekomprimerat meddelande: TOBEORNOT Uppdaterat lexikon: William Sandqvist

31 LZW-dekomprimering (10)
Mottagna tecken: Dekomprimerat meddelande: TOBEORNOTTO Uppdaterat lexikon: William Sandqvist

32 LZW-dekomprimering (11)
Mottagna tecken: Dekomprimerat meddelande: TOBEORNOTTOBE Uppdaterat lexikon: William Sandqvist

33 LZW-dekomprimering (12)
Mottagna tecken: Dekomprimerat meddelande: TOBEORNOTTOBEOR Uppdaterat lexikon: William Sandqvist

34 LZW-dekomprimering (13)
Mottagna tecken: Dekomprimerat meddelande: TOBEORNOTTOBEORTOB Uppdaterat lexikon: William Sandqvist

35 LZW-dekomprimering (14)
Mottagna tecken: Dekomprimerat meddelande: TOBEORNOTTOBEORTOBEO Uppdaterat lexikon: William Sandqvist

36 LZW-dekomprimering (15)
Mottagna tecken: Dekomprimerat meddelande: TOBEORNOTTOBEORTOBEORN Uppdaterat lexikon: William Sandqvist

37 LZW-dekomprimering (16)
Mottagna tecken: Dekomprimerat meddelande: TOBEORNOTTOBEORTOBEORNOT Uppdaterat lexikon: William Sandqvist

38 LZW-dekomprimering (17)
Mottagna tecken: Dekomprimerat meddelande: TOBEORNOTTOBEORTOBEORNOT# Klart! Meddelandet dekomprimerat. Lexikon kan raderas. William Sandqvist

39 William Sandqvist william@kth.se
LZW-dekomprimering Går det alltid bra att dekomprimera meddelanden? Vad händer om det vid komprimeringen går att uppdatera tabellen med en sträng som också kan sändas direkt? Hur ska mottagaren göra om det kommer en kod som inte kan hittas i tabellen? Detta kan bara gälla om meddelandet innehåller ”cScSc” (c ett tecken, S en sträng) och då cS finns i lexikon. Först skickas cS och lexikon uppdateras med cSc. Därefter skickas cSc som inte finns i det mottagande lexikonet. Men eftersom cS finns, och det okända tecknet måste vara av typen cSc (börja och sluta på samma) så kompletterar mottagaren sitt lexikon. William Sandqvist

40 Förstörande komprimering av ljud MP3
William Sandqvist

41 William Sandqvist william@kth.se
Psykoakustik Förstörande komprimering utnyttjar och använder de defekter som finns i människans uppfattningsförmåga. Exempelvis har studier i psykoakustik visat att personer endast kan uppfatta ett fåtal av de starkaste tonerna i ett ljud. Det gör att man kan ta bort de svagare ljuden med signalbehandling och erhålla en signal som inte har lika stora amplitud- och frekvensvariationer. Detta görs med en enhet som kallas för Perceptual modeler. Signalen blir därmed lättare att komprimera på ett konventionellt sätt, dvs med någon algoritm liknande LZW. Efter en sådan behandling kan ljudet komprimeras till ca en tiondel av den ursprungliga storleken, utan att lyssnaren uppfattar distorsionen. Denna metod använder MP3-standarden. William Sandqvist

42 William Sandqvist william@kth.se
ex 32 frekvensband Enheten Frequency separator delar upp ljudet i frekvensband på samma sätt som equalizern i din hemmastereo. William Sandqvist

43 William Sandqvist william@kth.se
MP3 Enheten Data encoder sammansätter informationen om ljudets styrka i olika frekvensband, med de psykoakustiska reglerna om vad örat kan uppfatta. Frekvenser som ändå inte skulle kunna uppfattas tas bort. Därefter komprimeras datamängden med en ”icke förstörande” algoritm liknande LZW. (Det är inte troligt att en varelse från en annan planet skulle hålla med om att MP3-ljudet är ”samma” som orginaljudet, eftersom metoden bygger på psykoakustiska regler för just vårt öra.) William Sandqvist

44 William Sandqvist william@kth.se
Bildkompression GIF Använder en ”färgpalett” med 256 färger – verklighetens bilder har fler färger, det är därför bara datorgenererade bilder, som använder paletten, som återges förlustfritt. Bildfilen komprimeras med LZW-algoritmen (förlustfritt). JPEG använder ”millioner färger”, komprimeringen styrs av ett ”kvalitetstal” – man får kompromissa mellan återgivningsfel och filstorlek. William Sandqvist

45 William Sandqvist william@kth.se
(ASCII-grafik) Bilden till höger är ”ritad” med vanliga bokstäver (55 rader a’ 100 tecken). Det är således uppenbart att man kan reducera en bildfils storlek om man är beredd att ge avkall på bildkvalitén. William Sandqvist

46 JPEG Bildkomprimering
Låg kompression Hög kompression Små 88 pixel bildblock ”transformeras”, dvs. omräknas, matematiskt (DCT), och förlustfritt. Därefter begränsas värdena (Quantization) efter hur stor förlust man kan tåla. För att presentera bilden förfar man i omvänd ordning. De värden bildpunkterna haft innan begränsningen kan inte återskapas fullständigt. Detta ger återgivningsfel. William Sandqvist

47 William Sandqvist william@kth.se
3:1 15:1 50:1 150:1 William Sandqvist Källa: Wikipedia


Ladda ner ppt "Datakomprimering a) Komprimering för att spara lagringsutrymme."

Liknande presentationer


Google-annonser