Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Jenna Nyblom Katri Vanhatalo Oskari Anttalainen

Samankaltaiset esitykset


Esitys aiheesta: "Jenna Nyblom Katri Vanhatalo Oskari Anttalainen"— Esityksen transkriptio:

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


Lataa ppt "Jenna Nyblom Katri Vanhatalo Oskari Anttalainen"

Samankaltaiset esitykset


Iklan oleh Google