Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
957 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Petit logiciel de compression, besoin d'aide pour structurer méthode

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Petit logiciel de compression, besoin d'aide pour structurer méthode

n°675024
Monochrome
Posté le 16-03-2004 à 13:57:30  profilanswer
 

Bonjour tlm, je développe en VB un petit programme de compression (je ne poste pas dans VB car ma question n'est pas reliée à ca)
 
Pour l'instant, ce que je fais c'est que j'ouvre le fichier, et je place chaque octet dans un tableau, ce qui ressemble à ça :

Code :
  1. 102 | 17 | 28 | 189 | 102 | 17 | 65 | 90 | etc.


 
Après ça, je forme des combinaisons de 2 octets en comptant les répétitions :

Code :
  1. Combi  | Nb
  2. 102,17 | 2
  3. 17,28  | 1
  4. 28,189 | 1


 
Maintenant, je suis rendu à reparcourir mon tableau des répétitions pour tester si la 2e colonne > 1. Si oui, je reparcoure mon tableau original pour changer (dans cet exemple) tous les 102 par un autre chiffre qui va représenter que ca a été compressé [ici je bloque], et je supprime les 17 du tableau.
 
Donc, mon fichier ressemblera à :
1=bo
1njour j'ai 11 à la jambe.
 
Mon problème c'est que c'est supra-lent et que je ne sais pas si je suis la bonne méthode.  
 
Merci de me dire si ya qqch qui cloche !!  :hello:

mood
Publicité
Posté le 16-03-2004 à 13:57:30  profilanswer
 

n°675059
red factio​n
Posté le 16-03-2004 à 14:15:53  profilanswer
 

ce que tu decrit la ressemble assez fort a la compression RLE (Run Length Encoding) ca marche pas mal mais ca reste assez limité qd meme
 
si tu veux aller plus loin huffman est ton ami  :D
 
tu na pas precisé non plus si tu voulais compresser avec ou sans destruction


Message édité par red faction le 16-03-2004 à 14:18:29
n°675060
red factio​n
Posté le 16-03-2004 à 14:17:08  profilanswer
 

Monochrome a écrit :

Bonjour tlm, je développe en VB un petit programme de compression  
 
Mon problème c'est que c'est supra-lent et que je ne sais pas si je suis la bonne méthode.  
 


 
 :heink: bizarre qd meme
 
 
 [:yamusha]


Message édité par red faction le 16-03-2004 à 14:18:41
n°675062
skeye
Posté le 16-03-2004 à 14:19:29  profilanswer
 

red faction a écrit :

ce que tu decrit la ressemble assez fort a la compression RLE (Run Length Encoding) ca marche pas mal mais ca reste assez limité qd meme
 
si tu veux aller plus loin huffman est ton ami  :D
 
tu na pas precisé non plus si tu voulais compresser avec ou sans destruction  


C'est pas du tout du RLE ce qu'il décrit.
 

red faction a écrit :


 
 :heink: bizarre qd meme
 
 
 [:yamusha]  


Les trolls c'est le vendredi.


Message édité par skeye le 16-03-2004 à 14:20:10
n°675063
red factio​n
Posté le 16-03-2004 à 14:20:36  profilanswer
 

skeye a écrit :


C'est pas du tout du RLE ce qu'il décrit.
 
 
Les trolls c'est le vendredi.


 
ait pas fait attention sorry

n°675475
Monochrome
Posté le 16-03-2004 à 22:37:14  profilanswer
 

red faction a écrit :

ce que tu decrit la ressemble assez fort a la compression RLE (Run Length Encoding) ca marche pas mal mais ca reste assez limité qd meme
 
si tu veux aller plus loin huffman est ton ami  :D
 
tu na pas precisé non plus si tu voulais compresser avec ou sans destruction  


 
Ça consiste en quoi avec destruction ? Si je compresse mon fichier, j'espère quand même qu'il fonctionnera toujours à la décompression :p

n°675773
matafan
Posté le 17-03-2004 à 03:18:09  profilanswer
 

Ben jpeg, mpeg, vorbis... Tout les trucs qui compressent beaucoup et où tu t'en fout de perdre un peu d'info.

n°675775
HelloWorld
Salut tout le monde!
Posté le 17-03-2004 à 03:48:57  profilanswer
 

Ce genre de trucs (compression), ça fait pas mal appel à des opérations binaires, et pour ça VB c'est pas top.
Je verrais les choses ainsi :
1° parcours des données sources pour en extraire les stats :
- tu créés un tableau de 64 Ko initialisé à 0
  chaque indique du tableau représente les stats d'un couple :
    - i0 => couple 0-0
    - i1 => couple 0-1
    - i256 => couple 1-0
- tu parcours les données selon une fenêtre de 2 octets = tu lis 1° et 2° octet, puis 2° et 3°, 3° et 4° ...
- tu calcules l'indice du tableau de stat associé à ce coupe (octet1 * 256 + octet2) et tu incrémentes ce qui s'y trouve
 
2° parcours : tu compresses:
- Tu lis un couple (octet1 octet2)
- tu tests sa valeur dans le tableau de stats (à l'indice octet1 * 256 + octet2)
- si = 1 tu écris octets 1 et passe au coupe (octet2 octet3)
- sinon tu écris ce que tu veux
 
Tu as construit ton buffer compressé.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Petit logiciel de compression, besoin d'aide pour structurer méthode

 

Sujets relatifs
VRAIMENT VRAIMENT besoin d'aide[C#/XML]Lecture de fichier XML à l'aide d'un XML schema ?
besoin daide pour le corrige un peuaide pour la boucle for en commande dos
petit nouveau ne parviens pas a faire fonctionner bloodshedCherche aide sur GD librairie en perl
Méthode de maj d'une databaseJe réalise un petit jeu et j'ai un problème de focus avec l'applet
[ PHP ] Besoin d'une astuce pour imagecreatefrom*** 
Plus de sujets relatifs à : Petit logiciel de compression, besoin d'aide pour structurer méthode


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR