IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Algorithme de compression


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 29
    Par défaut Algorithme de compression
    Bonjour à tous,

    Je travaille sur un algorithme de compression de fichiers. Je suis entrain de l’implémenter en Matlab/C++.
    Le programme doit être capable d’ouvrir n’importe quel fichier. J’ai travaillé actuellement sur une ouverture de fichiers en mode texte, la compression marche pas trop mal mais lorsque je veux restituer mon fichier d’origine (j’arrive à le faire) il n’est plus utilisable… exemple si j’ai un fichier original mp3 de 5Mo, il devient, disons, 2Mo après la compression. Lorsque je restitue l'original, j’ai 5Mo mais impossible de l’ouvrir.
    Quelqu’un aurait une idée sur comment écrire des fichiers sans "modifier" leur format ou structure internes ?

    Je spécifie que l’algorithme n’est pas sensé comprendre la structure du ficher, dans le sens où il se base sur des calculs mathématiques purs et par la suite doit être capable de s’appliquer à n’importe quel format de fichier.

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 366
    Par défaut
    Citation Envoyé par candesign Voir le message
    Bonjour à tous,

    Je travaille sur un algorithme de compression de fichiers. Je suis entrain de l’implémenter en Matlab/C++.
    Le programme doit être capable d’ouvrir n’importe quel fichier. J’ai travaillé actuellement sur une ouverture de fichiers en mode texte, la compression marche pas trop mal mais lorsque je veux restituer mon fichier d’origine (j’arrive à le faire) il n’est plus utilisable… exemple si j’ai un fichier original mp3 de 5Mo, il devient, disons, 2Mo après la compression. Lorsque je restitue l'original, j’ai 5Mo mais impossible de l’ouvrir.
    Quelqu’un aurait une idée sur comment écrire des fichiers sans "modifier" leur format ou structure internes ?

    Je spécifie que l’algorithme n’est pas sensé comprendre la structure du ficher, dans le sens où il se base sur des calculs mathématiques purs et par la suite doit être capable de s’appliquer à n’importe quel format de fichier.

    Merci
    Tu pars d'un fichier A. En fait, si on applique la compression à A puis la décompression au résultat, ça donne un fichier B. Il faut que les fichiers A et B soient les mêmes. Qu'ils aient la même taille ne suffit pas. Si A et B sont exactement les mêmes, et si tu arrives à ouvrir l'original, tu pourras ouvrir le second. Du coup, as tu vérifié byte à byte que les deux sont les mêmes?

  3. #3
    Membre averti
    Inscrit en
    Décembre 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 29
    Par défaut
    Citation Envoyé par rmaker Voir le message
    Tu pars d'un fichier A. En fait, si on applique la compression à A puis la décompression au résultat, ça donne un fichier B. Il faut que les fichiers A et B soient les mêmes. Qu'ils aient la même taille ne suffit pas. Si A et B sont exactement les mêmes, et si tu arrives à ouvrir l'original, tu pourras ouvrir le second. Du coup, as tu vérifié byte à byte que les deux sont les mêmes?
    C'est tout à fait ce que je fais rmaker sauf que je compare plutôt les chaines de caractères une à une vu que je suis en mode texte.

    J'ai fait la manip suivante :
    - Ouvrir un fichier mp3 sur Notepad, il me sort naturellement un truc illisible...
    - Je remplace UN SEUL caractère du fichier et je l'enregistre.
    - Je le réouvre pour remettre le caractère original et je me retrouve avec un fichier inutilisable.

    ça doit pas venir de ça non ? parce qu'au fait dans ma manière d'écrire le fichier est à peu près la même.

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 366
    Par défaut
    Citation Envoyé par candesign Voir le message
    ça doit pas venir de ça non ? parce qu'au fait dans ma manière d'écrire le fichier est à peu près la même.
    Je ne suis pas d'accord. Il peut y avoir une différence d'encodage, par exemple. Ainsi, tu verras les mêmes choses, le même texte, mais rien ne te garantit qu'au final, dans le fichier, tu as exactement la même séquence de bytes. Par exemple, si tu veux t'amuser avec Notepad++ (qui lui te permet d'avoir la main sur l'encodage), tu prends un fichier texte compliqué, tu forces l'encodage à UTF-8, et tu sauves. Le même texte ne donnera pas le même fichier.

    Donc, en conclusion, je t'incite vraiment à comparer byte à byte. Très faisable en C++. Bon courage!

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Pourquoi travailles-tu en mode texte sur des fichiers binaires ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  6. #6
    Membre averti
    Inscrit en
    Décembre 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 29
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Bonjour,

    Pourquoi travailles-tu en mode texte sur des fichiers binaires ?
    Disons que c'était la seule façon que je sais faire.
    à ton avis, dois-je passer au mode binaire ?

Discussions similaires

  1. Algorithme de compression
    Par yahia_sahli dans le forum VHDL
    Réponses: 3
    Dernier message: 26/03/2008, 07h40
  2. Quel est le meilleur algorithme de compression pour le XML
    Par onlytoine dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 07/09/2007, 14h08
  3. Un algorithme de compression
    Par babar56 dans le forum C
    Réponses: 19
    Dernier message: 09/04/2006, 10h18
  4. algorithme de compression des data en format PNG
    Par vbany dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 07/04/2006, 14h08
  5. Algorithme de compression
    Par nebneb37 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 01/06/2005, 18h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo