Kurslitteratur. Kompression av ljud och bild. Föreläsningar, preliminärt program. Laborationer. Khalid Sayood, Introduction to Data Compression

Relevanta dokument
Datakompression. Harald Nautsch ISY Bildkodning, Linköpings universitet.

Kursinnehåll. Datakompression. Föreläsningar, preliminärt program. Examination

Källkodning. Egenskaper hos koder. Några exempel

Kurslitteratur. Kompression av ljud och bild. Föreläsningar, preliminärt program. Laborationer

Kompression av ljud och bild

FLAC (Free Lossless Audio Coding)

Krafts olikhet. En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om. 2 l i. 1 i=1

Föreläsning 1: Bild- och ljudkodning

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.

Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.

Skurlängdskodning. aaaabbbbbbbccbbbbaaaa. Man beskriver alltså sekvensen med ett annat alfabet än det ursprungliga.

TSBK04 Datakompression. Övningsuppgifter

TSBK04 Datakompression Övningsuppgifter

Linjär prediktion. Prediktiv kodning. Linjär prediktion. Prediktiv kodare och avkodare

Aritmetisk kodning. F (0) = 0 Exempel: A = {1, 2, 3} k=1. Källkodning fö 5 p.1/12

Shannon-Fano-Elias-kodning

En generell prediktiv kodare utnyttjar signalens utseende N steg tillbaka i tiden för kodningen, dvs vi kodar efter den betingade fördelningen

4/27/12. Fönstring i MDCT. Föreläsning 10: Ljudkodning ( Audio Coding ) 1. Inledning PCM, standardmetoder, MDCT, psykoakustik, ljudtryck

Föreläsning 10: Ljudkodning ( Audio Coding )

Adaptiv aritmetisk kodning

Ordbokskodning. Enkel variant av kodning med variabelt antal insymboler och fixlängds kodord. (Jfr tunstallkodning)

Exempel, minnesfri binär källa. Ordbokskodning. Lempel-Zivkodning. Lempel-Zivkodning, forts.

SMS047 Mediakodning. Introduktion. Frank Sjöberg. Introduktion. Introduktion

Kodning med distorsion

Burrows-Wheelers transform

TSBK35 Kompression av ljud och bild

Föreläsning 7: Bild- och videokodning

Transformkodning Idé: 1. Tag datasekvensen och dela in den i block av storlek N (eller N N om signalen är tvνadimensionell). Transformera dessa block

Psykoakustik. Ljudtrycksnivå. Hörselns omfång. Hörnivå(loudness) Människans hörsel är ganska väl studerad och det finns bra modeller för den.

Föreläsninsanteckningar till föreläsning 3: Entropi

Föreläsning 7. Felrättande koder

Psykoakustik. Ljudtrycksnivå. Hörselns omfång. Hörnivå (loudness) Människans hörsel är ganska väl studerad och det finns bra modeller för den.

Signaler och system, IT3

Föreläsning 17 - Komprimering

Informationsteori. Repetition Kanalkapaciteten C. Repetition Källkodhastigheten R 2. Repetition Kanalkodhastigheten R 1. Huffmans algoritm: D-när kod

Träd och koder. Anders Björner KTH

Lab 3 Kodningsmetoder

Analys/syntes-kodning

F3 Datarepresentation teckenkodning och datakompression EDAA05 Datorer i system! Roger Henriksson!

Data och Information. Dr. Johan Hagelbäck.

F3 Datarepresentation teckenkodning och datakompression

Grafer och grannmatriser

Människans hörsel är ganska väl studerad och det finns bra modeller för den.

Tentamen i Digitalteknik, EITF65

Föreläsning 2. Transmissionslänk. Repetition: Internetprotokollens skikt. Mål

Digital signalbehandling Digitalt Ljud

Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk. Att sända information mellan datorer. Information och binärdata

Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk. Jens A Andersson

Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk. Jens A Andersson

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Detta ger oss att kanalkapaciteten för den ursprungliga kanalen är C = q 1 C 1 + q 2 C C =1 h ( ) 0.30.

Basbyten och linjära avbildningar

1 Duala problem vid linjär optimering

Kodning av ansiktstextur med oberoende komponenter

Övning 6 - Tillämpad datalogi 2012

TAMS79: Föreläsning 10 Markovkedjor

Datastrukturer och algoritmer. Innehåll. Trie. Informell specifikation. Organisation av Trie. Föreläsning 13 Trie och Sökträd.

Lösningsförslag till övningsuppgifter, del V

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

SF1901 Sannolikhetsteori och statistik I

Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk. Jens A Andersson

