leneant

Tim V1.x vs Tim v2.x

Messages recommandés

Voilà Tim Branche V1 a vécu.
Je ne compte plus le maintenir.
J'ai cherché des personnes qui pourraient m'aider à le maintenir, mais j'ai fais choux blancs.

Mais, je suis entrain de travailler sur la V2.
Cette V2 ne fonctionnerait que sur les plateformes 64bits.
Elle traiterait les images en 32Bits/canal en interne et ne limiterait la taille des images qu'à 32767*32767 pixels maxi.

Je cherche toujours des personnes qui seraient intéressées par cette aventure.
Mais je compte la mener à mon rythme, c'est à dire lentement, quand j'aurai envie d'y travailler.

Pour ceux qui sont intéressés voici un lien github.
https://github.com/leneant/Tim-V2.0

Voici le site de Tim V1.x. : http://tim.hexperceptio.fr/

Je compte porter la presque totalité des fonctionnalités.

Que ceux qui le souhaitent prennent contact avec moi.

Partager ce message


Lien à poster
Partager sur d’autres sites

tu devrais mettre ce post dans astropratique  ;)

ici pas beaucoup de passage ! bon courage pour la version 2 :)

polo

Partager ce message


Lien à poster
Partager sur d’autres sites
2 hours ago, polo0258 said:

tu devrais mettre ce post dans astropratique  ;)

ici pas beaucoup de passage ! bon courage pour la version 2 :)

polo

Merci.

Je vais y aler à mon rythme.

Les algo de traitement d'images ne changeront pas.

Le traitement mémoire va être intégralement revu pour pouvoir traiter des images lourdes mais surtout passer en 32 bits par canal en interne.

Et je vais paralléliser les traitements pour améliorer les temps de calculs.

L'IHM aussi sera revu. Je ne sais pas encore quelle forme il prendra. Je sais juste que le principe de comparaison avant et après traitement sera conservé.

Pour le moment j'en suis à coder la gestion mémoire des images et c'est du boulot.

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(e) (modifié)

J'ai pas tout compris au projet, il a pas de readme.md sur le github.

 

C'est quoi le language utilisé pour le code source ? sur le github il y a des binaires linux64 pour quoi faire, on peut pas tout compiler depuis les sources ?

Modifié par DOL GULDUR

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour le projet tu peux te référer au site web.

Tim.hexperceptio.fr qui présente la branche v1.

Grosso modo il y aura les mêmes fonctionnalités mais avec 32 bits par canal en interne et une interface revue.

Pour les binaires j'ai pas fais gaffe. Lazarus créé automatiquement le répertoire lib et l'exécutable dans le répertoire du projet. Du coup gitkraken les push dans le repository.

Tu n'en a pas besoin pour compiler.

Mais là il ne se passe pas grand chose. Ce n'est que du débug.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je recécouvre ton projet, je l'avais testé il y a qq années. Perso j'aime beaucoup. Je vais l'utiliser plus régulièrement  et je te ferai une remontée ici ou sur ton site.

Si j'ai bien compris tu developpes sous Lazarus? De quelle genre d'aide as-tu besoin? tu voudrais que qqun t'aide à reprendre les algos pour traiter en bi-canal ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour centauri.

Non l'aide ne serait pas limitée qu'à la reprise des algos. Je pense que leur portage ne sera pas trop compliqué.

Il faudra les adapter aux 32 bits par canal actuellement 8bits.

Compte tenue de la conception envisagée l'adaptation aux multi threads ne devrait pas générer trop de complexité.

Par contre l'adaptation des unités de gestion des images en interne est en cours de refonte complète.

Dans la v1.x tout est monté en mémoire. Ce qui pose le problème de sa consommation. Pour le passage en 32bits par canal tout ne sera pas en mémoire. Seules 3 fenêtres de l'images devraient être en mémoire. Le reste sera dans des fichiers temporaires sur disques.

Pourquoi 3 ? Pour faire un compromis entre la consommation mémoire, le multi threads et éviter trop d'aller retours mémoire disque pour la majorité des images.

D'après mes premières estimations Tim devrait pouvoir traiter des images de 50M Pix dans virtualisation sur disque de l'image. Le tout en évitant swap.

Ce qui amènerait environ 2,4 GOctets de mémoire réservée pour l'image.

J'ai pris une base de 3Go de RAM pour les plus petites configurations.

Ça c'est le premier enjeu dont va dépendre la rapidité de calcul de Tim.

Ensuite il y y l'ihm.

Aujourd'hui la gestion des évènements utilisateurs est complexe pour éviter ce que j'appelle la ré-entrance. Lorsqu'en calcul de preview st en cours les évènements rappel les fonctions de calculs en cours. Ce qui amène du n'importe quoi comme résultat. J'ai donc du protéger les fonctions pour que rien ne se passe lorsqu'un calcul est en cours.

Je veux changer cette approche.

De plus j'ai eu pas mal de remontées sur l'ergonomie qui est déroutante. J'aimerais aussi la revoir.

Mais le plus important reste la gestion de la mémoire et le multi threads.

 

Voilà je crois avoir fait le tour des ambitions de cette V2.

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(e) (modifié)

En y réfléchissant je pense mettre plante dans mon estimation de l'occupation mémoire. Ensuite tout dépend si les images ont un canal alpha ou non. La v2 pouvant traiter un canal alpha ou non selon le choix de l'utilisateur.

En prenant 52Mpixels les plus grosses résolutions d'apn aujourd'hui j'obtiens 1,6 Go de RAM. Donc un peu plus de la moitié pour les systèmes à 3Go de RAM.

1,6 avec canal alpha et l'image source et l'image résultat en RAM. Ça me semble plus raisonnable. Et ça ne devrait pas grever l'efficacité des calculs dans la majorité des cas.

Par contre je ne tiens pas compte des autres conso mémoire comme les previews par exemple.

Modifié par leneant

Partager ce message


Lien à poster
Partager sur d’autres sites

Super ton projet de gestion de la memoire avec swap-out sur le disque, je vais essayer de regarder cela de mon cote, je me rappelle avoir vu une librairie qui faisait cela en C++ pour une application tres differente.

Par contre le language pascal... arf desole la je suis pas assez courageux pour m'y mettre.

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(e) (modifié)

Le Pascal est un langage algorithmique.

Sans rentrer dans les arcanes de celui ci, son accès est assez facile.

Perso je n'ai pas eu trop de problème pour passer du c au Pascal (j'aime pas le c++ je lui préfère l'ADA ou le Pascal objet).

Donc si tu travailles l'algorithmique en pseudo langage, le passage au Pascal est extrêmement simple.

Sinon attention n'importe quelle librairie ne sera pas optimale.

En effet mes algo descendent les colonnes une par une. Pour faire simple j'ai une première boucle sur les lignes et une seconde boucle imbriquée sur les colonnes.

Donc mon swap sur disque se fait d'une manière précise pour optimiser les flux entre RAM et disque. De la même manière les fenêtres en RAM sont conçues de façon à être optimales avec la conceptions des calculs.

Si tu veux voir l'idée qui oriente la conception vas sur github et regarde (de mémoire) l'unité IU_Frames.pas dans images32. Tout est expliqué sous forme de commentaires au début de l'unité. Pareil pour IU_TemporaryPixFiles.pas.

Je dois corriger quelques trucs. Mais l'idée y est.

Modifié par leneant
  • Merci 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Je prefere nettement le Pascal au C++. D'ailleurs j'ai appris dessus étant étudiant, c'est peut etre pour ça. J'ai installé et testé Lazarus, je trouve ça sympa. Je suis un developpeur d'applications de gestion. Donc  les thread et les swap n'ont jamais été mon probleme majeur. Là j'avoue volontier n'y connaitre pas grand chose. Ca fait 10 ans que je developpe sur PHP, et avant sur les langages Xbase. Je ne suis sans doute pas l'homme de la situation pour tes problématiques, mais si je peux apporter ma pierre à ton édifice ce sera avec plaisir.

