1 / 15

Föreläsning 3: Datakompressionsteori

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.

shae
Download Presentation

Föreläsning 3: Datakompressionsteori

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Innehåll • Kodning & koder • Kodträd and trädkoder • Optimala koder • Källkodningsteoremet

  3. Del 1: Kodning & koder • Kodning: Till varje källsymbol (eller grupp av symboler) tilldelas ett kodord från ett utvidgat binärt alfabet. • Typer av koder: • FIFO: Fixed input, fixed output. • FIVO: Fixed input, variable output. • VIFO: Variable input, fixed output. • VIVO: Variable input, variable output. • FIVO och VIVO kallas variabellängd-koder (VLC). Bör vara kommafria.

  4. Exempel • Antag en minnesfri källa med alfabet A = {a1, …, a4}sannolikheter P(a1) = ½P(a2) = ¼P(a3) = P(a4) = 1/8. • a1FIFO: 00FIVO: 0a20101a310110a411111

  5. Fyra olika klasser Singulära Icke-singulära Unikt avkodbara Momentana 0000 00100110 100011110 010110111 Alla koder Icke-singulära Unikt avkodbara (”kommafria koder”) Momentana a1a2a3a4 Avkodningsproblem: 010 kanbetyda a1a4 eller a2 eller a3a1. Avkodningsproblem: 1100000000000000001…är unikt avkodbart, men den första symbolen (a3 eller a4) kan inte avkodas förrän den tredje ’1’ har kommit(Jämför 11010 och 110010).

  6. Datakompression • Effektiva koder utnyttjar följande egenskaper: • Olika symbolsannolikheter • Beroenden mellan symbolerna (minneskälla) • Accepterbar distorsion • Exempel: • FIVO-exemplet • ”Symbol a3 följer alltid efter a1”. • ”Spelar ingen roll om symbolen är a3 eller a4”.

  7. a1 a2 0 0 a3 0 1 1 a4 1 Del 2: Kodträd och Trädkoder • Betrakta åter det tidigare exemplet:{a1, …, a4} = {0, 10, 110, 111}. • Kodorden kan ses som löv i ett kodträd. • Trädkoder är kommafria och momentana. Inget kodord utgör början på (”prefix”) till något annat kodord!

  8. Kraft’s olikhet • För en unikt avkodbar kod med kodordslängderna li gäller • Omvänt, om detta gäller för en viss uppsättning kodordslängder, så är det möjligt att konstruera ett motsvarande kodträd. (Proof: Sayood 2.4)

  9. Kraft’s olikhet och Trädkoder • Om K.I. gäller för en uppsättning kodordslängder så finns det en trädkod med dessa längder. • Bevis: Skapa ett maximalt träd med storlek som bestäms av det längsta kodordet lmax. • Trädet har då 2lmax löv. • Placera ut kodorden, ansa trädet, och använd KI för att visa att det finns tillräckligt många löv. • Låt oss illustrera.

  10. Kan inte användas: klipp bort! Försök med {li} = {1, 2, 3, 3}respektive {li} = {1, 2, 2, 3} ! lmax = 3 leder till följande träd: l1 l2 l4 l3 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. 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.,  2-l1< 1.

  11. Kraft’s olikhet Kodordsmedellängden [bitar/kodord] Del 3: Optimala koder Minimera under bivillkoret Om vi bortser från heltalsvillkoret får vi skall minimeras Derivera: Kraft’s olikhet:

  12. Del 3: Optimala koder Minimera under bivillkoret Optimal kodordslängd -> entropigränsen nås! Men vad gör vi åt heltalsbegränsningen?li = – logpi är inte alltid ett heltal! Välj där

  13. Källkodningsteoremet • Antag att källan X är minnesfri och skapa trädkoden för den utökade källan, dvs, block av n symboler. • Vi får då: • Man kan komma godtyckligt nära entropin!

  14. I praktiken • Två praktiska problem behöver lösas: • Bit-tilldelning • Heltalsbegränsningen • I teorin: välj li = – log pi • Att avrunda uppåt är inte alltid bäst! • Exempel: Binär källa p1 = 0.25, p2 = 0.75l1 = – log 0.25 = 2l2 = – log 0.75 = 1 (efter avrundning) • Använd istället exempelvis Huffman algoritmen (D.Huffman, 1952) för att skapa en optimal trädkod!

  15. Sammanfattning • Kodning: Tilldela binära kodord till (block av) källsymboler. • Variabellängdskoder (VLC) respektive fixlängdskoder. • Momentana koder, Unikt avkodbara koder,Icke-singulära, alla koder • Trädkoder är momentana. • Trädkoder och Kraft’s olikhet. • Källkodningsteoremet.

More Related