Videosignalen består av en sekvens av bilder, typiskt 24, 25 eller 30 bilder i sekunden.

Spektrala transformer Laboration: JPEG-kodning

Kapitel 2 o 3. Att skicka signaler på en länk. (Maria Kihl)

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002

KURSPROGRAM HT-18 MATEMATISK STATISTIK AK FÖR D, I OCH PI, FMSF45 & MASB03

INT 3 F4. Bildkomprimering. Run Length Encoding. Medieteknik Del2. Komprimering, ljud och rörliga bilder. Olika algoritmer för bildkomprimering:

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

Bildlagring och - komprimering

Spektrala transformer Laboration: JPEG-kodning

repetitionskoder blockkoder Felrättande koder

Linjär algebra F1 Ekvationssystem och matriser

Linjär algebra Föreläsning 10

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

Kombinatorik. Kapitel 2. Allmänt kan sägas att inom kombinatoriken sysslar man huvudsakligen med beräkningar av

Digital kommunikation. Maria Kihl

Institutionen för systemteknik, ISY, LiTH. Tentamen i. Tid: kl

Förlustfri datakompression

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

Markovkedjor. Patrik Zetterberg. 8 januari 2013

Tentamen i matematisk statistik, TAMS15/TEN (4h)

Skriv väl, motivera och förklara vad du gör. Betygsgränser: p. ger betyget 3, p. ger betyget 4 och 40 p. eller mer ger betyget

KURSPROGRAM HT-10 MATEMATISK STATISTIK AK FÖR CDI, FMS 012

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

Elektronik. Viktor Öwall, Digital ASIC Group, Dept. of Electroscience, Lund University, Sweden-

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

Poisson Drivna Processer, Hagelbrus

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

Välkommen till TSDT84 Signaler & System samt Transformer!

Föreläsning i webbdesign. Bilder och färger. Rune Körnefors. Medieteknik Rune Körnefors rune.kornefors@lnu.se

Synsinnet. Komprimeringsexempel. Förlustkomprimering - Bakgrund. Image Coding. Common Image Formats GIF

Föreläsning 5: Kardinalitet. Funktioners tillväxt

Signal och bildbehandling SBB. Två (nästan identiska) profiler på D/IT resp Y programmen inom området datorer & bilder Profilansvarig: Klas Nordberg

Tentamen i Digitalteknik, EIT020

Synsinnet. Komprimeringsexempel. Förlustkomprimering - Bakgrund. Common Image Formats. Image Coding GIF. GIF (Graphis Interchange Format)

Kurser inom profilen Teknisk matematik (Y)

Lösning till tentamensskrivning på kursen Diskret Matematik, moment B, för D2 och F, SF1631 och SF1630, den 1 juni 2011 kl

Föreläsningsmanus i matematisk statistik för lantmätare, vecka 2 HT07

Transkript:

TSBK35 fö 1 p.3 TSBK35 fö 1 p.4 Kurslitteratur Kompression av ljud och bild Harald Nautsch harna@isy.liu.se http://www.icg.isy.liu.se/courses/tsbk35/ ISY Bildkodning, Linköpings universitet Khalid Sayood, Introduction to Data Compression Övningshäfte. Köps via Bokakademin Elektroniska böcker, se kurssidorna. Formelsamling, labkompendium, föreläsningsslides, lösningsförslag till Sayood, gamla tentor, et c. finns på kurssidorna. Föreläsningar, preliminärt program TSBK35 fö 1 p.1 Laborationer TSBK35 fö 1 p.2 1. Inledning. Källmodeller, källkodning, huffmankodning. 2. Entropi, golombkoder, skurlängdskodning. Faxkodning 3. Aritmetisk kodning 4. Lempel-Ziv-kodning, distorsionsfri ljud- och bildkodning. GIF, PNG, lossless JPEG, JPEG-LS 5. Amplitudkontinuerliga stokastiska processer. Kvantisering 6. Vektorkvantisering 7. Linjär prediktiv kodning 8. Transformkodning. JPEG 9. Delbandsskodning. JPEG-2000 10. Ljudkodning. Psykoakustik. mp3, AAC, Dolby Digital, Ogg Vorbis, ATRAC 11. Videokodning. H.26x, MPEG, DV 12. Talkodning, fraktalkodning. CELP, GSM 1. Distorsionsfri komprimering av stillbilder och musik. Görs i grupper om 2-3 personer. Redovisas med en liten rapport. 2. Kodning av musik. Görs i grupper om 2-3 personer. Redovisas med en liten rapport. 3. Transformkodning av stillbilder (4h) Görs på schemalagd tid i grupper om 2, boka plats på kurssidan. Det finns schemalagda jourlabtider även för de två första laborationerna, då assistenter kommer att vara närvarande.

