IPLab, Nada, KTH och SU 2003-01-18 sida 1 Tentamen i Text- och bildbehandling (2D1378) lördagen den 18 januari 2003, kl. 9 14 med lösningsidéer Hjälpmedel: räknedosa Fråga om något verkar oklart. nge tydligt på omslaget vilken linje (program) du tillhör. v 45 möjliga poäng ger 22 säkert betyg 3 (G), 30 säkert betyg 4, 34 säkert betyg VG och 38 säkert betyg 5. 1 (6) Förklara följande begrepp (komplettera gärna med exempel). Du ska dels beskriva begreppet, dels avgränsa det från närliggande begrepp. (Varje felaktig eller utelämnad förklaring ger 1 p avdrag. Uppgiften ger dock minst 0 p.) a. CSS b. divis c. glyf d. grav accent e. hängande indrag f. knipning g. ligatur h. linjera i. moiré 2 (3) (Teckenkoder) Unicode kan sägas rymma 1 112 064 tecken. Hur kommer man fram till detta antal? 3 (4) (Strängsökning) Redogör för strängmatchning enligt KMP. Exemplifiera med både den omodifierade och den modifierade formen på exemplet att söka NTNNRIVO i NTINTGNTNRIO. 4a (3) 4b (3) (Språkkontroll) Diskutera kvalitet hos datoriserade avstavningsmetoder. Hur kan ett stavningskontrollprogram generera rättningsförslag när det hittar misstänkt felstavning? 5 (4) (Radplanering) Redogör för Knuth-Plass metod för radplanering som används i TeX. 6 (5) (Rastrering) Redogör för begreppen»bildpunkt»,»exponeringspunkt» och»rasterpunkt» och för sambandet mellan dem vid rationell rastrering med rastervinkel ungefär 30 grader. Du ska konstruera en lämplig rasterpunkt. 7 (3) (Kodning) Vad är följdlängdskodning? Ge några exempel på vad som måste bestämmas när man ska använda metoden. 8 (5) (Färg) På 30-talet gjordes undersökningar av CIE för att beskriva»normalpersonens» färgseende. Hur gjorde man, vad blev resultatet och hur gör man för att använda resultatet för att ange färgen på ett prov när man känner reflexionen som funktion av vågländen? 9 (3) (Bildlagring) I webbsammanhang används ofta indexerade färgbilder med en färgpalett med 216 färger. Förklara»indexerad färgbild» och hur denna färgpalett är uppbyggd. 10a (2) (Bildoperationer) Vad är»linjärt filter»? 10b (2) Man vill ta bort effekter av damm och brus från bilder. Visa ett lämpligt linjärt filter. 10c (2) Visa något, helst bättre, sätt att göra det med ett»ickelinjärt filter». Lycka till!
IPLab, Nada, KTH och SU 2003-01-18 sida 2 1 a. CSS (Cascading style sheet) En notation (språk) för att knyta instruktioner för utformning (formatering) till elementen i ett dokument kodat med HTML eller XML. Ett tidigare försök, DSSSL, med lispliknande notation slog inte. Ett alternativ idag är XSL. b. divis Term med latinskt ursprung för»bindestreck». c. glyf»teckenbild» dvs. ett teckens utseende. Ett tecken, t.ex.»» är en position i en kod, 65 i ISO 646 m.fl., och tecknet kan motsvara olika glyfer beroende på valt teckensnitt, teckenvariant (normal, fet, kursiv), storlek m.m. d. grav accent ccenten med lutning NV SO som i,»à». ccenten med lutning NO SV som i»é» kallas akut accent. e. hängande indrag Ett stycke, vars första rad börjar vid vänstermarginalen och övriga rader har indrag, dvs. börjar längre åt höger, har hängande indrag. Sådant indrag används ibland i uppräkningar (punktlistor) och i litteraturförteckningar. f. knipning tt minska bokstavsavståndet. Det kan göras generellt, lika mycket mellan alla bokstäver, eller parvis för vissa par av tecken för att kompensera stort ljusrum mellan tecknen, t.ex. i»ox» och»to». g. ligatur En glyf för mer än ett tecken som används för att det ska bli vackrare, t.ex.»fi» för»fi». Vid handsättning används ligaturer också för att öka hastigheten vid sättning och återläggning det blir ju färre typer. h. linjera Typografiska element linjerar om de har någon gemensam kant, t.ex. har gemensam vänsterkant eller centrum på samma tänkta horisontella eller vertikala linje. En typografi upplevs normalt mer harmonisk om den har få lägen, dvs. om många element linjerar. i. moiré Störande mönster i bilder som beror på interferens mellan olika periodiska strukturer. Moiré kan uppkomma om man läser (skannar) en rastrerad bild med en provtagningstäthet som är lägre än dubbla rastertätheten. 2 Unicode är en 16-bitskod och rymmer i princip 65 536 tecken. Det finns en utvidgningsmekanism kallad surrogatpar där tecken representeras av 2*16 bitar. Vardera 1024 tecken är avsatta som första resp. andra 16-bitsgrupp i sådana par. Detta ger 65 536 1 024 1 024+1 024*1 024=1 112 064 tecken. 3 I KMP bearbetar man mönstret för att kunna ta hänsyn till den kunskap om texten man får under matchningen och får fram en vektor next(i) som säger hur långt man flyttar fram i texten om man fått matchning med tecknen 1..i 1 i mönstet men får mismatch med tecken i. I omodifierade KMP tar man ingen hänsyn till vilket tecken i mönstret som ger mismatch och riskerar att flytta mönstret så att man jämför med ett annat lika tecken som förstås också ger mismatch. I modifierad KMP undviker man sådana onödiga jämförelser. i 1 2 3 4 5 6 7 8 9 10 11 12 Mönster N T N N R I V O Omodifierad KMP next(i) 0 1 1 1 2 3 2 3 2 1 1 1 Modifierad KMP next(i) 0 1 1 0 1 3 1 3 2 1 1 1 next(i)=0 betyder»flytta mönstret så att dess första tecken ska matchas med tecknet i texten som är närmast till höger om det tecken som gav mismatch» annars betyder next(i)=k»flytta mönstret så att dess tecken k ska matchas med det tecken i texten som gav mismatch».
IPLab, Nada, KTH och SU 2003-01-18 sida 3 Matchning med omodifierad KMP: N T I N T G N T N R I O N T N N T N N T N T N N N N Matchning med modifierad KMP: N T I N T G N T N R I O N T N T N N T N N next(4)=1 next(2)=1 next(5)=2 next(3)=1 next(7)=2 next(2)=1 next(2)=1 next(4)=0 next(5)=1 next(7)=1 4a 4b vstavning behövs för bra radplanering. Med avstavning kan man minska radlängdernas avvikelse från önskad längd. Det är viktigt såväl vid sättning med ojämn högerkant som med jämna kanter. vstavning försämrar alltid läsligheten men man vill göra försämringen liten och undvika missförstånd som kan uppstå genom att läsaren gör en felaktig gissning om texten utgående från det ordfragment som avslutar en rad. Man bör avstava mellan sammansättningsdelarna, efter prefix, före avledningsändelser och böjningsändelser och när detta inte räcker se till att orddelarna blir uttalbara vilket normalt leder till avstavning mellan intilliggande vokaler eller genom att en konsonant förs till andra raden (konsonantregeln). Vissa ord såsom»intilliggande» har dubbelteckning utan avstavning men ska skrivas med trippelkonsonant vid delning,»intill=liggande». Det är viktigare att en avstavningsfunktion undviker dåliga avstavningar än att den hittar alla tänkbara och eftersom vissa ord är flertydiga (»bil=drulle» resp.»bild=rulle») är automatisk avstavning inte acceptabel utan avstavningen måste kontrolleras av en människa. vstavning är ofta ordlistebaserad men det finns också regelbaserad och mönsterbaserad avstavning. Vid bedömning bör man ta hänsyn till hur många felaktiga avtavningar som görs, hur många korrekta som görs och om de som görs är de bästa enligt mänsklig bedömning. Generering av förslag till rättning av misstänkta felstavningar bör vara baserad på kunskap om hur felet kan ha uppkommit. Möjliga fel kan vara tangentbordsfel såsom dubbelteckning, överhoppning, inskjutning av närliggande tecken eller utbyte mot närliggande tecken. Fel kan också uppkomma genom felaktig synkronisering av händerna vid skrivning med båda händerna. Fel kan också bero på att skribenten inte vet hur ordet stavas och skriver något som borde ge ljudlikhet. Olika personer kan ha egna felstavningar som ett program bör kunna lära sig. Felupptäckning kan vara baserad på ordlista eller mönster eventuellt kompletterat med regler för böjning och sammansättning. För att generera rättningsförslag undersöker man om felmekanismerna tillämpade på ord ur ordlistan eller ord med angivna mönster kan ge upphov till det misstänkta ordet och man gör möjliga fel enligt ovan. Med kunskap om hur vanliga olika felmekanismer är kan förslagen rangordnas.
IPLab, Nada, KTH och SU 2003-01-18 sida 4 Vid bedömning är det mycket värdefullt när det önskade ordet kommer mycket högt i förslagslistan. Förmåga hos programmet att lära sig sin användares feltyper är också värdefull. 5 Knuth Plass metod för radplanering försöker hitta det bästa radfallet för varje stycke. Bedömningen baseras dels på hur mycket radlängderna avviker från ideallängden, dels på explicita böter för avstavning, avstavad näst sista rad, flera avstavade rader i följd m.m. Varje rad ges en»dålighet» som är 100*k 3 där k, sträckningskvoten är kvoten mellan radens avvikelse från ideallängden och sträckbarheten resp. krympbarheten för de fjädrar som finns på raden. lgoritmen hittar alla sätt att dela upp stycket i rader mellan ord så att ingen rads dålighet överstiger ett värde, pretolerance. Om inget sådant radfall finns bestäms styckets alla avstavningsmöjligheter och radfall med brytning mellan ord eller i avstavningspunkter där ingen rads dålighet överstiger ett annat värde, tolerance, söks. Om inget sådant radfall finns ges ett felmeddelande med bön om användarens hjälp. Om acceptabla radfall hittas, bestäms det bästa av de hittade med hänsyn också till böter med hjälp av s.k. dynamisk programmering, en metod för att hitta den billigaste vägen genom ett nätverk där de möjliga radbrytningarna ses som noder i nätverket och dålighet plus böter ses som kostnad för bågarna. 6 Bildpunkter är komponenterna i den lagrade bilden och innehåller information om motsvarande bilddels färg (0 eller 1 för vitt eller svart för en bitkartebild, svärtning som ett tal 0..255 för en gråbild, intensitet av röd, grön resp. blå som tre tal 0..255 för en RGB-bild eller kodat på något annat sätt). Exponeringspunkter är de minsta områden på ett utmatningsmedium som självständigt kan ges färg (fläckarna med 1/300 eller1/600 tums avstånd på en laserskrivarutskrift, fläckarna på bildskärmen e.d.). De flesta utskriftsmedier kan inte visa många intensiteter och för att kunna simulera många intensiteter delar man in exponeringspunkterna i ett mönster av likadana celler som kallas rasterpunkter. De är normalt praktiskt taget kvadratiska men bildar vinkel med bildens kanter. Man ser till att medelintensiteten för exponeringspunkterna i rasterpunkten överensstämmer med intensiteten i motsvarande del av bilden. För att skapa ett raster med vinkel ungefär 30 grader ska vi hitta små m och n så att tan(30) n/m. Tag n=3 och m=5 som motsvarar ungefär 31 grader och ger en rasterpunkt med 3*3+5*5, 34 exponeringspunkter med vilket man kan simulera 35 grånivåer. Motsvarande punkter i intilliggande rasterpunter ligger sålunda förskjutna 5 resp. 3 exponeringspunkter i x resp. y-led i förhållande till varandra och kanterna väljs så att rasterpunkterna kan täcka planet utan glipor eller överlappning. 7 Vid komprimering utnyttjar man regelbundenheter i data och ger sådant som är vanligt kort kod och sådant som är ovanligt lång kod. I bilder är det vanligt att närliggande bildpunkter har samma värde eller att områden har mönster. Följdlängdskodning är att istället för att upprepa en kod, koda antalet upprepningar och vad som upprepas. Ett enkelt fall är tvåtonsbild som ju består av omväxlande följder av två färger. Om man anger antalet rader och kolumner, kommer överens om en startfärg och hur många bitar som används per följdlängd kan man koda en sådan bild. Vid behov får man ange att den börjar med 0 stycken bildpunkter av startfärgen och följder längre än man kan lagra
IPLab, Nada, KTH och SU 2003-01-18 sida 5 med det överenskomna antalet bitar får kodas som följder skilda av 0 bildpunkter av den andra färgen. Vid flerfärgsbilder måste man för varje följd också ange dess färg. Istället för att koda blandade färger som en mängd följder vardera med längden 1 väljer man ofta något särskilt sätt. Någon kod får t.ex. betyda ett visst antal okomprimerade bildpunkter. 8 Man visar försökspersonerna två provytor, en belyses successivt med monokromatiskt ljus, den andra belyses med en blandning av tve monokromatiska ljuskällor. Kurvorna r, g och b visar vilka intensiteter av spektrallinjerna 700,0 nm, 546,1 nm resp. 435,8 nm som ska blandas för att resultatet, av en normalbetraktare, ska uppfattas som samma färg som en spektrallinje med en viss våglängd. 0,4 b r 0,2 g 100 80 0,0 60 40 r 20 0 400 500 600 700 [nm] 400 500 600 700 [nm] För ett prov med reflektansen l( λ ) beräknar man R= l( λ) r( λ) dλ G= l( λ) g( λ) dλ B= l( λ) b( λ) dλ och beroende på färgsystem transformerar man detta till någon annan taltrippel 9 Indexerad färgbild innebär att varje bildpunkt innehåller ett index, ett litet heltal, till en färgtabell (palett) som innehåller ett antal färgbeskrivningar. Om man låter index vara 8 bitar kan färgtabellen innehålla 256 färger t.ex. beskrivna enligt RGB med 3*8 bitar per färg. Om bilden har högst 256 olika färger ger detta komprimering till 1/3. Om bilden har fler färger än platser i färgtabellen kan man lagra närmaste färg (förstöra färginformationen något) eller använda samma idéer som vid rastrering dvs. se till att den lokala medelintensiteten blir korrekt (och därmed minska rumsupplösningen). System som använder indexerad färglagring tillåter normalt att färgtabellen lagras tillsammans med bilden eller att man använder någon standardfärgtabell som då inte behöver lagras med bilden. En sådan är webbpaletten som använder RGB med 6 nivåer av varje färg dvs. 6*6*6=216 färger. (Man använder värdena 00 33 66 CC FF i basen 16.) reflektans [%]
IPLab, Nada, KTH och SU 2003-01-18 sida 6 10a Ett linjärt filter kan skrivas som gij (, ) = aklf (, ) ( i+ k, j+ l), dvs. den nya 10b 10c k p, l p bildens värde i en punkt är en viktad summa av bildpunkterna i omgivningen, en linjärkombination. Damm och brus är små bildelement som avviker från omgivningen. Sådant kan 1/ 16 2/ 16 1/ 16 dämpas med medelvärdesbildande lågpassfilter t.ex. 2/ 16 4/ 16 2/ 16. 1/ 16 2/ 16 1/ 16 Några möjligheter är min-, max- och medianfilter. Ursprungsbilden a ger resultatet b med lågpassfiltret i 10b och resultatet c med ett 3*3 medianfilter dvs. den nya bilden får samma färg som det 5:e ljusaste i 9-omgivningen. a. b. c.