föreläsning 3: datakompressionsteori

15
Föreläsning 3: Föreläsning 3: Datakompressionsteori Datakompressionsteori TSBK02 Bild- och ljudkodning TSBK02 Bild- och ljudkodning Författare:Jörgen Ahlberg Översättning&modifiering:Robert Forchheimer

Upload: shae

Post on 19-Jan-2016

43 views

Category:

Documents


0 download

DESCRIPTION

TSBK02 Bild- och ljudkodning. Föreläsning 3: Datakompressionsteori. Författare:Jörgen Ahlberg Översättning&modifiering:Robert Forchheimer. Innehåll. Kodning & koder Kodträd and trädkoder Optimala koder Källkodningsteoremet. Del 1: Kodning & koder. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Föreläsning 3: Datakompressionsteori

Föreläsning 3:Föreläsning 3:DatakompressionsteoriDatakompressionsteori

TSBK02 Bild- och ljudkodningTSBK02 Bild- och ljudkodning

Författare:Jörgen AhlbergÖversättning&modifiering:Robert Forchheimer

Page 2: Föreläsning 3: Datakompressionsteori

InnehållInnehåll

1.1. Kodning & koderKodning & koder

2.2. Kodträd and trädkoderKodträd and trädkoder

3.3. Optimala koderOptimala koder KällkodningsteoremetKällkodningsteoremet

Page 3: Föreläsning 3: Datakompressionsteori

Del 1:Del 1: Kodning & koder Kodning & koder

Kodning:Kodning: Till varje källsymbol (eller grupp av Till varje källsymbol (eller grupp av symboler) tilldelas ett symboler) tilldelas ett kodordkodord från ett utvidgat från ett utvidgat binärt alfabet.binärt alfabet.

Typer av koder:Typer av koder:– FIFO: FIFO: Fixed input, fixed output.Fixed input, fixed output.– FIVO:FIVO: Fixed input, variable output.Fixed input, variable output.– VIFO:VIFO: Variable input, fixed output.Variable input, fixed output.– VIVO:VIVO: Variable input, variable output.Variable input, variable output.

FIVO och VIVO kallas FIVO och VIVO kallas variabellängd-kodervariabellängd-koder (VLC). (VLC). Bör vara Bör vara kommafriakommafria..

Page 4: Föreläsning 3: Datakompressionsteori

ExempelExempel

Antag en minnesfri källa medAntag en minnesfri källa med alfabet alfabet AA = { = {aa11, …, , …, aa44}} sannolikhetersannolikheter PP((aa11) = ½) = ½

PP((aa22) = ¼) = ¼PP((aa33) = P() = P(aa44) = 1/8) = 1/8..

aa11 FIFO:FIFO: 0000 FIVO:FIVO: 00aa22 0101 0101aa33 1010 110110aa44 1111 111111

Page 5: Föreläsning 3: Datakompressionsteori

Alla koder

Icke-singulära

Fyra olika klasserFyra olika klasser

a1

a2

a3

a4

0000

Singulära

00100110

Icke-singulära

100011110

Unikt avkodbara

010110111

Momentana

Unikt avkodbara(”kommafria koder”)

Momentana

Avkodningsproblem: 010 kanAvkodningsproblem: 010 kanbetyda betyda aa11aa44 eller eller aa22 eller eller aa33aa11..

Avkodningsproblem: 1100000000000000001…Avkodningsproblem: 1100000000000000001…är unikt avkodbart, men den första symbolen (är unikt avkodbart, men den första symbolen (aa33 eller eller

aa44) kan inte avkodas förrän den tredje ’1’ har kommit) kan inte avkodas förrän den tredje ’1’ har kommit

(Jämför 11010 och 110010).(Jämför 11010 och 110010).

Page 6: Föreläsning 3: Datakompressionsteori

DatakompressionDatakompression

Effektiva koder utnyttjar följande Effektiva koder utnyttjar följande egenskaper:egenskaper:– Olika symbolsannolikheterOlika symbolsannolikheter– Beroenden mellan symbolerna (minneskälla)Beroenden mellan symbolerna (minneskälla)– Accepterbar distorsionAccepterbar distorsion

Exempel:Exempel:– FIVO-exempletFIVO-exemplet– ””Symbol Symbol aa33 följer alltid efter följer alltid efter aa11”.”.– ””Spelar ingen roll om symbolen är Spelar ingen roll om symbolen är aa33 eller eller aa44””..

Page 7: Föreläsning 3: Datakompressionsteori

Betrakta åter det tidigare exemplet:Betrakta åter det tidigare exemplet:{{aa11, …, , …, aa44} = {0, 10, 110, 111}} = {0, 10, 110, 111}..

Kodorden kan ses som löv i ett Kodorden kan ses som löv i ett kodträdkodträd..

Trädkoder Trädkoder är är kommafria kommafria och och momentanamomentana. Inget . Inget kodord utgör början på (”prefix”) till något annat kodord utgör början på (”prefix”) till något annat kodord!kodord!

Del 2: Del 2: Kodträd och TrädkoderKodträd och Trädkoder

0

1

a1

0

1

a2

0

1

a3

a4