TSBK35 fö 1 p.7 TSBK35 fö 1 p.8 Lämpliga förkunskaper Vad är datakompression? Analys Linjär algebra (matriser, vektorer) Sannolikhetslära Grundläggande transformteori Signalbehandling (linjära system) Matlab X Y X komprimering rekonstr. Y tar mindre plats att lagra än X. Distorsionsfri komprimering (lossless): X = X Komprimering med distorsion (lossy): X X TSBK35 fö 1 p.5 TSBK35 fö 1 p.6 Förekommande metoder Godhetsmått Exempel på distorsionsfri komprimering: Textkomprimering: zip, gzip, bzip, compress Stillbilder: GIF, PNG, lossless JPEG, JPEG-LS, faxkodning Musik: FLAC Exempel på komprimering med distorsion: Stillbilder: JPEG, JPEG 2000 Video: H.261, H.263, H.264, MPEG-1 (VideoCD), MPEG-2 (DVD, DVB), MPEG-4 (DivX, XviD), DV Ljud: MPEG-1 layer 3 (mp3), AC-3 (Dolby Digital), ATRAC (MiniDisc), Ogg Vorbis, AAC Tal: CELP, GSM Hur stor kompression ger vår metod? Kompressionsgrad (compression ratio) Ex. Signal att komprimera gråskalebild 256 256 bildpunkter, 1 byte (8 bitar) per bildpunkt. Antag att den komprimerade signalen tar 16384 bytes att lagra. Kompressionsgraden är då 256 256 1 16384 =4ggr. Vanligt att mäta medeldatatakten (rate) i bitar/sampel (bitar/bildpunkt, bitar/tecken) Ex. Vår bild ovan: 16384 8 256 256 =2bitar/bildpunkt För video- och ljudsignaler anger man ofta medeldatatakten i bitar/s.

TSBK35 fö 1 p.11 TSBK35 fö 1 p.12 Godhetsmått, forts Vad är originalet? Hur stor distorsion ger vår metod? Mänsklig bedömning Matematiska mått Kvadratiskt medelfel (mean square error) SNR SNR viktat för att ta hänsyn till människans syn eller hörsel. För ljud och bilder är originalsignalerna samplade och fint kvantiserade amplitudsignaler. Signalen kan vara skalär (monoljud, gråskalebilder) eller vektorvärd (exempelvis RGB, CMYK, multispektrala bilder, stereoljud, surroundljud). Trots att originalsignalen i princip alltid är kvantiserad kan man ändå ofta använda amplitudkontinuerliga modeller för den (föreläsning 5 och senare.) Egenskaper att utnyttja TSBK35 fö 1 p.9 Diskreta källor TSBK35 fö 1 p.10 Vad är det för egenskaper hos signalen som gör att vi (oftast) kan komprimera den? Alla symboler är inte lika vanliga. T.ex. i en musiksignal är det vanligare med små amplitudvärden än med stora. Beroende mellan närliggande symboler. T.ex. i en bild så har bildpunkter bredvid varandra oftast ungefär samma värde. En källa är något som producerar en en sekvens av symboler. Symbolerna är element i ett diskret alfabet A = {a 1,a 2,...,a N } av storlek N. För det mesta kommer vi att behandla ändliga alfabet, men även oändliga alfabet är tillåtna. I många fall har man bara tillgång till själva symbolsekvensen och får därför modellera källan från den.

TSBK35 fö 1 p.15 TSBK35 fö 1 p.16 Stokastiska källmodeller Stokastiska källmodeller, forts. De källmodeller vi kommer att koncentrera oss på är stokastiska modeller, där vi antar att symbolerna produceras från stokastiska variabler eller stokastiska processer. Den enklaste stokastiska modellen för en källa är en diskret stokastisk variabel X. En bättre källmodell är diskreta stationära stokastiska processer. En stokastisk process X t kan ses som en följd av stokastiska variabler. Betingade sannolikheter: Källans utsignal i två tidpunkter t och s Fördelning Pr(X = a i )=P X (a i )=P(a i )=p i P (a i ) 0, a i P (a i )=1 P (x t,x s )=Pr(X t = x t,x s = x s ) P (x s x t )= P (x t,x s ) P (x t ) P (x t,x s )=P (x t ) P (x s x t ) Minneskällor TSBK35 fö 1 p.13 Markovkällor TSBK35 fö 1 p.14 Beroende mellan utsignalens värde i olika tidpunkter brukar kallas för minne. Om X t och X t+k är oberoende för alla k 0så kallas källan minnesfri. För en minnesfri källa gäller: P (x t,x t+k )=P (x t ) P (x t+k ) P (x t+k x t )=P (x t+k ) Markovkälla av ordning k P (x t x t 1 x t 2...)=P (x t x t 1...x t k ) En markovkälla är en minneskälla med begränsat minne k steg tillbaka i sekvensen En markovkälla kan beskrivas med en tillståndsgraf med M = N k tillstånd s i. Se extramaterial om markovkällor.

