Bildlagring och - komprimering

Relevanta dokument
Föreläsning 7: Bild- och videokodning

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

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.

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

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

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

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

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.

FLAC (Free Lossless Audio Coding)

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

Pixelgrafik. Utdrag ur Adobe Photoshops handbok. Om bitmappsbilder (pixelbilder) Om vektorgrafik (kallas ibland objektgrafik)

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

Torstens Digitalbildguide

Föreläsning 17 - Komprimering

Adaptiv aritmetisk kodning

Bilder... Dagens föreläsning. Objektgrafik. Objektgrafik. TNMK30, 2010 Föreläsning

Shannon-Fano-Elias-kodning

Så skapas färgbilder i datorn

TSBK04 Datakompression. Övningsuppgifter

Burrows-Wheelers transform

TSBK04 Datakompression Övningsuppgifter

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

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

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

Laboration 4: Digitala bilder

Föreläsning 7. Felrättande koder

Digital bildhantering

Spektrala transformer Laboration: JPEG-kodning

Introduktion till MATLAB

Modul 1: Komplexa tal och Polynomekvationer

Övning 6 - Tillämpad datalogi 2012

SF1624 Algebra och geometri Tentamen med lösningsförslag onsdag, 11 januari 2017

Välkommen till Flyerskola!

Spektrala transformer Laboration: JPEG-kodning

Moment Viktiga exempel Övningsuppgifter

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

SF1624 Algebra och geometri Tentamen Torsdag, 9 juni 2016

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 =

5.7. Ortogonaliseringsmetoder

Grafisk manual (kort version)

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

Linjär Algebra M/TD Läsvecka 2

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Lab 3 Kodningsmetoder

Moment 6.1, 6.2 Viktiga exempel Övningsuppgifter T6.1-T6.6

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

M = c c M = 1 3 1

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

Projekt 3: Diskret fouriertransform

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

MVE022 Urval av bevis (på svenska)

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

F3 Datarepresentation teckenkodning och datakompression

Matriser och vektorer i Matlab

Kompression av ljud och bild

Laboration 0: Del 2. Benjamin Kjellson Introduktion till matriser, vektorer, och ekvationssystem

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

Exportera karta juni 2010

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 3: MULTIPEL REGRESSION.

-med fokus på robusthet

ppi = 72 ppi = 18 ppi = 36 DIGITALA BILDER (pixelbaserad) DIGITAL RASTRERING ppi (pixels per inch) Sasan Gooran (HT 2003)

MMA132: Laboration 2 Matriser i MATLAB

Interpolation Modellfunktioner som satisfierar givna punkter

Grafisk Teknik. Rastrering. Övningar med lösningar/svar. Sasan Gooran (HT 2013)

Föreläsning 1: Bild- och ljudkodning

Träd och koder. Anders Björner KTH

SeniorNet Huddinge

Våra grafiska riktlinjer

TEM Projekt Transformmetoder

LITEN GRAFISK HJÄLPREDA

M0038M Differentialkalkyl, Lekt 15, H15

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Subtraktion. Räkneregler

Filformat / bildformat

Kodning av ansiktstextur med oberoende komponenter

DIGITAL RASTRERING. DIGITALA BILDER (pixelbaserad) ppi (pixels per inch) Sasan Gooran

1, 2, 3, 4, 5, 6,...

De olika exportmetoderna för rasterfiler inne i ArcMap är BMP, TIFF, GIF och PNG.

Att lyckas med utskrifter

Hjälpmedel: inga Chalmers tekniska högskola Datum: kl Telefonvakt: Peter Hegarty (a) Låt (3p)

Algoritmer, datastrukturer och komplexitet

Experimentella metoder 2014, Räkneövning 1

BILDKODNING TEORI. Källkodning. Analogt - och samplat

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

Prov i matematik Civilingenjörsprogrammen EL, IT, K, X, ES, F, Q, W, Enstaka kurs LINJÄR ALGEBRA

Regionala Cancercentrum Logotyp

Digital- och datorteknik

DIGITAL KOMMUNIKATION

Övningar. MATEMATISKA INSTITUTIONEN STOCKHOLMS UNIVERSITET Avd. Matematik. Linjär algebra 2. Senast korrigerad:

. (2p) 2x + 2y + z = 4 y + 2z = 2 4x + 3y = 6

Digital- och datorteknik

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

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

Transkript:

Bildlagring och - komprimering Staffan Romberger, srom@nada.kth.se Nada (numerisk analys och datalogi)

