Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuAri-Pekka Aaltonen Muutettu yli 8 vuotta sitten
1
Jenna Nyblom Katri Vanhatalo Oskari Anttalainen
Huffman-koodaus Jenna Nyblom Katri Vanhatalo Oskari Anttalainen
2
1. Tehtävän kuvaus Huffman-koodaus on menetelmä, jota käytetään erittäin yleisesti datan tiivistämisessä Esim. ZIP, MP3, JPEG, MPEG... Tehtävässä on tarkoituksena toteuttaa ohjelma, jolla voi pakata ja purkaa tekstitiedostoja
3
2. Huffman-koodauksen vaiheet
4
Pakkaaminen
5
1. Esiintymien laskeminen
Annetusta tiedostosta lasketaan kunkin merkin esiintymä Esiintymät järjestetään suurimmasta pienimpään
6
1. Esiintymien laskeminen
7
1. Esiintymien laskeminen
8
1. Esiintymien laskeminen
9
1. Esiintymien laskeminen
10
1. Esiintymien laskeminen
11
1. Esiintymien laskeminen
12
1. Esiintymien laskeminen
13
1. Esiintymien laskeminen
14
1. Esiintymien laskeminen
15
1. Esiintymien laskeminen
16
1. Esiintymien laskeminen
17
1. Esiintymien laskeminen
18
1. Esiintymien laskeminen
19
1. Esiintymien laskeminen
20
1. Esiintymien laskeminen
21
1. Esiintymien laskeminen
22
1. Esiintymien laskeminen
23
1. Esiintymien laskeminen
24
1. Esiintymien laskeminen
25
1. Esiintymien laskeminen
Toista uudelleen
26
2. Puun rakentaminen Esiintymien perusteella rakennetaan Huffman-puu
Esiintymätaulukko käydään läpi lopusta alkuun Yhdistetään aina kaksi vähiten esiintyvää merkkiä yhdeksi ja lasketaan niiden esiintymä yhteen Syntynyt yhdistelmä lisätään esiintymätaulukkoon oikealle paikalleen ja yhdistety merkit poistetaan taulukosta
27
2. Puun rakentaminen
28
2. Puun rakentaminen
29
2. Puun rakentaminen
30
2. Puun rakentaminen
31
2. Puun rakentaminen
32
2. Puun rakentaminen
33
2. Puun rakentaminen
34
2. Puun rakentaminen
35
2. Puun rakentaminen
36
2. Puun rakentaminen
37
2. Puun rakentaminen
38
2. Puun rakentaminen
39
2. Puun rakentaminen
40
2. Puun rakentaminen
41
2. Puun rakentaminen
42
2. Puun rakentaminen
43
2. Puun rakentaminen
44
2. Puun rakentaminen
45
2. Puun rakentaminen
46
3. Merkkien koodaus Puun jokainen vasen haara merkitään 0:lla ja oikea haara 1:llä Jokaiselle merkille voidaan näin puun avulla tehdä lyhyt binäärikoodi
47
3. Merkkien koodaus
48
3. Merkkien koodaus
49
3. Merkkien koodaus
50
3. Merkkien koodaus
51
3. Merkkien koodaus
52
3. Merkkien koodaus
53
3. Merkkien koodaus
54
3. Merkkien koodaus
55
3. Merkkien koodaus
56
3. Merkkien koodaus
57
3. Merkkien koodaus
58
3. Merkkien koodaus Toista uudelleen
59
4. Pakkaaminen Edellisessä vaiheessa tehtyjen binäärikoodien perusteella teksti voidaan pakata
60
4. Pakkaaminen
61
4. Pakkaaminen
62
4. Pakkaaminen
63
4. Pakkaaminen
64
4. Pakkaaminen
65
4. Pakkaaminen
66
4. Pakkaaminen
67
4. Pakkaaminen
68
4. Pakkaaminen
69
4. Pakkaaminen
70
4. Pakkaaminen
71
4. Pakkaaminen
72
4. Pakkaaminen
73
4. Pakkaaminen
74
4. Pakkaaminen
75
4. Pakkaaminen
76
4. Pakkaaminen
77
4. Pakkaaminen
78
4. Pakkaaminen
79
4. Pakkaaminen Toista uudelleen
80
5. Tallentaminen Pakattu teksti voidaan tallentaa tiedostoon
Purkamista varten myös puu on tallennettava
81
Purkaminen
82
1. Tiedoston lukeminen Tiedostosta luetaan pakattu teksti sekä Huffman-puu Puu kootaan uudelleen
83
2. Purkaminen Pakattu binäärimuotoinen teksti käydään läpi alusta loppuun ja muunnettaan se puun avulla takaisin tekstiksi
84
2. Purkaminen
85
2. Purkaminen
86
2. Purkaminen
87
2. Purkaminen
88
2. Purkaminen
89
2. Purkaminen
90
2. Purkaminen
91
2. Purkaminen
92
2. Purkaminen
93
2. Purkaminen
94
2. Purkaminen
95
2. Purkaminen
96
2. Purkaminen
97
2. Purkaminen
98
2. Purkaminen
99
2. Purkaminen
100
2. Purkaminen
101
2. Purkaminen
102
2. Purkaminen
103
2. Purkaminen
104
2. Purkaminen
105
2. Purkaminen
106
2. Purkaminen
107
2. Purkaminen
108
2. Purkaminen
109
2. Purkaminen
110
2. Purkaminen
111
2. Purkaminen
112
2. Purkaminen
113
2. Purkaminen
114
2. Purkaminen
115
2. Purkaminen
116
2. Purkaminen
117
2. Purkaminen Toista uudelleen
118
3. Tallentaminen Lopuksi purettu teksti tallennetaan tiedostoon
119
3. Luokat ja metodit Tree BuildTree CreateBitCodes
Rakentaa Huffman-puun esiintymätaulun pohjalta CreateBitCodes Tekee jokaiselle merkille binäärikoodin puun pohjalta
120
3. Luokat ja metodit Node Havainnointi- ja muutosmetodeita
Viittaukset edelliseen ja seuraavaan
121
3. Luokat ja metodit Compress BuildFrequencyTable
Laskee merkkien esiintymät ja tekee niistä taulukon Encode Suorittaa itse tekstin pakkaamisen
122
3. Luokat ja metodit Decompress Decode
Purkaa tiedostosta saatavan binäärikoodin puun avulla takaisin tekstiksi
123
3. Luokat ja metodit FileIO ReadText WriteText ReadCompressed
Lukee tavallista tekstitiedostoa WriteText Kirjoittaa tavalliseen tekstitiedostoon ReadCompressed Lukee pakattua tiedostoa bittitasolla WriteCompressed Kirjoittaa pakattua dataa tiedostoon bittitasolla SaveFrequencyTable Tallentaa puun esiintymätaulun tiedostoon LoadFrequencyTable Lataa puun esiintymätaulun tiedostosta
124
3. Luokat ja metodit UserInterface MainMenu Päävalikko CompressionMenu
Pakkaamisen valikko Compress Pakkaa tiedoston käyttäen siitä itsestään muodostettua puuta Decompress Purkaa tiedoston CompressWithExistingTree Pakkaa tiedoston käyttäen erikseen ladattavaa puuta ProduceTree Tuottaa tiedostosta puun ja tallentaa sen
125
4. Testaus Testidatana käytetään tekstitiedostoja, jotka sisältävät DNA-jonoja ”GTAGGCAGGGAGAAATGAACAAAATCAACATTGTGGGggaaggaggaaaggatgggtggaaagagggaaggggaggggaggggagggaagcaagaatgaa” Testitiedostot ovat noin 1,5Mt ja 16Mt kokoisia Verrataan pakatun ja pakkaamattoman tiedoston kokoeroa
126
5. Työnjako Ohjelma jaettiin kolmeen kokonaisuuteen
Puun muodostus, merkkien koodaus, puun tallentaminen Pakkaaminen, purkaminen ja käyttöliittymä Tiedostojen luku ja kirjoitus ja esiintymien laskeminen
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.