TSBK35 fö 1 p.19 TSBK35 fö 1 p.20 Verklig källa som stokastisk process. 1917 års bibel som markovkälla Exempel: Alfabet {a, b}. Givna data: bbbbaabbbaaaaabbbbbabaaabbbb. För att skatta symbolsannolikheter räknar vi hur ofta varje symbol uppträder: a finns 11 gånger, b 17 gånger. De skattade sannolikheterna P (x t ) blir då: P (a) = 11, P(b) =17 28 28 För parsannolikheter och betingade sannolikheter får vi istället räkna hur ofta de olika symbolparen uppträder. aa finns 7 gånger, ab 4 gånger, ba 4 gånger och bb 12 gånger. De skattade sannolikheterna P (x t,x t+1 ) och P (x t+1 x t ) blir då: P (aa) = 7 27, P(ab) = 4 27, P(ba) = 4, P(bb) =12 27 27 P (a a) = 7 11, P(b a) = 4 11, P(a b) = 4, P(b b) =12 16 16 Markov, ordning 1: Ban n pr tusopå bensoch jakaränguräkerärudera. sochör son deng, aranoch o brsade ftyggörmed. ochartiljupppt odenuskvigdekadens, t deskarör vå hoch s ber föve, en boma vtärtit ha, Markov, ordning 2: Med går, tashet. Fares, var som jung När må lagar och vinrödet De dig för mott bröder dardin Jest, prett konom forslöver: 2 för icklara säkt. 5 Akblom i Jort at Markov, ordning 3: Mina arbort Likas»rätt milja derna, 60. Då när mina vand böner kommitt de ifrån nu Heles skapade: på Herren. Han införlåter. På David beskänning, ty 1 Mosebok (Lev Markov, ordning 4: Jag sågen pust att hjärtan för mig, jag lämna icke vid namn av havet, godelaktning. Till se mig, vagnens och mark ut bliva månade skola och sitt talats ting, Källkodning TSBK35 fö 1 p.17 Källkodning TSBK35 fö 1 p.18 Källkodning innebär att vi tilldelar binära sekvenser (kallade kodord) till symboler i ett alfabet. Mängden av alla kodord kalls för kod. En kod där antalet bitar i varje kodord är fixt kallas för en fixlängdskod. En kod där kodorden har olika antal bitar kallas för en variabellängdskod. Exempel: A = {a, b, c, d} Symbol Kod 1 Kod 2 Kod 3 Kod 4 Kod 5 a 00 0 0 0 0 b 01 0 1 10 01 c 10 1 00 110 011 d 11 10 11 111 111 Koda sekvensen abbacddcd med våra fyra koder Symbol Kod 1 Kod 2 Kod 3 Kod 4 Kod 5 a 00 0 0 0 0 b 01 0 1 10 01 c 10 1 00 110 011 d 11 10 11 111 111 Kod 1: 000101001011111011 Kod 2: 000011010110 Kod 3: 01100011110011 Kod 4: 010100110111111110111 Kod 5: 001010011111111011111

Egenskaper hos koder TSBK35 fö 1 p.23 Exempel på koder TSBK35 fö 1 p.24 Om man från en sekvens av kodord kan återskapa den ursprungliga källsekvensen kallas koden för unikt avkodbar. Om man kan känna igen kodorden direkt vid avkodning, kallas koden momentant avkodbar (instantaneous). Om inget kodord är prefix till något annat kodord kallas koden för en prefixkod. Dessa koder är trädkoder, dvs kodorden är löv i ett binärt träd. Alla prefixkoder är momentant avkodbara. Symbol Kod 1 Kod 2 Kod 3 Kod 4 Kod 5 a 00 0 0 0 0 b 01 0 1 10 01 c 10 1 00 110 011 d 11 10 11 111 111 Kod 1: Unikt avkodbar, momentant avkodbar Kod 2: Ej unikt avkodbar Kod 3: Ej unikt avkodbar Kod 4: Unikt avkodbar, momentant avkodbar Kod 5: Unikt avkodbar, ej momentant avkodbar TSBK35 fö 1 p.21 Är en given kod unikt avkodbar eller ej? Prestanda för koder TSBK35 fö 1 p.22 Gör en lista av alla kodord. Undersök alla par av element i listan för att se om något element är prefix till ett annat element. I sådana fall lägg till suffixet till listan, om det inte redan finns där. Repetera tills en av två saker händer: 1. Man hittar ett suffix som är ett kodord. 2. Man hittar inga nya suffix att lägga till listan. I fall 1 är koden inte unikt avkodbar, i fall 2 är koden unikt avkodbar. Hur bra en kod är ges av dess (medel)datatakt R (eng. rate) och anges i bitar/symbol. E{antal bitar per kodord} R = E{antal symboler per kodord} Eftersom det är komprimering vi sysslar med vill vi förstås att R ska vara så liten som möjligt. Det existerar en teoretisk lägre gräns för hur mycket vi kan komprimera signalen. Observera att R är ett mått på hur bra koden är i medel över alla möjliga sekvenser från källan. Den säger ingenting om hur bra koden är för en enskild källsekvens.

Krafts olikhet, kodordsmedellängd TSBK35 fö 1 p.27 Entropin som nedre gräns TSBK35 fö 1 p.28 Krafts olikhet: En momentant avkodbar kod (trädkod) med kodordslängderna l 1,...,l N existerar omm 2 l i 1 Olikheten gäller även för alla unikt avkodbara koder. Den brukar då kallas Kraft-McMillans olikhet. Kodordsmedellängd: Det finns en lägre gräns för hur bra en unikt avkodbar kod kan bli: N l p i log 2 p i = H(X t ) H(X t ) kallas för källans entropi (mer om det på följande föreläsningar). N l = p i l i [bitar/kodord] Om vi kodar en symbol per kodord så har vi att R = l Entropin som nedre gräns, forts. TSBK35 fö 1 p.25 Optimala koder TSBK35 fö 1 p.26 Bevis för l H(X t ) H(X t ) l = p i log 2 p i p i l i = = 1 ln 2 p i (log 2 1 p i log 2 2 l i )= p i (log 2 1 p i l i ) 2 l i p i log 2 p i ( 2 l i 1) = 1 N p i ln 2 ( 2 l i p i ) 1 (1 1) = 0 ln 2 p i En optimal kod för en källa är en kod sådan att det inte existerar andra koder med lägre l. En optimal kod är oftast inte unik, d.v.s. det existerar flera olika koder med samma prestanda. Det enklaste exemplet på detta är att bara byta nollor mot ettor och ettor mot nollor i kodorden. Ofta kan man även konstruera koder där uppsättningen av kodordslängder skiljer sig åt, men som har samma medelkodordslängd. där vi utnyttjat ln x x 1 samt Kraft-McMillans olikhet

TSBK35 fö 1 p.31 Övre gräns för optimala koder Övre gräns, forts. Det existerar en unikt avkodbar kod med l <H(X t )+1 Bevis: Låt l i = log 2 p i = log 2 p i + s i där 0 s i < 1 2 l i = = 2 log 2 p i s i p i 2 s i p i = 1 Kraft-McMillans olikhet är uppfylld, alltså existerar en unikt avkodbar kod med de givna kodordslängderna Vad är kodordsmedellängden? N l = p i l i = p i ( log 2 p i + s i ) = p i log 2 p i + p i s i < p i log 2 p i + p i = H(X t )+1 Den optimala koden kan ju inte vara sämre än denna kod, då vore det ingen optimal kod. Alltså gäller även för en optimal kod att l <H(X t )+1. OBS: Om p i =2 k i, i för heltal k i, så kan vi konstruera en kod med l = H(Xt ). Huffmankodning TSBK35 fö 1 p.29 TSBK35 fö 1 p.30 Enkel metod för att konstruera optimala koder. Börja med enskilda symboler som löv. Slå i varje steg ihop de två minst sannolika noderna till en inre nod. Sannolikheten för den nya noden är summan av de två ursprungliga noderna. Om det finns fler noder med samma sannolikhet att välja mellan spelar det ingen roll vilken vi väljer. När vi konstruerat hela kodträdet, skapar vi kodorden genom att sätta 0 resp. 1 på de utgående grenarna i varje nod. Vilken gren som sätts till 0 resp. 1 spelar ingen roll.