Page 8: Föreläsning 3: Datakompressionsteori

Kraft’s olikhetKraft’s olikhet

För en unikt avkodbar kod med För en unikt avkodbar kod med kodordslängderna kodordslängderna llii gäller gäller

Omvänt, om detta gäller för en viss Omvänt, om detta gäller för en viss uppsättning kodordslängder, så är det uppsättning kodordslängder, så är det möjligt att konstruera ett motsvarande möjligt att konstruera ett motsvarande kodträd.kodträd.

(Proof: Sayood 2.4)

Page 9: Föreläsning 3: Datakompressionsteori

Kraft’s olikhet och TrädkoderKraft’s olikhet och Trädkoder

Om K.I. gäller för en uppsättning Om K.I. gäller för en uppsättning kodordslängder så finns det en trädkod med kodordslängder så finns det en trädkod med dessa längder.dessa längder.

Bevis:Bevis: Skapa ett maximalt träd med storlek Skapa ett maximalt träd med storlek som bestäms av det längsta kodordet som bestäms av det längsta kodordet llmaxmax..

– Trädet har då Trädet har då 22llmaxmax löv. löv.– Placera ut kodorden, ansa trädet, och använd Placera ut kodorden, ansa trädet, och använd

KI för att visa att det finns tillräckligt många löv.KI för att visa att det finns tillräckligt många löv.– Låt oss illustrera. Låt oss illustrera.

Page 10: Föreläsning 3: Datakompressionsteori

l1

Kan inte användas: klipp bort!

Placera l1 i trädet.

Då försvinner 2lmax – l1 löv...

..och 2lmax – 2lmax – l1 = 2lmax (1 – 2-l1) löv återstår.

Placera l2 i trädet. Då återstår 2lmax (1 – 2-l1 – 2-l2) löv.

l2

l3l4

Efter att ha lagt ut N kodordslängder återstår 2lmax (1 – 2-l1) löv.

Detta är möjligt sålänge som K.I. gäller, dvs., Detta är möjligt sålänge som K.I. gäller, dvs., 2 2--ll11 << 1 1..

Försök med {li} = {1, 2, 3, 3}respektive {li} = {1, 2, 2, 3} !

lmax = 3 leder till följande träd:

Page 11: Föreläsning 3: Datakompressionsteori

Del 3: Del 3: Optimala koderOptimala koder

Kodordsmedellängden [bitar/kodord] Kraft’s olikhet

Minimera under bivillkoret

Om vi bortser från heltalsvillkoret får vi skall minimeras

Derivera:

Kraft’s olikhet:

Page 12: Föreläsning 3: Datakompressionsteori

Optimal kodordslängd -> entropigränsen nås!Optimal kodordslängd -> entropigränsen nås!

Del 3: Del 3: Optimala koderOptimala koder

Men vad gör vi åt heltalsbegränsningen?Men vad gör vi åt heltalsbegränsningen?llii = – = – loglog ppii är inte alltid ett heltal! är inte alltid ett heltal!

Minimera under bivillkoret

Välj där

Page 13: Föreläsning 3: Datakompressionsteori

KällkodningsteoremetKällkodningsteoremet

Antag att källan Antag att källan XX är minnesfri och skapa är minnesfri och skapa trädkoden för den utökade källan, dvs, block av trädkoden för den utökade källan, dvs, block av nn symboler.symboler.

Vi får då:Vi får då:

Man kan komma godtyckligt nära entropin!Man kan komma godtyckligt nära entropin!

Page 14: Föreläsning 3: Datakompressionsteori

I praktikenI praktiken

Två praktiska problem behöver lösas:Två praktiska problem behöver lösas:– Bit-tilldelningBit-tilldelning– HeltalsbegränsningenHeltalsbegränsningen

I teorin: välj I teorin: välj llii = – = – log log ppii

– Att avrunda uppåt är inte alltid bäst!Att avrunda uppåt är inte alltid bäst!– Exempel:Exempel: Binär källa Binär källa pp11 = 0.25, = 0.25, pp22 = 0.75 = 0.75

ll11 = – = – loglog 0.25 = 2 0.25 = 2ll22 = – = – loglog 0.75 = 1 (efter 0.75 = 1 (efter

avrundning)avrundning) Använd istället exempelvis Använd istället exempelvis Huffman algoritmenHuffman algoritmen

(D.Huffman, 1952) för att skapa en optimal trädkod!(D.Huffman, 1952) för att skapa en optimal trädkod!

Page 15: Föreläsning 3: Datakompressionsteori

SammanfattningSammanfattning

Kodning:Kodning: Tilldela binära kodord till (block av) Tilldela binära kodord till (block av) källsymboler.källsymboler.

VariabellängdskoderVariabellängdskoder (VLC) respektive (VLC) respektive fixlängdskoderfixlängdskoder.. Momentana koderMomentana koder,, Unikt avkodbara koder, Unikt avkodbara koder, Icke-Icke-

singulära, alla kodersingulära, alla koder Trädkoder Trädkoder är momentana.är momentana. TrädkoderTrädkoder och och Kraft’s olikhet. Kraft’s olikhet. Källkodningsteoremet.Källkodningsteoremet.