Bildrepresentation Sändare (skapare) och mottagare (användare) måste vara överens om hur bildinformation lagras. Man vill ofta att bilder ska ta så lite plats (tid) som möjligt. Tre grundtyper: bildpunktsrepresentation (bitkarta, bildpunktskarta, pixelbild) objektrepresentation program (Postscript) De nedre kan innehålla dem ovanför. Vi ska enbart se på bildpunktsrepresentation. Bildkomprimering Två grundtyper: Icke förstörande bilden kan återskapas Förstörande man kastar information som är mindre viktig för bildens kvalitet Icke förstörande representation kallas ofta bildkodning. Många av metoderna kan också användas för andra data än bilder.

Bildkodning Varje metod för kodning innebär vissa överenskommelser mellan sändare och mottagare. Data för en kodad bild bör innehålla antalet bildpunkter per rad, antalet rader, ev. antalet bitar per bildpunkt, vissa för metoden specifika uppgifter. Vanliga varianter: bitkarta med 72 bildpunkter per tum RGB-bild med 5 bitar per färg och en extra bit RGB-bild med 8 bitar per färg CMYK-bild med 8 bitar per färg

Indexerad färgbild När antalet färger i bilden är litet i förhållande till antalet möjliga färger kan lagring med färgtabell (indexerad bild) vara bra. Istället för att lagra färgkoordinater för varje bildpunkt ger man varje färg ett nummer (index) och kompletterar med en tabell där elementet med ett visst index beskriver denna färg. Man kan använda någon fördefinierad färgtabell eller en färgtabell som är anpassad till bilden. En standardfärgtabell som används ofta på webben har 6 nivåer av varje färg, dvs. 216 färger. När det är fler färger i bilden än i färgtabellen kan man»runda av» till närmaste färg i tabellen eller använda»rastrering» (dithering).

Rastrering Vissa tryckmetoder (bildpresentationsmetoder) medger endast att man trycker (visar) två nivåer av varje färg (utan färg/med färg). Man simulerar olika färgstyrkor genom att trycka (visa) olika andelar av ytan med färg. Motsvarande idé kan också användas för att använda ett litet antal färger för att simulera ett större antal färger.

Kodningsteori Representera ett meddelande med ett (kod)ord som är en följd symboler ur ett alfabet. { } Meddelanden: M = m 1, m 2,, m n Alfabet: A = {! 1,! 2,,! m } Kodord: K = { k 1, k 2,, k n } l i är längden (antalet symboler) hos kodordet k i. Kod: en ett-till-ett-avbildning mellan M och K. Exempel 1: Den telegrafiska koden. Meddelanden: M = {a, b,,?, paus mellan ord} Alfabet: A = {.,, paus, längre paus} Kodord: K = {. paus, paus,,....paus, längre paus} Kod: {<a,. paus>,, <paus mellan ord, längre paus>} Avkodbarhet En kod är avkodbar om man för varje följd av kodord entydigt kan bestämma gränserna mellan kodorden.

Kodningsteori forts. Exempel 2: M = {<P, a>, <Q, ab>, <R, ba>} Hur ska abaababa avkodas? Förslag 1: PRPRR Förslag 2:QPQQP En kod är direkt avkodbar om inget kodord är början på ett annat kodord. En kod med ett alfabet med D symboler kan vara direkt avkodbar endast om (nödvändigt men inte tillräckligt villkor) n " D!l i #1, (Kraft Szilards olikhet). i =1 Exempel 3: I exempel 2 är D!l i " = 2!1 + 2!2 + 2!2 = 1 men koden är ändå inte direkt avkodbar. Däremot är följande kod vars kodord har samma längder direkt avkodbar: K = {<P, a>, <Q, ba>, <R, bb>} direkt avkodbar

Kodningsteori forts. I praktiken är ofta alfabetet A = {0, 1} med D=2. Händelseschema Att de olika meddelandena m 1, m 2,K, m n förekommer med sannolikheterna p 1, p 2,K, p n skrivs ibland som ett händelseschema:! m 1 m 2 K m n $ # & " p 1 p 2 K p n % Kodordens medellängd är L = n! i=1 p i l i

Optimal kodning Man vill ofta minimera kodordens medellängd. Det gör man genom att välja korta kodord för vanliga meddelanden medan ovanliga meddelanden ges längre kodord. 2 I en optimal kod är l * log p i = i 2 log D och att minimivärdet på kodordens medellängd blir L * = n " i =1! p i 2 log p i 2 log D De optimala värdena på l * i är inte alltid heltal men det går alltid att konstruera en kod där l * i! l i < l * i +1 och därmed L *! L < L * +1..

