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

C Discussion :

Faire une fonction qui compresse les données


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut Faire une fonction qui compresse les données
    Bonjours, j'essai de faire une fonction qui me permettra de compresser mes données Héxa
    alors j'ai penser utilisé la méthode RLE mais je voudrai un octet de contrôle qui permettra de m'indiquer le début de ma série qui doit être compressé
    et aussi un octet qui me donnera le nombre de répétition dans le bloc avant la compression.

    Car pour moi le but de la compression de donnée est de transformé ce bloc qui est une séquence d'octets en une autre séance mais compresser ducoup qui sera plus petite
    et j'essaye aussi de faire ça mais dans les 2 sens en gros compression décompression

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Y a-t-il un lien entre ce post et celui-là ???

    Sinon quelle est ta question car je n'en ai vu aucune dans tout ce que as écrit (toutes tes phrases sont "j'ai pensé faire ceci" ou "j'essaye de faire cela" ce qui ne sont pas des questions auxquelles on peut répondre).

    Citation Envoyé par florian140001 Voir le message
    Car pour moi le but de la compression de donnée est de transformé ce bloc qui est une séquence d'octets en une autre séance...
    séance de... cinéma ?
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 451
    Points : 43 097
    Points
    43 097
    Par défaut
    Pourquoi ne pas utiliser la zlib ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Citation Envoyé par florian140001 Voir le message
    Car pour moi le but de la compression de donnée est de transformé ce bloc qui est une séquence d'octets en une autre séance mais compresser ducoup qui sera plus petite
    En effet, c'est bien le principe. Cependant tu ne mentionnes dans ton message ni les contraintes posées par l'énoncé, ni l'algorithme que tu as pu concevoir, ni son (début d') implémentation et ni surtout les difficultés rencontrées : qu'attends-tu de nous ? Nous ne pourrons t'aider que sur des points bien précis.

    Citation Envoyé par chrtophe Voir le message
    Pourquoi ne pas utiliser la zlib ?
    Si l'on considère le premier sujet initié par l'OP et cité par Sve@r, il s'agit d'un exercice scolaire.

  5. #5
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour

    Y a-t-il un lien entre ce post et celui-là ???

    Sinon quelle est ta question car je n'en ai vu aucune dans tout ce que as écrit (toutes tes phrases sont "j'ai pensé faire ceci" ou "j'essaye de faire cela" ce qui ne sont pas des questions auxquelles on peut répondre).


    séance de... cinéma ?
    une autre séquence*

    Citation Envoyé par chrtophe Voir le message
    Pourquoi ne pas utiliser la zlib ?
    une décompression d'octet en héxa

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par florian140001 Voir le message
    enfaite je dois reproduire la fonction dump en c
    On s'éloigne assez drastiquement d'une fonction de compression là. Et on se rapproche de plus en plus avec ton autre topic que j'ai déjà cité. Or ce n'est pas en ouvrant X topics identiques que tu auras X fois plus de réponses.
    Si les réponses données par ailleurs ne te conviennent pas, c'est surtout parce que
    1. tu ne les lis pas (je veux dire que tu ne réfléchis absolument pas à ce qu'on écrit). D'ailleurs tu ne réfléchis même pas non plus à ce que toi tu écris (quand tu parles de "séance" au lieu de "séquence" => on avait tous bien compris de quoi il s'agissait évidemment !!! mais je tenais à te montrer que nous on lit les choses avec attention, montrant ainsi plus de respect pour toi que ce que toi tu ne nous en montre)
    2. tu ne précises pas, comme le mentionne Matt_Houston, ce que tu attends de nous. Je vais d'ailleurs faire clairement et ouvertement l'hypothèse que tu attends de nous qu'on fasse ton code à ta place comme ça au-moins tu sauras qu'on est au courant et que cela n'arrivera pas


    Donc tant que tu te cantonneras à ton attitude de "je veux faire ceci" et "j'ai pensé à cela" nous (enfin au-moins moi) continuerai à faire le neuneu en répondant des phrases du style "oui c'est une bonne idée" ou bien "je suis totalement d'accord avec toi". Parce que faire une fonction "dump" tout le monde sur ce forum sait la faire. Mais ce n'est pas en la faisant à ta place que ça te fera progresser (sinon te suffit simplement d'attendre le corrigé du prof) sans parler de l'injustice vis à vis des autres élèves qui, eux, étudient leurs cours et font ce qu'ils peuvent sur ce même TP tout seuls.

    J'ai répondu aussi sur ton autre topic. Toutefois là-bas comme tu as (un peu) progressé j'ai répondu de façon moins sévère et plus précise.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Compression RLE : https://fr.wikipedia.org/wiki/Run-length_encoding
    Bonne chance, tu vas clairement en avoir besoin parce qu'à te lire, tu n'as pas le niveau pour ça - et pourtant c'est loin d'être complexe.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    En effet j'ai pas un niveau excellent en c pour celà. Je suis meilleur avec le SDL

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bousk Voir le message
    J'ai trouvé ceci plus détaillé. J'espère ne pas faire de bêtise en en parlant sur ce forum (pardon aux modérateurs si je me trompe)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  10. #10
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    merci de ton lien !

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ensuite, on peut optimiser le RLE pour réduire l'augmentation de taille si les données reçues ne sont pas propices à la compression.
    Par exemple, un codage comme suit (tout avec des octets non-signés, unsigned char):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Un octet de taille
    	Si son bit de poids fort est zéro, c'est la taille d'un run
    		Il est suivi d'un octet indiquant la valeur du run.
    	Si son bit de poids fort est 1, ses 7 bits de poids faibles sont la taille d'une zone non-compressée
    		Il est suivi de N octets, la zone non-compressée
    L'avantage de ça, c'est que dans le pire des cas de données non-compressibles, on rajoute un octet tous les 127 octets.

    Par contre, ça complique l'algorithme de compression: On a désormais besoin d'un buffer de 127 octets minimum pour prédire la taille des zones non-compressées.

    On constate aussi qu'au milieu d'une zone non-compressée, si une suite fait moins de trois octets, il n'est pas rentable de la noter comme un run, parce que noter le run prend trois octets:
    • Un pour la taille du run
    • Un pour la valeur du run
    • Un pour la taille de la zone non-compressée suivante

    (par contre, si ensuite il y a d'autre runs, c'est jouable à partir de deux)
    Je vais voir si je peux pondre un tel algorithme...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction qui modifie les données d'une personne
    Par pope2008 dans le forum Pascal
    Réponses: 4
    Dernier message: 02/01/2012, 12h31
  2. Réponses: 2
    Dernier message: 08/01/2009, 11h49
  3. Réponses: 10
    Dernier message: 13/08/2007, 16h12
  4. Réponses: 10
    Dernier message: 28/07/2007, 15h53
  5. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13

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