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

  FORUM HardWare.fr
  Programmation
  Algo

  [algo] codecs de compactage en C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[algo] codecs de compactage en C++

n°235968
kaloskagat​os
Posté le 28-10-2002 à 15:52:45  profilanswer
 

:hello:
voilà, on a un projet en C++ visant à créer un classe gérant quelques algo de compression/decompression type LZW, huffman (compactage plutot).
On a à notre disposition une classe gérant des flux de Bits écrite par notre prof (son utilisation ne parait pas indispensable, mais elle est là...).
 
Ma question est : un codec doit-il gérer des entrées/sorties? (lecture d'un fichier => compress/decompress => ecriture d'un fichier)
 ou bien travaille-t-on en mémoire centrale ?(on ouvre un fichier, on reserve de la mémoire :sweat: et on y copie le fichier au risque de faire du swap puis compress/etc ...)


Message édité par kaloskagatos le 28-10-2002 à 16:05:43

---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
mood
Publicité
Posté le 28-10-2002 à 15:52:45  profilanswer
 

n°235982
kaloskagat​os
Posté le 28-10-2002 à 16:05:13  profilanswer
 

l'était pas aguichant mon titre => reformule plus court
+ up :D


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
n°235986
kadreg
profil: Utilisateur
Posté le 28-10-2002 à 16:07:54  profilanswer
 

Pour moi, un codec doit prendre un flux (iostream), après, c'est celui qui utilise le codec qui voit si il faut passer un streambuf (en mémoire) ou un flux fichier (fstream).


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°235993
kaloskagat​os
Posté le 28-10-2002 à 16:20:18  profilanswer
 

merci, c'est un pas en avant :)
 
[HS] j'ai du mal à reconnaître ce que représente ton image associée...


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
n°236082
mrbebert
Posté le 28-10-2002 à 17:59:48  profilanswer
 

Tu parles des codecs standards de windows ?
Pour eux, il y a juste une fonction à implanter dans une DLL. Pour l'encodage, l'appli te passe un pointeur vers les données à compresser (format bitmap standard), tu renvoies un pointeur sur les données compressées.
C'est tout, tu ne gère pas de fichier.

n°236211
kaloskagat​os
Posté le 28-10-2002 à 21:41:41  profilanswer
 

mrbebert a écrit a écrit :

Tu parles des codecs standards de windows ?
Pour eux, il y a juste une fonction à implanter dans une DLL.



non c moi qui implémente les codecs
 
 

Citation :

Pour l'encodage, l'appli te passe un pointeur vers les données à compresser (format bitmap standard), tu renvoies un pointeur sur les données compressées.
C'est tout, tu ne gère pas de fichier.


 
 
donc tout se passe en mémoire
 
mais pour la partie encodage faut renvoyer les données avec en entête les dictionnaires et autres données particulières comme ça pèle mêle?
 
 en fait je renvois ce que j'écrirais dans un fichier sans l'écrire dans un fichier...
 
 
(je dois me prendre la tête pour des conneries en fait)


Message édité par kaloskagatos le 28-10-2002 à 21:42:23

---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
n°236223
mrbebert
Posté le 28-10-2002 à 21:54:07  profilanswer
 

kaloskagatos a écrit a écrit :

...
donc tout se passe en mémoire
 
mais pour la partie encodage faut renvoyer les données avec en entête les dictionnaires et autres données particulières comme ça pèle mêle?
 
 en fait je renvois ce que j'écrirais dans un fichier sans l'écrire dans un fichier...
 
 
(je dois me prendre la tête pour des conneries en fait)


Dans ton codec, tu reçois les données à compresser (au format bitmap), et tu renvoies un bloc de données que tu organises comme tu veux. C'est ce bloc que tu recevra, dans le même état, pour le décodage. A toi de faire en sorte d'y avoir mis tout ce dont tu as besoin.
Le traitement se fait image par image, mais tu peux réutiliser les données de l'image précédente (principe des keyframes).
 
Avant le codage ou le décodage, il y a d'autres appels de fonction pour déterminer la résolution/type de codage, initialiser les structures dont tu pourrais avoir besoin.
 
Tout ca se fait avec une seule fonction qui a le profil suivant :
LRESULT PASCAL DriverProc(DWORD dwDriverID, HDRVR hDriver, UINT uiMessage, LPARAM lParam1, LPARAM lParam2)
- uiMessage : le type de traitement que tu dois effectuer (ouverture, fermeture, compresser, décompresser.....)
- lParam1/lParam2 : les 2 paramètres. Généralement, ce sont des pointeurs sur une structure.
 
Toute la partie lecture/enregistrement de fichiers, ce n'est pas toi qui la gère, mais l'appli qui utilise ton codec.
 
Tu as un exemple de code source d'un codec ici :
http://www.divx-digest.tv/software [...] -2.1.1.zip


Message édité par mrbebert le 28-10-2002 à 22:00:13
n°236235
kaloskagat​os
Posté le 28-10-2002 à 22:05:39  profilanswer
 

ok c tout bon g compris
 
(t'emballe pas trop avec les bitmaps pasque moi j'encode sans tenir compte du format, c du winzip si tu veux)


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
n°236247
mrbebert
Posté le 28-10-2002 à 22:13:02  profilanswer
 

Je n'ai touché qu'aux codecs de compression video, c'est pour ca que je parle de bitmaps :D

n°236254
kaloskagat​os
Posté le 28-10-2002 à 22:16:54  profilanswer
 

ok mais j'ai écouté ce que t'avais à me dire et j'en ai tiré de bonnes chose :jap:


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »

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

  [algo] codecs de compactage en C++

 

Sujets relatifs
Recherche livre Algo / C++[ALGO] Parsing de chaine utilisant des * et ?
[ Algo] - determinisation d'un automateRecherche un algo qui automatise la métode MPM
[ALGO]Cherche algo de vérif de clés pour n° de cheque (math inside)cherche algo
Algo de comparaison de chainesAlgo de dégradé de couleurs
UNIX Scheme... faire un algo qui dit si un nombre est premierAlgo pour codage/decodage au f ormat "uuencode"
Plus de sujets relatifs à : [algo] codecs de compactage en C++


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