30

WinZip recompresse le LZxx avec l'algorithme de Shanon-Fano (une sorte de Huffman, en moins efficace) je crois.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

31

Thibaut
a écrit : WinZip recompresse le LZxx avec l'algorithme de Shanon-Fano (une sorte de Huffman, en moins efficace) je crois.


euh bof, je ne crois pas que l'algo de winzip soit mauvais, en tout cas, comme l'on croit il n'y pas une ou 2 methodes, mais 3, dont une methode connait 5 variance, je viens de chercher!

c'est dingue, il utilise tout! shanon-fano, un derivé de lzw, des arbres binaires de compression, un cache de compression "glissant" sur le texte (comment on dit ca en francais?), bref, c'est complexe!!! et vive les en-tetes du format zip, lol

bref, quelle est la methode la plus eficace sur de petits fichiers ? (< 500 ko) au moins!!!

32

On appelle ça des fenêtres.

>> "je ne crois pas que l'algo de winzip soit mauvais"
ben désolé mais l'algo de Shanon-Fano est moins performant que l'algo d'Huffman wink Mais peut-être que ce que du décris comme des "arbres binaires de compression" correspond à une "couche" Huffman what
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

33

Thibaut a écrit :
On appelle ça des fenêtres.

>> "je ne crois pas que l'algo de winzip soit mauvais"
ben désolé mais l'algo de Shanon-Fano est moins performant que l'algo d'Huffman wink Mais peut-être que ce que du décris comme des "arbres binaires de compression" correspond à une "couche" Huffman what


En fait, en fonction du mode choisie, ce sont des combinaison de plusieurs algos!

En tout cas, si sur les gros fichiers, je bats les doigts dans le nez le format zip (+ de 500 ko), je me fais litteralement etalé sur les petits fichiers, mais en plus de ca,
mon temps de compression, bien que se soit en java est persque infiniment plus long que winzip!!! pour 10 mo, ca mets meme pas 2 secondes, alors que mon algo en java mets au moins 5 minutes pour 10 mo, et pourtant il est un minimum optimisé!!! (c'est un euphémisme!)

34

Bah le Java c'est pas réputé pour exploiter au mieux la puissance des processeurs... humattention
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

35

je me trompe où le JAVA est interprété ?
(ou iol est compilé en une sorte d'ASM, qui est lui interprété... => moins rapide que le C/C++)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

36

Oui le java est interprete en quelques sorte puisqu'il existe un langage intermediaire le bytecode, c'est d'ailleurs l'essence de java, puisque c'est le code qui est interprete de la meme manière quelque soit le systeme d'exploitation par la JVM.

Mais quoi qu'il en soit, une telle différence ne vient pas du fait que c'est ecrit en java, mais du fait que mes algos sont pourris, optimisés dans le pourris, mais justes tongue

BIen sur, si je trouve une manière d'effectuer une recherche plus rapide dans les pattern du dictonnaire, je gagnerais beaucoup de temps, curieusement, j'utilise une methode de recherche similaire a celle de coloration synthaxique du forum, mais améliorée, mais ca ne suffit pas sad encore beaucoup trop lent.

Puis bizarrement contrairement au C#, je n'ai pas trouvé de moyen en java de faire un truc du style:

Array.newInstance(newArray, size, oldArray);

Pour créer un nouveau tableau et copier l'ancien dans le nouveau avec une taille supérieur!!!
je sais qu'il y a les listes et les vectors, mais il faut utiliser des objets, et créer un objet pour chaque entier stocké dans le tableau c'est galere!!!

mon kiffe serait d'avoir un Vector qui ne marche pas avec des objets!!!

37

PS: je recherche egalement de la doc sur la transformation de Burrows-Wheeler, donc si quelqu'un connait merci de m'en faire part wink

38

OK...
mais C et C++ powa qd même grin
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

39

Le Java est aussi compilable en code natif avec GCJ.

Mais je suis en train d'apprendre le Java à l'université là, et il y a plusieurs trucs qui m'énervent:
- C'est lent.
- Pas de goto (le mot est réservé, mais donne une erreur en compilant). C'est bête de devoir copier-coller du code pour la seule raison que le langage ne permet pas de sauter en arrière (ni en avant).
- while (1) ne marche pas. Il faut mettre while (true). Pour la même raison, if (x) et if (!x) ne marchent pas, il faut mettre if (x!=0) et if (x==0), une horreur pour un programmeur C.
- Le compilateur donne plein d'erreurs pour des choses qui devraient être des warnings ("variable might be used uninitialized", "unreachable code", ...). Je déteste les compilateurs qui croient savoir plus que le programmeur.
Bref, je préfère le C.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

40

pfff kevin, faut decoller un petit peu!!!

c'est lent c'est normal, c'est compilé en byte-code, c'est bien plus rapide que le c# en tout cas, personnellement je le trouve tres rapide par rapport a ce qu'il est.
ensuite pour utiliser les goto dans un langage comme le java faut etre gogolle!!! que ce soit en java, php ou c, j'ai jamais utilisé de goto! meme si en C, je ne suis pas aussi experimenté que les langages precedents.

ensuite non, on utilise pas de 1 pour tester si c'est vrai ou pas, le java n'est pas un langage de primitif, puique les conditions marchent avec des booleen et non des entier !!!
while(true) {
if (prout == toto) break;
}

ca marche!!!
il faut evoluer LE JAVA N'EST PAS DU C!!! tu es le genre de mec a rester bloquer sur tes habitudes et idées, et ne pas en demordre!!! c'est pas comme ca qu'il faut penser, il faut s'adapter aux autres langages, pas rester bloquer sur le C!!

Pour finir, le compilo donne plein d'erreurs pour les warning, c'est normal, ce que je trouve anormal, c'est donner en C des executables qui ont été compilés avec plein de warning!! ils ne sont pas la pour faire bo, mais pour dire que qqch ne va pas, et c'est normal!
Tu devrais essayer le C#, il donne meme des warning quand des variables sont definies et ne servent pas!!!

Mais je suis sur, qu'en tant que personne ayant du bon sens, tu comprendras que le java, est une avancée considérable! Mais soit, pour l'instant programmes en C wink Je pense que tu est simplment trop focalisé, sur la ti, et donc le fait que le C ou l'asm soient les seuls langages valables pour programmer une machine !!!

41

freka
a écrit : ensuite pour utiliser les goto dans un langage comme le java faut etre gogolle!!! que ce soit en java, php ou c, j'ai jamais utilisé de goto! meme si en C, je ne suis pas aussi experimenté que les langages precedents.

Compte le nombre de gotos dans GCC pour voir comment ça sert! Il y en a plein!
ensuite non, on utilise pas de 1 pour tester si c'est vrai ou pas, le java n'est pas un langage de primitif, puique les conditions marchent avec des booleen et non des entier !!!

J'ai bien compris, ne me prends pas pour un idiot, j'ai bien mis que while(true) marche!
Pour finir, le compilo donne plein d'erreurs pour les warning, c'est normal, ce que je trouve anormal, c'est donner en C des executables qui ont été compilés avec plein de warning!! ils ne sont pas la pour faire bo, mais pour dire que qqch ne va pas, et c'est normal!

Il y a plein de warnings quand on compile GCC et pourtant il marche!
Tu devrais essayer le C#, il donne meme des warning quand des variables sont definies et ne servent pas!!!

GCC aussi te donne un warning. Mais un warning, pas une erreur! Ça serait idiot de donner une erreur pour un truc comme ça! Ça a des usages pratiques!
Mais je suis sur, qu'en tant que personne ayant du bon sens, tu comprendras que le java, est une avancée considérable!

LOL, surtout du point de vue des performances. rotfl
C'est multi-plateforme, soit. Mais le C aussi est multi-plateforme, il suffit de recompiler. Ce qui est une idée bien meilleure que d'émuler une machine qui n'existe pas par une machine virtuelle.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

42

freka faut pas essayer de discuter avec Kevin, c'est un fanatique... grin
Il ne pourra jamais comprendre que la programmation objet, l'abstraction, les machines virtuelles et les libs dynamiques ont un interet.

Tu sais Kevin, il y a un langage qui serait vraiment parfait pour toi, c'est le Fortran, t'as déja essayé ? oui
So much code to write, so little time.

43

ca m'atriste de voir des raisonnements comme ca, mais j'ai compris que ca ne sert a rien de discuter!!! Tant pis c'est dommage. Je suis dépité de voir des personnes tellement bloquées, meme si tu as plein de qualités que je te reconnais kevin, il faut etre plus ouvert a ce que tu ne connais ou du moins ce que tu connais mal. La personne en soi meme, ne detient jamais a elle seule la verite. J e trouve qu'icic cette phrase prend tout son sens: Il n'existe pas un concept, ni une manière de programmer, mais plusieurs, et savoir ecouter la manière de voir les autre, et en tirer les apprentissages est intéressant je pense!

44

les gotos, je n'en utilisais pas au début de qd je codais en C...
maintenant, j'en utilise un tout petit peu (très peu !) pour optimiser parci parlà... mais en les commentants (je sais pertinement que les goto rendent le code illisible !)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

45

C'est clair Kevin il est très fermé comme gars.
Il ne croit qu'en ses idées, et aime les imposer.
sick
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

46

Je vais tenter de faire un message aussi long que freka
J'avais réfléchis déjà à compresser une image mais g eu des problèmes pour programmer tout ca.
D'abord avant de compresser la vidéo il faut bien compresser l'image.Je pense qu'il y a trois méthodes apllicabl en meme temps
-Au lieu de coder pixel par pixel, prendre un groupe de 4*4(pas besoin d'un qualité très bonne: c po un DVD)
-Si il ya 5 pixel de couleur noir on dit 5 noirs
-On détermine la couleur la plus utilisé dans l'image, comme ca il ne reste plus qu'a détermine la position des 3 couleurs restantes
Maintenant les problèmes que ca pose:
-Comme détecter lorsqu'on dit "5 noirs" la différence entre le 5 et le noir
Ensuite c des questions que moi je me posais quand g essayé et que je me pose tjrs
Je pensais faire en visual basic la partie compression de 'limage:
PB1:Comme marche une image bmp (pour la convertir en nivo de gris)
PB2:Je pensais coder sur 2 bits chaque couleurs mais je sais po comment faire avec un fichier
car dans vbasic, la commande binary n'a de binaire que le nom, imposibled 'écrire bit par bit
PB3grinélimiter la fontière entre la définiton des couleurs et leur nombre(voir plus haut)
Ensuite pour la vidéo il faut a mon avis faire une table de chgt et une nouvelle image: onregarde ce qui prend le moins de place te on le met dans le fichier en précisan si c'est un tablo
ou une image.
Si kkun peut m'aider pour les 3Pb(je sais c plus du vb que de la ti mais bon)
Au fait, si c plus fesable en c++ j'aimerais bien savoir comment(je trouve que le c++ offre plein de possibilités, mais pour les choses basiques, rien ne vaut....
le basic!
Merci d'avoir tout lu sans s'être endormis

HD le romancier(prochain tome dans 1 semaine)

47

En ce qui concerne le probleme du bit par bit, il faut le resoudre a la main, en java, j'ai fait une classe de stream qui permet d'adapter une stream normale (par exemple octet par octet), pour l'adapter a une stream qui accepte des sequences de bits de longueur variable et ce ci de manière presque transparente, c'est vaiment simple a utiliser et a coder c'est presque aussi simple, ensuite, pour les format bitmap, ne me dit pas que tu n'as rien ttrouver pour t'en servir, en vb, il y a plein de possibilités!
Pour ton troisieme pb, tu peux faire comme en rlc!!!

48

G po tout capté sur tes stream mais c po grave.Pour les bmps les fonction de base de vb sont aléatoires: tailles....G donc ouvert un fichier bmp à l'ancienne et g réussi a lire le header: taille en octet, dimensions de l'image.... En revanche impossible de lire l'image en elle m^me.Je sais juste que c du rvb+réservé codé sur 4 bits et mis à l'envers.Je lis ca en tant ke donné long et j'obtient un nombre à 6 chiffres: je sais po quoi en faire. A moins kil y ait une fonctions de vb pour convertir diectemnt en grayscale mais j'y crois po trop. Si keklun sait faire ca!!!gol