Datakompression fö 2 p.1 Krafts olikhet En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om N 2 l i 1 Bevis: Antag att vi har en trädkod. Låt l max =max{l 1,...,l N }. Utvidga trädet så att alla grenar har djupet l max. Ett kodord på djupet l i har 2 l max l i löv under sig på djupet l max. Mängderna av löv är disjunkta. Det totala antalet löv under kodord är mindre än eller lika med 2 l max. Vi har alltså N 2 l max l i 2 l max N 2 l i 1
Datakompression fö 2 p.2 Krafts olikhet, forts. Omvänt kan vi, givet kodordslängder l 1,...,l N som uppfyller Krafts olikhet, alltid konstruera en trädkod. Börja med ett fullständigt träd där alla grenar har djup l max. Antag, utan att förlora i generalitet, att kodordslängderna är sorterade i stigande ordning. Välj någon ledig nod på djup l 1 för det första kodordet och ta bort alla dess avkomlingar. Gör likadant för l 2 och kodord 2, o.s.v. tills vi har placerat ut alla kodorden.
Datakompression fö 2 p.3 Krafts olikhet, forts. Uppenbarligen kan vi placera ut ett kodord på djup l 1. För att algoritmen ska vara möjligt måste det i steg i finnas lediga löv på maxdjupet l max. Antalet kvarvarande löv är 2 l max i 1 j=1 2 l max l j =2 l max (1 i 1 j=1 2 l j ) > 2 l max (1 N 2 l j ) 0 j=1 där vi utnyttjat att Krafts olikhet är uppfylld. Det finns alltså lediga löv i varje steg, alltså kan vi konstruera en prefixkod med de givna kodordslängderna.
Datakompression fö 2 p.4 Kraft-McMillans olikhet Krafts olikhet kan visas gälla för alla unikt avkodbara koder, inte bara prefixkoder. Den benämns då Kraft-McMillans olikhet: En unikt avkodbar kod med kodordslängderna l 1,...,l N existerar om och endast om N 2 l i 1 Betrakta ( N 2 l i ) n, där n är ett godtyckligt heltal. N ( 2 l i ) n = N N i 1 =1 i n =1 2 (l i 1 +...+l i n )
Datakompression fö 2 p.5 Kraft-McMillans olikhet, forts. l i1 +...+ l in är längden av n stycken kodord från koden. Det minsta värde denna exponent kan ta är n, som skulle hända om alla kodord hade längden 1. Det största värdet exponenten kan ta är nl där l är den maximala kodordslängden. Summationen kan då skrivas om som N ( 2 l i ) n = nl k=n A k 2 k där A k är antalet kombinationer av n kodord som har den kombinerade längden k. Det finns maximalt 2 k binära sekvenser av längden k. Eftersom koden är unikt avkodbar, måste det gälla att för att vi ska kunna avkoda. A k 2 k
Datakompression fö 2 p.6 Kraft-McMillans olikhet, forts. Vi har alltså Vilket ger oss ( N 2 l i ) n nl k=n 2 k 2 k = nl n +1 N 2 l i (n(l 1) + 1) 1/n Detta gäller för alla n, inklusive när vi låter n gå mot oändligheten, vilket alltså slutligen ger oss N 2 l i 1 Omvändningen till olikheten har vi redan, genom att vi kan konstruera en prefixkod med givna kodordslängder om de uppfyller Krafts olikhet.
Datakompression fö 2 p.7 Godhetsmått Det godhetsmått vi har för att mäta hur bra en kod är är medeldatatakten R (oftast bara kallad datatakten eller takten). R = E{# bitar i kodordet} E{# symboler per kodord} [bitar/symbol] Eftersom det är datakomprimering vi sysslar med, så vill vi att våra koder ska ha så låg takt som möjligt. Om vi till att börja med antar att vi har en minnesfri källa X j och kodar en symbol i taget med en prefixkod, så ges R av R = l = p i l i [bitar/symbol] där L är storleken på alfabetet och p i sannolikheten för symbol i. l är kodens kodordsmedellängd [bitar/kodord].
Datakompression fö 2 p.8 Teoretisk nedre gräns Givet att vi har en minnesfri källa X j och vi kodar en symbol i taget med en prefixkod. Då begränsas kodordsmedellängden l (dvs datatakten) nedåt av L l p i log 2 p i = H(X j ) H(X j ) kallas för källans entropi.
Datakompression fö 2 p.9 Teoretisk nedre gräns, forts. Betrakta skillnaden mellan entropin och kodordsmedellängden H(X j ) l = = p i log p i p i l i = p i (log 1 log 2 l i )= p i 1 ln 2 1 (1 1) = 0 ln 2 p i (log 1 l i ) p i p i log 2 l i p i ( 2 l i p i 1) = 1 ln 2 ( L där vi utnyttjat ln x x 1 samt Krafts olikhet p i 2 l i p i )
Datakompression fö 2 p.10 Shannons informationsmått Vi vill ha ett mått I på information som är kopplat till sannolikheterna för händelser. Några önskvärda egenskaper: Informationen I(A) för en händelse A ska bara bero på sannolikheten P (A) för händelsen. Ju lägre sannolikhet för en händelse, desto större information. Om sannolikheten för en händelse är 1, så ska informationen vara 0. Informationen ska vara en kontinuerlig funktion av sannolikheten. Om två oberoende händelser A och B inträffar så ska informationen vara summan av informationerna I(A)+I(B) Detta leder till informationen ska vara ett logaritmiskt mått.
Datakompression fö 2 p.11 Informationsteori Informationen I(A; B) som erhålls om en händelse A, då händelse B inträffar definieras som I(A; B) = log b P (A B) P (A) där vi antar att P (A) 0och P (B) 0. I fortsättningen antar vi, om inget annat anges, att b =2. Enheten för information kallas då bit. (Omb = e kallas enheten nat.) I(A; B) är symmetrisk i A och B: I(A; B) =log P (A B) P (A) =log P (AB) P (A)P (B) = =log P (B A) P (B) = I(B; A) Därför kallas informationen även för ömsesidig information.
Datakompression fö 2 p.12 Informationsteori, forts. Vidare gäller I(A; B) log P (A) med likhet till vänster om P (A B) =0och likhet till höger om P (A B) =1. I(A; B) =0innebär att händelserna A och B är oberoende. log P (A) är den informationsmängd som behövs för att vi ska kunna slå fast att händelsen A inträffat. I(A; A) =log P (A A) P (A) = log P (A) Vi definierar självinformationen hos händelsen A som I(A) = log P (A)
Datakompression fö 2 p.13 Informationsteori, forts. Tillämpar vi definitionerna på händelserna {X = x} och {Y = y} får vi I(X = x) = log p X (x) och I(X = x; Y = y) =log p X Y (x y) p X (x) Dessa är reellvärda funktioner av den stokastiska variabeln X resp. den stokastiska variabeln (X, Y ), så deras medelvärden är väldefinierade. H(X) = E{I(X = x)} = p X (x i )logp X (x i ) kallas för entropin (eller osäkerheten) för den stokastiska variabeln X.
Datakompression fö 2 p.14 Informationsteori, forts. I(X; Y ) = E{I(X = x; Y = y)} = = M j=1 p XY (x i,y j )log p X Y (x i y j ) p X (x i ) kallas för (medelvärdet av) den ömsesidiga informationen mellan de stokastiska variablerna X och Y.
Datakompression fö 2 p.15 Informationsteori, forts. Om (X, Y ) betraktas som en stokastisk variabel får vi H(X, Y )= M p XY (x i,y j )logp XY (x i,y j ) j=1 Då följer att medelvärdet av den ömsesidiga informationen kan skrivas som I(X; Y ) = E{log p X Y } = E{log p XY } p X p X p Y = E{log p XY log p X log p Y } = E{log p XY } E{log p X } E{log p Y } = H(X)+H(Y ) H(X, Y )
Datakompression fö 2 p.16 Informationsteori, forts. Användbar olikhet ( IT-olikheten ) log r (r 1) log e med likhet om och endast om r =1. Kan också skrivas ln r r 1 Om X antar värden i {x 1,x 2,...,x L } så gäller att 0 H(X) log L med likhet till vänster om och endast om det finns något i sådant att p X (x i )=1och med likhet till höger om och endast om p X (x i )=1/L för alla i =1,...,L.
Datakompression fö 2 p.17 Informationsteori, forts. Bevis vänster olikhet: p X (x i ) log p X (x i ) =0, p X (x i )=0 > 0, 0 <p X (x i ) < 1 =0, p X (x i )=1 Således gäller att H(X) 0 med likhet om och endast om p X (x i ) är antingen 0 eller 1 för varje i, men då gäller att p X (x i )=1för exakt ett i.
Datakompression fö 2 p.18 Informationsteori, forts. Bevis höger olikhet: H(X) log L = = = ( p X (x i )logp X (x i ) log L p X (x i )log 1 L p X (x i ) 1 p X (x i )( L p X (x i ) L 1 L = (1 1) log e =0 p X (x i )) log e 1) log e med likhet omm p X (x i )= 1 L för alla i =1,...,L
Datakompression fö 2 p.19 Informationsteori, forts. Den betingade entropin hos X givet händelsen Y = y j är H(X Y = y j ) = p X Y (x i y j )logp X Y (x i y j ) Det gäller att 0 H(X Y = y j ) log L Den betingade entropin för X givet Y definieras som H(X Y ) = E{ log px Y } = = M p XY (x i,y j )logp X Y (x i y j ) j=1 Det gäller att 0 H(X Y ) log L
Datakompression fö 2 p.20 Informationsteori, forts. Vi har även H(X Y )= M p XY (x i,y j )logp X Y (x i y j ) j=1 = M p Y (y j )p X Y (x i y j )logp X Y (x i y j ) j=1 = M p Y (y j ) j=1 p X Y (x i y j )logp X Y (x i y j ) = M p Y (y j )H(X Y = y j ) j=1
Datakompression fö 2 p.21 Informationsteori, forts. Vi har p X1 X 2...X N = p X1 p X2 X 1 p XN X 1...X N 1 vilket leder till den s.k. kedjeregeln H(X 1 X 2...X N )= H(X 1 )+H(X 2 X 1 )+ + H(X N X 1...X N 1 ) Vi har även att I(X; Y ) = H(X) H(X Y )= = H(Y ) H(Y X)
Datakompression fö 2 p.22 Informationsteori, forts. Fler intressanta olikheter H(X Y ) H(X) med likhet om och endast om X och Y är oberoende. I(X; Y ) 0 med likhet om och endast om X och Y är oberoende. Om f(x) är en funktion på X, så gäller H(f(X)) H(X) H(f(X) X) =0 H(X, f(x)) = H(X)
Datakompression fö 2 p.23 Entropi för källor Entropin, eller entropitakten (entropy rate) för en stationär stokastisk källa X n definieras som lim n lim n 1 n H(X 1...X n )= 1 n (H(X 1)+H(X 2 X 1 )+...+ H(X n X 1...X n 1 )) = lim H(X n X 1...X n 1 ) n För en minnesfri källa är entropin lika med första ordningens entropi H(X n ).
Datakompression fö 2 p.24 Entropi för en markovkälla Entropin för en markovkälla X n av ordning k ges av men kan också räknas ut som H(X n X n 1...X n k ) L k j=1 w j H(S n+1 S n = s j ) dvs ett viktat medelvärde av entropin för de utgående sannolikheterna från varje tillstånd.