Redundans, övermeddelanden Ett mått på en kods ineffektivitet är dess redundans: r = L! L*. Man kan minska L redundansen genom att koda följder av meddelanden. Exempel 4: Tre lika sannolika händelser kan kodas {<T, 0>, <U, 10>, <V, 11>} vilket ger L=1,667 med L*=1,585 och r=4,9 %. Med övermeddelanden av längd 2 kan vi få koden {<TT, 000>, <TU, 001>, <TV, 010>, <UT, 011>, <UU, 100>, <UV, 101>, <VT, 110>, <VU, 1110>, <VV, 1111>} med L=1,611 och r=1,61 %.

Entropi Entropin beskriver valfriheten (osäkerheten) i modellen. Stor valfrihet motsvarar hög entropi H =!" p 2 i log p i. Entropin motsvarar det antal bitar som i medeltal åtgår för att koda en händelse i modellen. Exempel 5: Två lika sannolika händelser L(0,5; 0,5)= (0,5( 1)+0,5( 1))=1 En händelse med visshet L(1)= (1 0)=0 Sannolikheterna 0,2; 0,5 och 0,3 L(0,2;0,5;0,3)= =1,4855

Följdlängdskodning radlängd: 10, antal rader: 8, 1 bit per bildpunkt 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 80 bitar Med 3 bitars följdlängder, radlängd: 10, antal rader: 8, 1 bit per bildpunkt 7 0 3 0 3 3 2 2 1 7 2 1 7 2 2 2 1 4 1 3 7 5 3 2 7 0 3 27 längder om 3 bitar = 81 bitar Med allt som en lång rad, 3 bitars följdlängder, radlängd: 10, antal rader: 8, 1 bit per bildpunkt 7 0 3 3 3 2 3 7 3 7 4 2 1 4 4 7 5 3 7 0 5 21 följdlängder om 3 bitar = 63 bitar

följdlängdskodning forts. En metod för följdlängdskodning av flertonsbilder används i Postscript. n x 1 x n+1 0 n<128 representerar n+1 bytes nämligen x 1 x n+1 Exempel: 2 65 66 67 representerar 65 66 67 n x 129 n<255 representerar en byte med värdet x upprepad 257 n gånger Exempel: 253 65 representerar 65 65 65 65 128 används som slut-på data

Prediktiv kodning Antag att den aktuella bildtypen normalt följer någon regel. Ange var bilden avviker från regeln och sänd den kodade»felbilden». Regel: är medelvärdet av. Antag att bildpunkter utanför bilden är vita. Ur bilden får vi då prediktionen och där bild prediktion sätter vi felbilden till svart och sänder felbilden. prediktion felbild Mottagaren kan rekonstruera bilden som prediktion xor felbild.

Aritmetisk kodning Vid aritmetisk kodning representeras ett meddelande av ett intervall. intervallet ligger mellan 0 och 1 när meddelandet blir längre minskar intervallet en sannolik händelse reducerar intervallet bara lite Exempel Modell a 0,2 [0;0,2) e 0,3 [0,2;0,5) i 0,1 [0,5;0,6) o 0,2 [0,6;0,8) u 0,1 [0,8;0,9)! 0,1 [0,9;1,0) Tecknet! signalerar slut på meddelandet. Låt meddelandet vara eaii!. initialt [0; 1) efter e [0,2; 0,5) a [0,2; 0,26) i [0,23; 0,236)

i [0,233; 0,2336)! [0,23354; 0,2336) Man kan sända det kodade meddelandet inkrementellt, så fort en siffra är säker. Man kan använda heltalsaritmetik där antalet siffror som behövs beror på antalet siffror i sannolikheterna.

Fraktalkomprimering Fraktalkomprimering bygger på följande idé. Tag en bild, kombinera ett antal transformerade kopior av bilden till en ny bild Upprepa denna process Resultatet blir i stort sett oberoende av utgångsbilden men beror på transformationerna. Vid fraktalkomprimering är det önskade slutresultatet givet. Man söker en uppsättning transformationer så att processen konvergerar mot det önskade slutresultatet. Det som överförs är en kodad beskrivning av transformationerna.

fraktalkomprimering forts. Konstruera blockbibliotek Dela upp bilden i kvadratiska bildblock Välj en mängd biblioteksblock som har dubbelt så lång sida som bildblocken Klassificera biblioteksblocken i kantblock, jämna block och brokiga block Jämna block sparas ej, brokiga block sparas och kantblock med sina speglingar och vridningar sparas i normaliserad form Alla block som sparas skalas till bildblockens storlek Koda ett bildblock Klassificera bildblocket Ett jämnt block kodas med sitt medelvärde Ett brokigt block kodas med mest lika biblioteksblock Ett kantblock normaliseras och kodas med mest lika kantblock med uppgift om normaliseringen För varje kvadrant av bildblocket beräknas representationens avvikelse.

fraktalkomprimering forts. Om 1 2 kvadranter avviker mycket kodas dessa i sin tur Om 3 4 kvadranter avviker mycket kodas alla fyra var för sig Avkodning Starta med en godtycklig bild Genomför de kodade transformationerna tills bilden inte ändras nämnvärt

Graphics interchange format Gif, Jpeg och PNG är bildformat som används på webben. Gif använder LZW, klarar upp till 256 färger med hjälp av färgtabell, använder 2 till 8 bitar per färgindex och upp till 12 bitar per tabellindex. Det finns två versioner: GIF87a och GIF89a. Gifs färgpaletter har 2 till 256 färger. Exempel: En bild med en enda bildpunkt. Huvud signatur och version (6 byte) 'GIF89a' Fönsterbeskrivning fönsterbredd (2 byte) 00000000 00000001 fönsterhöjd (2 byte) 00000000 00000001 flaggor (1 byte) 11110000 (global color table flag, color resolution, sort flag, size of global color table)

bakgrund (1 byte) 00000000 bildpunktsform (1 byte) 00000000 Bildbeskrivning bildseparator (1) 0x2C horisontellt bildläge (2 byte) 00000000 00000000 vertikalt bildläge (2 byte) 00000000 00000000 bildbredd (2 byte) 00000000 00000001 bildhöjd (2 byte) 00000000 00000001 flaggor (1 byte) 00000000 (local color table flag, interlace flag, sort flag, reserved, size of local color table) Global färgtabell färg 0 (3 byte) färg 1 (3 byte) 0xFF0000 0x000000 Bilddata minsta kodlängd (1 byte) 00000010 blockstorlek (1 byte) 00000010 LZW-data () 01000100

00000001 slutblock (1 byte) 00000000 Avslutning avslutning (1 byte) 0x3B Utskrift av bildfilen genererad med Photoshop:

LZW Exempel: När blir LZW särskilt effektivt? a aa aaa aaaa aaaaa aaaaaa dvs. när successiva meddelandeföljder består av den längsta tidigare följden och ett extra meddelande. Låt teckenlängden vara n=8 bitar Koda med 9 12 bitar. Låt 2 koder ha speciell betydelse. Med 254 kodord med 9 bitar kan vi koda en meddelandeföljd med (1+254) 254/2 = 32 385 meddelanden med 8 bitar. det ger kompressionen 1:113. Med upp till 12 bitar blir det 254 kodord med 9 bitar: 2 286 bitar 510 kodord med 10 bitar: 5 100 bitar 1 022 kodord med 11 bitar: 11 242 bitar 2 046 kodord med 12 bitar: 24 552 bitar

Totalt kodord 43 180 bitar för att koda en meddelandeföljd med 7 344 028 meddelanden med 8 bitar vilket ger komprimeringen 1:1 361. Exempel: Hur ser ett dåligt fall ut? aabacadaea dvs. ingen meddelandeföljd med två meddelanden förekommer två gånger. Då blir»komprimeringen» 1:0,89.

Huffmankodning Huffmankodning är en metod för att koda meddelanden m 1 m n med sannolikheterna p 1 p n. Kombinera successivt de två meddelandena med minst sannolikhet till ett nytt. Sluta när två meddelanden återstår. Låt kodorden för de meddelanden som givit upphov till dessa sluta med 0 resp. 1. Gå vidare med beståndsdelarna. A B C D E F G H 0,3 0,2 0,15 0,1 0,1 0,05 0,05 0,05 D' 0,2 G' 0,1 B' 0,4 C' 0,3 F' 0,15 A' 0,6 A' 0 B' 1 A 00 C' 01 B 10 D' 11 C 010 F' 011 D 110 E 111 F 0110 G' 0111 G 01110 H 01111

Tiff Tiff (Tagged image file format) medger många olika lagringssätt. Det är därför ett stort jobb att skriva program som packar upp tiff-bilder men inte särskilt svårt att lagra en tiff-bild.

