Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAlexis Larrivée Modifié depuis plus de 9 années
1
Page: 1-Ali Walid Gestion de fichiers. Codage et decodage arithmetique Compression et decompression arithmetique
2
Page: 2-Ali Walid Gestion de fichiers Le codage arithmetique La chaine a coder est: ‘ABCBAA’ Les variables: RANGE LOW HIGH LR (LowRange) HR (High Range)
3
Page: 3-Ali Walid Gestion de fichiers Le codage arithmetique La chaine a coder est: ‘ABCBAA’ P (A) = 3/6
4
Page: 4-Ali Walid Gestion de fichiers Le codage arithmetique La chaine a coder est: ‘ABCBAA’ P (A) = 3/6 P (B) = 2/6
5
Page: 5-Ali Walid Gestion de fichiers Le codage arithmetique La chaine a coder est: ‘ABCBAA’ P (A) = 3/6 P (B) = 2/6 P (C) = 1/6
6
Page: 6-Ali Walid Gestion de fichiers Le codage arithmetique La chaine a coder est: ‘ABCBAA’ P (A) = 3/6 P (B) = 2/6 P (C) = 1/6 00,5 10,83
7
Page: 7-Ali Walid Gestion de fichiers Le codage arithmetique La chaine a coder est: ‘ABCBAA’ P (A) = 3/6 P (B) = 2/6 P (C) = 1/6 00,5 10,83 Range = [0, moins que 0,5] LR = 0 HR = 0,5
8
Page: 8-Ali Walid Gestion de fichiers Le codage arithmetique La chaine a coder est: ‘ABCBAA’ P (A) = 3/6 P (B) = 2/6 P (C) = 1/6 00,5 10,83 Range = [0,5 moins que 0,83] LR = 0,5 HR = 0,83
9
Page: 9-Ali Walid Gestion de fichiers Le codage arithmetique La chaine a coder est: ‘ABCBAA’ P (A) = 3/6 P (B) = 2/6 P (C) = 1/6 00,5 10,83 Range = [0,83 moins que 1] LR = 0,83 HR = 1
10
Page: 10-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = [0..1] Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW Tant qu’il y a des symboles ‘a lire 1 2 3 4 5
11
Page: 11-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = 1 – 0 = 1 Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
12
Page: 12-Ali Walid Gestion de fichiers Le codage arithmetique. 010,50,1666…0,3333…0,6666…0,8333… 0/61/62/63/66/64/65/6
13
Page: 13-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A B C B A
14
Page: 14-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = 1 – 0 = 1 Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
15
Page: 15-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1-0 = 1 B C B A 1
16
Page: 16-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = 1 – 0 = 1 Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
17
Page: 17-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1-0 = 1 0+ (1*0) B C B A 10
18
Page: 18-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = 1 – 0 = 1 Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
19
Page: 19-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1-0 = 1 0+ (1*0) 0+(1*0,5) B C B A 100,5
20
Page: 20-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1 0 0,5 B C B A
21
Page: 21-Ali Walid Gestion de fichiers Le codage arithmetique Lire A 010,50,1666…0,3333…0,6666…0,8333… 0/61/62/63/66/64/65/6 00,5
22
Page: 22-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = [0..1] Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
23
Page: 23-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1 0 0,5 B C B A 0,5-0 = 0,5 0,5
24
Page: 24-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = [0..1] Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
25
Page: 25-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1 0 0,5 B C B A 0,5-0 = 0,50+0,5*0,5 0,25
26
Page: 26-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = [0..1] Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
27
Page: 27-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1 0 0,5 B C B A 0,5-0 = 0,50+0,5*0,5 0,415 0+0,5*0,83
28
Page: 28-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1 0 0,5 B C B A 0,5 0,25 0,415
29
Page: 29-Ali Walid Gestion de fichiers Le codage arithmetique Lire A 010,50,1666…0,3333…0,6666…0,8333… 0/61/62/63/66/64/65/6 00,5 Lire B 0,250,41666
30
Page: 30-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = [0..1] Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
31
Page: 31-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1 0 0,5 B C B A 0,5 0,25 0,415 0,165 0,38695 0,415
32
Page: 32-Ali Walid Gestion de fichiers Le codage arithmetique Lire A 010,50,1666…0,3333…0,6666…0,8333… 0/61/62/63/66/64/65/6 00,5 Lire B 0,250,41666 Lire C 0,386950,41666
33
Page: 33-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = [0..1] Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
34
Page: 34-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1 0 0,5 B C B A 0,5 0,25 0,415 0,165 0,38695 0,415 0,02805 0,4009750,4102315
35
Page: 35-Ali Walid Gestion de fichiers Le codage arithmetique Lire A 010,50,1666…0,3333…0,6666…0,8333… 0/61/62/63/66/64/65/6 00,5 Lire B 0,250,41666 Lire C 0,386950,41666 Lire B 0,4009750,4102315
36
Page: 36-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = [0..1] Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
37
Page: 37-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1 0 0,5 B C B A 0,5 0,25 0,415 0,165 0,38695 0,415 0,02805 0,4009750,4102315 0,0092565 0,4009750,40560325
38
Page: 38-Ali Walid Gestion de fichiers Le codage arithmetique Lire A 010,50,1666…0,3333…0,6666…0,8333… 0/61/62/63/66/64/65/6 00,5 Lire B 0,250,41666 Lire C 0,386950,41666 Lire B 0,4009750,4102315 0,4009750,40560325 Lire A
39
Page: 39-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = [0..1] Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
40
Page: 40-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1 0 0,5 B C B A 0,5 0,25 0,415 0,165 0,38695 0,415 0,02805 0,4009750,4102315 0,0092565 0,4009750,40560325 0,00462825 0,4009750,403289125
41
Page: 41-Ali Walid Gestion de fichiers Le codage arithmetique Lire A 010,50,1666…0,3333…0,6666…0,8333… 0/61/62/63/66/64/65/6 00,5 Lire B 0,250,41666 Lire C 0,386950,41666 Lire B 0,4009750,4102315 0,4009750,40560325 Lire A 0,4009750,403289125 Lire A
42
Page: 42-Ali Walid Gestion de fichiers Le codage arithmetique La compression Initialiser les variables: LOW = 0 HIGH = 1 RANGE = [0..1] Iterer Lire le symbole et determiner son intervalle RANGE = HIGH (precedent) – LOW (precedent) LOW = LOW (precedent) + (RANGE * LR du symbole courant) HIGH = LOW (precedent) + (RANGE * HR du symbole courant) Fin iterer La valeur retournee est LOW
43
Page: 43-Ali Walid Gestion de fichiers Le codage arithmetique Symbole RANGE LOW HIGH rien 1 0 1 A 1 0 0,5 B C B A 0,5 0,25 0,415 0,165 0,38695 0,415 0,02805 0,4009750,4102315 0,0092565 0,4009750,40560325 0,00462825 0,4009750,403289125 0,400975
44
Page: 44-Ali Walid Gestion de fichiers Le codage arithmetique La valeur 0,400975 ou 400975 ou la valeur binaire correspondante ‘a 400975 (1100001111001001111) sera stockee dans un fichier dit fichier de compression (ce fichier est le resultat de la compression).
45
Page: 45-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference Tant qu’on na pas atteind la fin du numero de codage 1 2 3 4 5
46
Page: 46-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
47
Page: 47-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD...0,400975
48
Page: 48-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
49
Page: 49-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5..0,400975
50
Page: 50-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
51
Page: 51-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A.0,400975
52
Page: 52-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
53
Page: 53-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,5-00,400975 0,5
54
Page: 54-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
55
Page: 55-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 (0,400975-0)/0,5 0,80195
56
Page: 56-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195
57
Page: 57-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
58
Page: 58-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195 0,5..moins 0,83
59
Page: 59-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
60
Page: 60-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195 0,5..moins 0,83 B
61
Page: 61-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
62
Page: 62-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195 0,5..moins 0,83 B0,83-0,5 0,33
63
Page: 63-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
64
Page: 64-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195 0,5..moins 0,83 B 0,33
65
Page: 65-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
66
Page: 66-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195 0,5..moins 0,83 B 0,33 0,915
67
Page: 67-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
68
Page: 68-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195 0,5..moins 0,83 B 0,33 0,915 0,83..moins 1 C 0,16 0,53125
69
Page: 69-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
70
Page: 70-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195 0,5..moins 0,83 B 0,33 0,915 0,83..moins 1 C 0,16 0,53125 0,5..moins 0,83 B 0,33 0,09469696
71
Page: 71-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
72
Page: 72-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195 0,5..moins 0,83 B 0,33 0,915 0,83..moins 1 C 0,16 0,53125 0,5..moins 0,83 B 0,33 0,09469696 0..moins 0,5 A 0,5 0,18939392
73
Page: 73-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
74
Page: 74-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195 0,5..moins 0,83 B 0,33 0,915 0,83..moins 1 C 0,16 0,53125 0,5..moins 0,83 B 0,33 0,09469696 0..moins 0,5 A 0,5 0,18939392 0..moins 0,5 A 0,5 0,37878784
75
Page: 75-Ali Walid Gestion de fichiers Le decodage arithmetique. La decompression Initialiser les variables: VALUE = Valeur lue du fichier de decompression Iterer Determiner la valeur VALUE appartient ‘a quel intervalle RANGE Retourner (afficher) le symbole de cet intervalle RD = HR – LR VALUE = (VALUE - LR)/RD Fin iterer Avec: RD : RangeDifference
76
Page: 76-Ali Walid Gestion de fichiers Le decodage arithmetique VALUE RANGE SYMBOL RD 0..moins 0,5 A 0,50,400975 0,80195 0,5..moins 0,83 B 0,33 0,915 0,83..moins 1 C 0,16 0,53125 0,5..moins 0,83 B 0,33 0,09469696 0..moins 0,5 A 0,5 0,18939392 0..moins 0,5 A 0,5 0,37878784 0..moins 0,5 A 0,5
77
Page: 77-Ali Walid Gestion de fichiers Le decodage arithmetique Probleme: On a depasse la chaine originale (le fichier ‘a compresser), one ne sait pas quand le decompresseur s’arrete. Solution 1: Coder un caractere special indiquant la fin de la caine de caracteres. Solution 2: Coder la taille de la chaine ‘a compresser (le fichier ‘a compresser) au debut du fichier de compression. Les deux solutions ajoutent des extra-bits.
78
Page: 78-Ali Walid Gestion de fichiers..
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.