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

Algorithmes et structures de données Discussion :

Algorithme compression de flux


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut Algorithme compression de flux
    Bonjour,

    Je suis à la recherche d'un algorithme de compression de flux.
    La fonctionnalité principale est qu'il doit savoir compresser et décompresser à la volée, je m'explique.

    D'un côté, il y a un "ecrivain" qui envoie des données à un "lecteur". Le "lecteur" doit pouvoir commencer à lire/décompresser alors que "l'écrivain" n'a pas encore finit d'envoyer/compresser.

    L'algorithme de compression Huffman ne va pas car il faut attendre la fin de la compression pour décompresser.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Quel est le contenu du flux ? Du texte ?

    Tout algorithme de compression peut être utilisé, même Huffman, il suffit d'utiliser une table de codes prédéfinie. Elle est calculée une fois pour toute en fonction des spécificités des données. Si c'est du texte en anglais, par exemple, les codes seront calculés à partir de la probabilité d'occurrence de chaque lettre en anglais.

    Une amélioration à cela est la compression adaptative : les paramètres de compression sont modifiés à mesure que les données sont émises. Les fréquences sont mises à jour, les codes changent petit à petit, la compression s'adapte aux données et devient plus efficace.

    Une autre approche est tout simplement de compresser les données par blocs.

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Sylvain Togni Voir le message
    Quel est le contenu du flux ? Du texte ?
    Oui, c'est du texte parfois en français parfois en anglais

    Citation Envoyé par Sylvain Togni Voir le message
    Une amélioration à cela est la compression adaptative : les paramètres de compression sont modifiés à mesure que les données sont émises. Les fréquences sont mises à jour, les codes changent petit à petit, la compression s'adapte aux données et devient plus efficace.
    OK pour la compression adaptative mais alors comment se fait la synchronisation des "dictionnaires" entre "l'écrivain" et le "lecteur"

    Citation Envoyé par Sylvain Togni Voir le message
    Une autre approche est tout simplement de compresser les données par blocs.
    Pas adapté pour mon cas, car cela oblige à attendre que le bloc soit complet pour le transmettre ou alors à compléter le bloc en cours si je veux le transmettre immédiatement. Les messages que j'ai à transmettre n'ont pas tous la même taille.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    Citation Envoyé par ram_0000 Voir le message
    Pas adapté pour mon cas, car cela oblige à attendre que le bloc soit complet pour le transmettre ou alors à compléter le bloc en cours si je veux le transmettre immédiatement. Les messages que j'ai à transmettre n'ont pas tous la même taille.
    tout dépend de la taille du bloc que tu choisis. S'il est relativement petit, ce sera totalement transparent pour le lecteur.
    Sinon tu peux adapter : au lieu d'envoyer en fonction de la taille des blocs, tu le fais en fonction du temps (ex 100ms).
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Citation Envoyé par ram_0000 Voir le message
    OK pour la compression adaptative mais alors comment se fait la synchronisation des "dictionnaires" entre "l'écrivain" et le "lecteur"
    L'écrivain et le lecteur partent avec le même dictionnaire et le modifient avec le même algorithme à partir des données déjà envoyées/reçues.

    Le dictionnaire n'est donc jamais transmit mais il est toujours identique du côté écrivan et du côté lecteur.

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Sylvain Togni Voir le message
    L'écrivain et le lecteur partent avec le même dictionnaire et le modifient avec le même algorithme à partir des données déjà envoyées/reçues.

    Le dictionnaire n'est donc jamais transmit mais il est toujours identique du côté écrivan et du côté lecteur.
    Cela me plait bien comme principe. Maintenant, je reviens à la question initiale, quels algorithmes utilisent ce principe ?

    Autre question, comme il s'agit d'un flux (théoriquement de longueur infinie), comment fait-on pour limiter la taille du dictionnaire des 2 côtés ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    J'ai peu être très mal compris la question, mais...

    Visibilement l'"écrivain" et le "lecteur" sont physiquement sur deux machines différentes.

    Tu entre donc dans un contexte "client/serveur" classique, non

    Dés lors:

    • Le dictionnaire est mis à jour sur le serveur (par l'"écrivain")
    • La mise à jour est envoyée au client
    • Seul le serveur est responsable du controle de la taille du dictionnaire
    • C'est donc du coté serveur que tu te contente de refuser l'ajout d'une information si le dictionnaire devient trop grand
    • Tu peux sans problème décider d'une taille de block raisonnable pour l'envoi du dictionnaire (ou des mises à jours) au client, et le fait que le dernier bloc d'une taille (arbitraire) de 32k par exemple ne contienne que, par exemple, 2 k de données ne pose aucun problème
    • "Au pire", tu peux envisager l'envoi d'un message "rien à transmettre" si la connexion est permanente

    J'aurais donc tendance à te rappeler que la solution la plus simple est toujours la moins compliquée... heu, je veux dire la meilleure

    Maintenant, je n'ai peut être pas saisi l'intégralité du problème
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. Compresser un flux SOAP (XML) Web Service
    Par mls dans le forum Web & réseau
    Réponses: 1
    Dernier message: 03/05/2011, 17h57
  2. [Algorithme] Compression sans perte
    Par Thedahu dans le forum Langage
    Réponses: 4
    Dernier message: 17/04/2011, 23h58
  3. Compresser un flux d'entrée
    Par Rupella dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 06/12/2010, 13h17
  4. [C# 2.0]Compression des flux SOAP
    Par guitoux1 dans le forum Services Web
    Réponses: 4
    Dernier message: 13/11/2007, 15h15
  5. Compression de flux
    Par mavvv dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 17/05/2006, 10h01

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