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

Langage Java Discussion :

[Algorithme] Compression sans perte


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 83
    Points : 61
    Points
    61
    Par défaut [Algorithme] Compression sans perte
    Bonjour, je souhaite développer mon propre algorithme de compression (sans perte) en Java.

    Le seul soucis, c'est que lorsque je cherche, je trouve facilement une solution pour réduire le nombre de bits, mais hélas c'est impossible à recomposer.

    Et lorsque je pense avoir trouver, je me retrouve au final avec plus de bit (autrement dit ça sert à rien du tout).

    Comment dois-je faire? Dois-je partir à l'envers?
    Les algorithmes de compressions (libre) sont-ils "additionnable"?

    Merci de bien vouloir me guider!

  2. #2
    En attente de confirmation mail
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 501
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonjour,

    En ne nous fournissant ni la description de votre algorithme ni le code de votre implémentation, nous allons avoir du mal à vous aider.

    Si vous doutez de votre algorithme, vous trouverez ici quelques idées dont vous pourriez vous inspirer:
    http://fr.wikipedia.org/wiki/LZ77

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 83
    Points : 61
    Points
    61
    Par défaut
    Ok.
    Donc voici ce que je pensais faire :

    De réorganiser les bits de cette manière : 3Bits pour le nombre de répétitions (Par exemple 101=5 fois) suivie du bit à répéter.

    Mais c'est absolument inutile voir même débile car, pour un code de type 10101010, on obtient 32Bits.

    J'ai voulu aussi faire un algo qui tout d'abords, repère les octets les plus utilisés est les remplacent par max->0 ; max-1->1 ; max-2->10 etc....
    Ensuite créer une "partition" pour réécrire parfaitement le fichier.

    Hors cette liste fait un octet par position, j'obtiens au final la même taille (voir un peu plus gros).

    Je ne sais plus trop comment penser pour pouvoir réduire la taille.

  4. #4
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Bonsoir,

    faites un tour du côté de ce site: http://www.lzop.org/

    Il y a quelques codes sources

    @ bientôt...
    @ bientôt...

    Salut & @+ sur 3W!

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    la pluspart des algorithme tiennent à la réalisation d'un dictionnaire efficace et, surtout, évitant les ambiguités. dans votre exemple: max ->0, max-1 -> 1, max-2 -> 10, vous avez déjà un problème. Lorsque vous lirez 10, comment savoir si il faut interpreter ça comme max-1, max ou comme max-2 ??

    le nombre de "bits" que vous allez attribuer à max influence directement le nombre de bits minimum qu'auront les autres valeur. Si max est réduit à 1 bit, d'office tous les autre font au moins 2bits dont les premier est à l'opposé de celui de max. On peux vite démontrer qu'avec ce genre de système, en travaillant avec une base 8bits, la compression max est de 8 fois, pour un fichier ne contenant qu'une seule valeur, ce qui est peu.

    en pratique on travaille plutot avec des groupement de données, la notion de répétition de blocs, etc.

Discussions similaires

  1. Compressions sans perte à la volée d'images
    Par stalacta dans le forum Calcul scientifique
    Réponses: 9
    Dernier message: 11/03/2014, 23h48
  2. [Access]Plantage sans perte de données
    Par delcroixf dans le forum Access
    Réponses: 2
    Dernier message: 07/05/2007, 22h41
  3. Modéle MMSK sans pertes des clients
    Par sofiane44 dans le forum Développement
    Réponses: 1
    Dernier message: 18/04/2007, 10h49
  4. refresh sans perte de données
    Par manu80000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/04/2007, 12h49

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