Jpeg Jpeg (Joint photographic experts group) används mycket på webben och är normalt»förstörande». Byt färgkoordinater från RGB till YCbCr Y = 0, 299R + 0,587G + 0,114B Cb = 0,1687R! 0, 3313G + 0, 5B Cr = 0, 5R! 0, 4187G! 0, 0813B Y innehåller intensitet och Cb och Cr innehåller kulör. Lagra kulörkomponenterna med lägre rumsupplösning R R GB GB Y Y R R GB GB Y Y Cb Cr 12 värden 6 värden Dela in i delbilder som är 8 8 rutor

Beräkna cosinustransformen (DCT) F(u, v) = 1 4 C(u)C(v)! $ 7 7 (2x +1)u" (2y +1)v" '! ## f (x, y)cos cos %& x =0 y =0 16 16 () + med C(z) =, 1 / 2, z = 0-1, z * 0 F(0, 0) anger medelvärdet och t.ex. F(2,3) anger mängden av mönster 2, 3.

Jpeg forts. Laga skillnaden mellan i akuellt och föregående block. Avrunda övriga koefficienter dvs. dividera koefficienterna med lämpliga tal och avrunda kvoten till heltal. Koda och lagra koefficienterna med ett slags Huffmankod. Jpeg är bra för»fotografiska» bilder men ej för bilder med få färger och tydliga konturer.

Cosinustransformen Den diskreta cosinustransformen i 1 dimension Låt f vara en n-elements radvektor med data. g u = eller k u = 1 n /2 k u n $ x=1 f x cos % 1/ 2, u = 0 & ' 1, u > 0 (2x "1)u# 2n g = fcd där C (2i "1) j# ij = cos 2n D = diag(1/ 2 1 1) / n /2) Inversen ges av n 1 f x = n /2 " k u g u cos u=1 (2x #1)u$ 2n eller f = gdc T. Transformen är förlustfri bortsett från avrundningsfel.

Komprimering med DCT Vi kan studera effekten av minskad precision i koefficienterna genom att beräkna g u " = a u floor(g u /a u ) Med f = och a = [ 1 1 1 1 1 1 1 1] [ 2 2 2 2 2 2 2 2] [ 4 4 4 4 4 4 4 4] [ 8 8 8 8 8 8 8 8] [ 16 16 16 16 16 16 16 16] [128 128 128 128 128 128 128 128] [ 1 1 1 1 1 1 256 256] [ 1 1 1 1 16 16 64 128] [ 1 2 4 8 16 32 64 128] [ 1 1 1 1 1 1 1 2] [ 1 1 1 1 1 1 2 4] [ 1 1 1 1 1 2 4 8] [ 1 1 1 1 2 4 8 16] får man

2D cosinustransform Låt F xy vara en n n-bild. Transformen ges av G uv = 1 2n k u k v n n $ y=1 (2x "1)u# $ F xy cos cos 2n x=1 med inversen F xy = 1 2n eller n n $ v=1 (2x "1)u# $ k u k v G uv cos cos 2n u=1 G=DC T FCD och F=CDGDC T. Med F = 136 131 135 139 135 138 139 145 139 146 132 146 135 133 138 134 148 145 140 144 148 132 134 149 149 145 142 132 137 137 139 143 (2y "1)v# 2n (2y "1)v# 2n

149 140 132 139 150 146 145 130 141 137 144 145 131 133 134 149 132 143 146 146 133 146 144 135 139 135 143 144 132 134 135 143 blir transformen: 1117 5 5-5 6 3-1 -4-2 0 4 5 7-5 -6 1-10 -7-4 -12-2 5 2-7 -4-7 -3 3-3 5 2-2 -2-4 3 10 0 0 3 6 2-4 3-6 -6-1 6 1 0-2 6-11 15-3 8 3 6-3 -9 11 0-1 -4 2

Wavelets (vågletter?) 1D Låt f=[1 2 3 4 5 6 7 8] vara data. Bilda medelvärden (f(i)+f(i+1))/2, i=1, 3, och differenser f(i) f(i+1), i=1, 3, som ger g 1 =[1,5 3,5 5,5 7,5 1 1 1 1] ur vilket f kan återskapas. Differenserna tenderar att vara små och kan ev. ersättas med 0 eller lagras med färre bitar. Bearbeta medelvärdena på samma sätt tills ett medelvärde återstår. g 2 =[2,5 6,5 2 2 1 1 1 1] g 3 =[4,5 4 2 2 1 1 1 1] Vi provar med att sätta de tre sista komponenterna till 0: g' 3 =[4,5 4 2 2 1 0 0 0] g' 2 =[2,5 6,5 2 2 1 0 0 0] g' 1 =[1,5 3,5 5,5 7,5 1 0 0 0] f'=[1 2 3,5 3,5 5,5 5,5 7,5 7,5] f och f' skiljer sig ganska lite.