On en discute si tu veux...

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(e) (modifié)

Volontier centauri.

Quand j'ai commencé Tim je n'y connaissais rien en traitement d'image. J'ai appris sur le net et en analysant des softs comme iris.

Pour que tu découvres les threads je peux te passer un projet Lazarus d'essai.

Ultra simple quatres compteurs en parallèle.

Il faut savoir qu'avec l'objet Tthread j'ai systématiquement des erreurs. Donc je passe par le niveau le plus bas.

En plus je trouve que c'est plus simple. Des fois l'objet compliqué inutilement le code.

Modifié par leneant

Partager ce message


Lien à poster
Partager sur d’autres sites

J'imagine que tu es sous Windows.

Ça serait pas mal de faire directement le développement multi plateformes.

Ça éviterait d'avoir de tes mauvaises surprises lors du portage.

Partager ce message


Lien à poster
Partager sur d’autres sites

Et non je suis Mint 18 (debian) ;-) !

Mais je peux bosser facilement sur windows.

Ok pour le projet d'essai . Mon mail astronome13@free.fr

 

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

OK je te fais un zip ce soir et je t'envoie ça.

Du coup on est tout les deux sous linux moi debian 9.

Par contre la majorité des utilisateurs de Tim est sous Windows.

Et ça serait pas mal d'avoir un Maceux pour faire les 3 plateformes.

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir, je remonte ce fil pour poser la question d'une collaboration avec quelqu'un sous MAC.

 

y aurait-il quelqu'un d'intéressé ? L'idée étant de réaliser la compilation et les tests sous MAC.

Pas forcément de participer directement aux développements.

 

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,
Les premiers pas sur le développement de la v2 ont commencés.
Si vous avez des remarques, des propositions à faire pour la v2 faites le savoir.
La v2 doit reprendre presque les mêmes fonctions que la v1. Seule une fonction ne devrait pas être reportée c'est le traitement indépendant des teintes. Ce module n'est jamais utilisé. Donc il ne sert à rien.
Tim v2 passe en 32 bits en interne par canal rvb et alpha.
Un swap est prévu de façon intelligente pour les très grosses images. Ainsi les performances du pc ne devraient pas tomber et le pc devrait rester utilisable.
La taille maxi des images passe à 32768 * 32768 pixels.
Nous allons également réfléchir à une nouvelle ergonomie pour faciliter l'utilisation de Tim.
Si vous avez des propositions n'hésitez pas.

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà un mois que l'aventure de la v2 a commencée.

On a commencé à revoir intégralement la gestion mémoire. Ce chantier étant à la base de tous les calculs. Le principe du swap a bien été retenu. Mais il ne devrait se déclencher sur pour les très grosses images. Dans plus de 90% des cas il ne devrait pas y avoir de swap.

Le principe du calcul parallèle est aussi retenu. Ce qui devrait améliorer les performances par rapport à la v1.

À priori Tim v2 devrait aller environ 4 fois plus vite que la v1.

Sur le chantier de l'ergonomie, nous nous orientons vers un ensemble de symboles qui remplaceront le menu de commande de la v1. Ce qui rendra directement accessible les commandes en un clique.

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Parmi vous y aurait il des personnes qui pourraient nous aider à créer les symboles selon les fonctions qu'ils permettraient de déclencher ?

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Je remonte ce fils car nous progressons un peu sur le projet.

Mais nous souhaitons le mener avec l'aide de ses utilisateurs.

Alors les curieux et les bonnes volontés sont les bienvenus pour tester et discuter de l'orientation du soft.

Ceux qui sont intéressés peuvent me contacter.

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

L'équipe de développement s’étoffe au fur et à mesure !

Beaucoup de choses intéressantes à réaliser, nous sommes demandeurs d'idées neuves.

Vos expériences, vos besoins, vos idées tout ça peut peut contribuer à la réalisation d'un logiciel de traitement d'image innovant.

En tous cas c'est ce qu'on a envie  de faire de TIM.

Bienvenue à tous et toutes, si l'aventure vous tente!

 

 

 

 

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant