Uppsala universitet
Institutionen för lingvistik
Dokumenthantering, vt 2002
Leif-Jöran Olsson

Laboration 3: Lagring och komprimering

Innehåll

  1. Syfte
  2. Genomförande
  3. Uppgifter
  4. Redovisning

1 Syfte

Syftet med denna laboration är att få en första praktisk erfarenhet av lagring och komprimering.

2 Genomförande

Tänk dock på att anteckna frågor och annat som dyker upp inför genomgången. Jobba gärna två och två.


3 Uppgifter

  1. Testa huffmankodning med /local/kurs/dh02/huffman.perl.
    • Använd följande lexikon från första stycket i /local/texts/jabberwocky (eller prova med ett eget).
           13	e
            8	t
            7	i
            6	s
            6	r
            6	o
            6	l
            6	h
            6	a
            5	m
            5	g
            5	b
            4	n
            4	d
            3	y
            3	w
            2	v
            2	A
            2	,
            1	u
            1	T
            1	D
            1	
            1	'
            1	.
            1	:
      
    • Vad får symbolerna för koder?
    • Räkna ut teoretisk och faktisk informationsinnehåll för ovan angivna symboler. Förenklat: I = -lg(fsym/Ntot)/lg(2)
    • Beräkna medelinformationsinnehållet, det vill säga entropin, H = -Summa(fsym/Ntot * lg(fsym/Ntot)/lg(2)).
    • Vad blir kompressionsgraden för stycket?

  2. Titta på Perl-skriptet /local/kurs/dh02/webb.perl och tillhörande html-formulärsida/local/kurs/dh02/webb.html:
    • Kopierar Perl-skriptet till en egen katalog (som ni skapar om ni inte har en redan) /local/etc/httpd/cgi-bin/{dittanvändarnamn}. Gör en egen kopia av /local/kurs/dh02/webb.html. Ändra i den så att ACTION refererar till din version av webb.perl.
    • Vad får du för resultat?
  3. Utöka skriptet i uppgift två, så att det skriver ut den text som skrivs in istället för den fasta texten. :)

  4. Jämför komprimeringsprogrammen:
    1. gzip ( man gzip )
    2. bzip2 ( man bzip2 )
    3. compress ( man compress )
    4. arith_coder ( man /local/kurs/dh02/arith_coder.1 )

    Använd texterna /corpora/SUC/suc1b/kr0?.suc1b.gz. Packa upp filerna med hjälp av kommandot: zcat /corpora/SUC/suc1b/kr0?.suc1b.gz >/tmp/komprimeringstestfil och använd komprimeringstestfil för testerna.

    Använd de tre olika modellerna för arith_coder. Använd största och minsta blockstorleken med bzip2 ( -1 respektive -9). Använd fastest respektive best med gzip.

    Tips: om du ger flaggan -vvvvv till bzip2, så får man väldigt mycket information.

    • Sammanställ komprimeringsresultaten i en tabell.


4 Redovisning

Redovisning lämnas i form av skriftlig rapport till Leif-Jöran Olsson (i postfacket eller via e-post i postscriptformat eller vanlig text) senast klockan 10 den 17 april.

Rapporten ska innehålla/behandla det som tas upp i uppgiftsbeskrivningen ovan.

Rapporten kommer att ges betyget godkänd, väl godkänd eller underkänd enligt följande:


Lycka till! Och kom ihåg - datorer gör oftare som du säger än som du vill!


Senast ändrad avLeif-Jöran Olsson 2002-03-21 10.20