Vågletter i 2D Gör fullständig transform av raderna därefter av kolumnerna eller gör växelvis rader och kolumner. (Sök formulering som matrisoperationer.)

Singulärvärdesfaktorisering Ett sätt att skriva en bild, f, är som f=ugv H. Det är intressant om h.l. kan skrivas med färre bitar än v.l. och speciellt om man lätt med antalet bitar kan styra skillnaden mellan h.l. och v.l. Det kan göras med U och V som ortogonala matriser och g som en diagonalmatris diag (λ): f = n # T " i u i v i i=1 där är u i egenvektorer till ff T, v i är egenvektorer till f T f och λ i är motsvarande egenvärden.

Exempel " 1 0 0% $ ' Med f = 2 1 1 $ ' blir # 0 0 1& # 0,319 0,447 0,835 & % ( U = 0,934 0 "0,357 % (, $ 0,160 "0,894 0,418 ' # 0,835 0,447 0,319 & % ( V = 0,357 0 "0,934 % ( och $ 0,418 "0,894 0,160 ' " = 6,85 1 0,146 ( ) T. Om f k = k # T " i u i v i så är f " f k = $ # i. i=1 n i= k +1 Med [U,D,V]=svd(f) i Matlab (för»singular value decomposition») motsvarar D ".

Aritmetisk kodning Låt ett händelseschema beskrivas av hs[1:nhs] med komponenterna sym för symbol p för frekvens och lb för intevallets nedre gräns. Låt meddelandet vara k och k.next vara nästa symbol. Kodning lb := 0; w := k.next; l := 1; while (w "!") for i := 1:nhs if (hs[i].sym=w) break; end lb := lb+l*hs[i].lb; l := l*hs[i].p; w := k.next; end % Det kodade meddelandet är ett % tal i [lb,lb+l).

Avkodning % Låt det kodade meddelandet % vara p w := ""; k := ""; while (w "!") for i := 1:nhs if (p hs[i].lb) break; end p := (p-hs[i].lb)/hs[i].p; w := hs[i].sym; k := k+w; end

Litteraturförteckning på svenska Låt.tex-filen innehålla t.ex.: \usepackage{authordate1-4} Som \cite{ab} \cite{da} Ångström~\cite{aa} \cite{bb} \cite{cc} \cite{dd} skriver. Alltid något. \bibliographystyle{authordate2} \bibliography{srom}.bib-filen: @book{ab, title = {Om m{å}tt -- 2}, author = {Lillen {Å}ngstr{ö}m}, publisher = {Addison \& Wesley}, year =1998} @book{bb,

title = {Om vikt}, author = {Lillen {Ä}rlig}, publisher = {Addison \& Wesley}, year =1996} Gör >latex fil >bibtex fil Gå in i srom.bbl och justera bokstavsordningen. >latex fil som ger

Det går nog att hitta ett sätt att få Bibtex att sortera rätt, ev. med Babelbib.

Mall för stordia Det som ska vara med i varje bild ligger i sidhuvudet. Ram och KTH-symbol sitter ihop. Du kan själv ändra skapare och datum. Ramen ligger relativt sidan 1,1 cm ned och 1,8 cm från vänster. Följande definierade format ingår: rubrik2 Används för varje bilds rubrik b1 Stycke utan indrag och utan avstånd över b2 Stycke med indrag och med avstånd över b3 Stycke utan indrag och med avstånd över l(först) Första element i uppräkning med avstånd över och hängande indrag l(mellan) Mellanelement i uppräkning utan avstånd över och med hängande indrag l(sist) Sista element i uppräkning med avstånd under och med hängande indrag

Övrigt Blockkoder, konturkoder, eps, pdf, wavelets

Litteratur Bell, Timothy C. & John G Cleary & Ian H Witten. 1990. Text compression. Prentice Hall. Fisher, Yuval (red.). 1994. Fractal image compression: theory and application. Springer. Kay, David C & John R. Levine. 1994. Graphics file formats. Windcrest/McGraw- Hill Solomon, David. 1997. Data compression: the complete reference. Springer. Se vidare t.ex. på www.amazon.com.