Horloge interne des logiciels
Répondre à la discussion
Affichage des résultats 1 à 21 sur 21

Horloge interne des logiciels



  1. #1
    Minialoe67

    Horloge interne des logiciels


    ------

    Bonjour

    dans le cadre de mon travail, j'aimerais savoir si chaque logiciel (Matlab, VLC, Avidemux, ...) a sa propre horloge interne ?
    et si oui, lequel a l'horloge la plus précise (par rapport a l'horloge atomique)?

    En fait, j'ai une vidéo que je dois synchroniser avec un "filtre animé". Le filtre et la vidéo ont tous les 2 la même fréquence, mais sont créés par 2 logiciels différents. Or quand je superpose les 2, un décalage (ou une désynchronisation) apparait au bout d'un moment.

    Ce qui me fait dire cela, c'est qu'en ouvrant la même vidéo dans plusieurs logiciels je ne trouve pas la même fréquence :
    VLC: 30.036440 Hz
    Matlab: 30.046 Hz
    Avdemux: 30.037 Hz
    En 3 minutes, on a déjà 2 images de décalage...

    Merci bien de m'aider, même les remarques les plus infimes...

    -----
    Minialoe67

  2. #2
    bisou10

    Re : Horloge interne des logiciels

    Normalement c'est l'horloge système qui est utilisée partout.

  3. #3
    lou_ibmix_xi

    Re : Horloge interne des logiciels

    dans le cadre de mon travail, j'aimerais savoir si chaque logiciel (Matlab, VLC, Avidemux, ...) a sa propre horloge interne ?
    Un système informatique utilise un oscillateur qu'il dérive en plusieurs oscillateurs (toujours matérielles) pour son coeur et ses périphériques. Ces oscillateurs sont donc à différentes fréquences, mais synchrones (ils ne dérivent pas les uns par-rapport aux autres). Un de ces oscillateurs est utilisée par l'OS pour cadencer à court terme la date du système (en prenant en t0 la date de la RTC...), et à long terme (ordre de la mn, voir s), resynchronise la date par un moyen externe (NTP, GPS...), souvent de manière progressive. Du coup, côté logiciel, tu as en général le choix de l'horloge à utiliser (horloge courante, monotonique...). Mais tu as également des compteurs disponibles, donc si tu veux compter plutôt que dater, c'est pas le même outils. A part à fouiller dans la doc, ou dans le code source si dispo, impossible de répondre à priori.

    et si oui, lequel a l'horloge la plus précise (par rapport a l'horloge atomique)?
    Précise par rapport à quoi et comment ? Si tu veux dater de manière absolue tu utilises un GPS, éventuellement compléter par un CTXO (ou une horloge atomique) si tu veux synchroniser 2 systèmes, il faut "tirer un fil entre les deux".... Il faut "au moins" distinguer stabilité à court terme (oscillateur très précis), et à long terme (datation qui ne dérive pas).

    En fait, j'ai une vidéo que je dois synchroniser avec un "filtre animé". Le filtre et la vidéo ont tous les 2 la même fréquence, mais sont créés par 2 logiciels différents. Or quand je superpose les 2, un décalage (ou une désynchronisation) apparait au bout d'un moment.
    On est plutôt dans une situation de "comptage" que de datation.
    Je n'y connais rien en vidéo, mais en audio lorsque tu appliques un filtre c'est échantillon par échantillon, donc "image par image". Un filtre n'a donc pas de fréquence, il la "subit".

    Ce qui me fait dire cela, c'est qu'en ouvrant la même vidéo dans plusieurs logiciels je ne trouve pas la même fréquence :
    VLC: 30.036440 Hz
    Matlab: 30.046 Hz
    Avdemux: 30.037 Hz
    si la fréquence d'échantillonnage est obtenue par un calcul, ce n'est pas étonnant, les opérations flottantes ne sont pas commutatives.

    En 3 minutes, on a déjà 2 images de décalage...
    même entre VLC et avdemux ?

    Merci bien de m'aider, même les remarques les plus infimes...
    Couper NTP, laisser la machine se stabiliser en température dans une pièce tempérée quasi au degré, refaire tes filtrages.
    NTP est un service logiciel, qui resynchronise la date système ("long terme") en accélérant ou ralentissant l'horloge système ("court terme", google ntp + ton OS). L'horloge système devrait alors se baser uniquement sur l'oscillateur matériel, qui lui est stable en fonction principalement de la température et de l'alimentation.
    Si ça ne suffit pas, et que c'est vraiment un problème de stabilité d'horloge, NTP peux utiliser le PPS du GPS pour synchroniser, voir suivant le budget un TCXO, OCXO... une horloge atomique (on en trouve d'occaz pour quelques centaines d'euro, chercher iridium ou rubidium). Mais c'est plus technique.
    Dernière modification par lou_ibmix_xi ; 31/05/2018 à 19h39.

  4. #4
    Ikhar84
    Animateur Informatique

    Re : Horloge interne des logiciels

    Je ne pense pas qu'il faille chercher le problème dans des détails sur lesquels le demandeur n'aura jamais la main... ni dans l'achat d'une horloge au cesium... pour faire du montage vidéo

    Vu le niveau de différence, de l'ordre du 1/1000 de Hz, l'expliquation est bien plus simple et malheureusement sans solutions.

    Au niveau du developpeur, le temps est accessible via les appels système standard à l'horloge système. Qui elle, égrenne les fractions de secondes depuis un temps "0" (zero), en général, le 1er janvier 1970 à 00:00 (on parle de temps Posix). La mesure du temps écoulée depuis cette date est representé par un (grand) nombre, dit Timestamp.
    La traduction de ce Timestamp donne la date et l'heure précise actuelle.
    On peut parler d'une précision de l'ordre de 20 ms. Elle depend de l'oscillateur locale, representé par l'horloge RTC.
    À la traduction "à la volée", on peut mettre à jour, via notamment un serveur de temps, ou un dispositif externe, la date et l'heure, mais en aucun cas (sur du matériel grand public) on peut influencer le comptage de l'oscillateur (le ralentir ou l'accellerer).
    Mais je peux bien sûr me tromper à ce niveau

    L'autre façon de mesurer le temps, est de lancer un top et mesurer le temps passé, on parle là de Timer.
    On voit immédiatement qu'il s'agit de la même chose, à la différence que pour l'horloge système prend le temps Posix comme top initial.

    Pour mesurer une frequence en Hz, chaque logiciel lance donc un top, puis compte le nombre d'occurence de ce qu'il est censé mesurer (images par exemple), pendant un temps de réference, ramené à la seconde, cela donnera la frequence moyenne.

    On voit bien rapidement que la précision sera limitée, ajouter à cela que durant son execution, le logiciel en question ne sera pas le seul locataire du cpu...
    Rien ne garantit que le "focus" lui sera rendu au top exacte, ni qu'il ne ratera pas des evénements, ni que le "chrono" sera arreté à la ms prés...

    Donc pour moi, ces différcences de fréquences ne sont pas representatives et s'expliquent facilement...
    De plus, on tourne sous un pc grand public, avec un OS grand public, en concurrence avec d'autres logiciels, qui n'en ont rien a faire de la précision du logiciel en question, à moins d'investir dans du matériel fait pour, avec des logiciels pro, pas moyen d'être plus précis...
    J'ai glissé Chef !

  5. A voir en vidéo sur Futura
  6. #5
    lou_ibmix_xi

    Re : Horloge interne des logiciels

    Citation Envoyé par Ikhar84 Voir le message
    Je ne pense pas qu'il faille chercher le problème dans des détails sur lesquels le demandeur n'aura jamais la main... ni dans l'achat d'une horloge au cesium... pour faire du montage vidéo
    Mettre en place un NTP asservi à un PPS de GPS sous linux est faisable en quelques heures, il est facile d'obtenir des jigues de +/-5µs autour du PPS (avec noyau -> utilisateur -> noyau, mesuré au scope, pas besoin de noyau temps-réel, même plus patché je crois depuis quelques années). L'horloge atomique était citée par le primo-posteur, et un budget de 500€ n'est pas déraisonnable dans un contexte professionnel.

    Au niveau du developpeur, le temps est accessible via les appels système standard à l'horloge système. Qui elle, égrenne les fractions de secondes depuis un temps "0" (zero), en général, le 1er janvier 1970 à 00:00 (on parle de temps Posix). La mesure du temps écoulée depuis cette date est representé par un (grand) nombre, dit Timestamp.
    La traduction de ce Timestamp donne la date et l'heure précise actuelle.
    Le timestamp UNIX (ou temps POSIX) est une REPRESENTATION d'une date absolue à la résolution d'1s. Il y a bien de multiples horloges dans le monde logiciel: "man clock_gettime", la résolution du timespec est la nanoseconde, la résolution est le poids du dernier digit, rien à voir avec une "précision" (même si il faut que résolution > "précision" pour ne rien perdre)

    On peut parler d'une précision de l'ordre de 20 ms.
    Précision par rapport à quoi ?

    Elle depend de l'oscillateur locale, representé par l'horloge RTC.
    La RTC ne sert... que lorsque l'ordinateur est éteins ! Pour garder la date absolue. Au démarrage l'OS lit la date dans la RTC, (la corrige éventuellement *), puis le temps système vit (cf mon post précédent). Avant extinction, l'OS règle SA date dans la RTC. La correction: avant extinction l'OS compare la date de la RTC avec la date système (supposée juste) pour évaluer une dérive en fonction du temps, au prochain démarrage, on connaît le temps d'extinction -> on peu corriger grossièrement la date lue dans la RTC.

    L'autre façon de mesurer le temps, est de lancer un top et mesurer le temps passé, on parle là de Timer.
    On voit immédiatement qu'il s'agit de la même chose, à la différence que pour l'horloge système prend le temps Posix comme top initial.
    oui c'est sûr, et les hpet, ou autres timers sont là pour faire joli...

    On voit bien rapidement que la précision sera limitée, ajouter à cela que durant son execution, le logiciel en question ne sera pas le seul locataire du cpu...
    Rien ne garantit que le "focus" lui sera rendu au top exacte, ni qu'il ne ratera pas des evénements, ni que le "chrono" sera arreté à la ms prés...
    un logiciel un peu sérieux n'est tributaire que de la stabilité/précision de l'OS...

    bref...

  7. #6
    Ikhar84
    Animateur Informatique

    Re : Horloge interne des logiciels

    On parle ici de VLC et de Avidemux.
    Je ne pense pas que les dev aient prévu de corriger les oscillateurs via gps ou horloge au césium...
    Le reste était de la vugarisation...
    Je sais parfaitement ce qu'est un timestamp ou un timer merci... et comment est géré le temps au niveau système...
    Un logiciel "grand public" aussi sérieux soit il est necessairement dépendant des services de l'OS hôte.
    Mon but n'a jamais été de polemiquer ou pire sur ce forum...
    bref (aussi)...

    La question était possèdent ils chacun leur propre "horloge". La réponse est non mais... la notion d'horloge est clairement inadaptée.
    J'ai glissé Chef !

  8. #7
    pm42

    Re : Horloge interne des logiciels

    On ne sait pas exactement quel est le problème. Cela peut être en effet au niveau du code des différents logiciels : précision & gestion des arrondis par ex et ce qu'indique le primo-posteur va plutôt dans ce sens là.

    Sinon, proposer de l'asservissement GPS ou de l'horloge atomique pour faire du montage vidéo est plus qu'étonnant en effet...

  9. #8
    CM63

    Re : Horloge interne des logiciels

    Citation Envoyé par Ikhar84 Voir le message

    La question était possèdent ils chacun leur propre "horloge". La réponse est non .
    Tout-à-fait. Au bout du compte les logiciels appellent toujours la même routine de bas niveau Timer(), qui devrait toujours donner les mêmes résultats. Si on observe des différences entres logiciels c'est plutôt du aux aléas du multi-processing, la gestion des priorités entre process présents en même temps en mémoire, etc.

  10. #9
    Minialoe67

    Re : Horloge interne des logiciels

    Merci à vous, j'ai ma réponse.
    Chaque logiciel n'a donc pas sa "propre horloge" (même si ce n'est pas le bon terme). Et il y a sans doute des imprécisions (problème d'arrondi) dans le code utilisé pour générer mon interface (vidéo + filtre) vu les décalages (> 1 seconde).
    Je ne vais pas me lancer dans une usine à gaz avec les tests que vous me proposez pour corriger la synchronisation (ce n'est pas mon champ de compétence), mais je vais chercher le beug dans mon code...
    Minialoe67

  11. #10
    lou_ibmix_xi

    Re : Horloge interne des logiciels

    Citation Envoyé par pm42 Voir le message
    On ne sait pas exactement quel est le problème. Cela peut être en effet au niveau du code des différents logiciels : précision & gestion des arrondis par ex et ce qu'indique le primo-posteur va plutôt dans ce sens là.

    Sinon, proposer de l'asservissement GPS ou de l'horloge atomique pour faire du montage vidéo est plus qu'étonnant en effet...
    Merci de relire mon 1er poste où j'explique succinctement le fonctionnement du temps sur un système info, et où je propose un test rapide qui est d'INHIBER NTP pour éviter les accélérations des horloges...

    Ceci dit, dans le monde de l'audio, la problématique de stabilité des horloges est FONDAMENTALES ! On est OK que le coeur du problème est souvent d'avoir plusieurs flux synchrone, ce qui passe par:
    - une seule horloge commune (word-clock)
    - une synchronisation des sous-ensembles
    Et il se trouve qu'en cherchant des base de temps atomiques d'occasions... on tombe souvent sur du matériel audio.

    Je ne connais pas le monde de la vidéo, et je suis étonné que ce problème surgisse ici (c'est souvent un problème de flux d'origines différentes, ce qui ne semble pas le cas ici)...

  12. #11
    pm42

    Re : Horloge interne des logiciels

    Citation Envoyé par lou_ibmix_xi Voir le message
    Je ne connais pas le monde de la vidéo
    Tout est dit.

  13. #12
    lou_ibmix_xi

    Re : Horloge interne des logiciels

    Citation Envoyé par CM63 Voir le message
    Tout-à-fait. Au bout du compte les logiciels appellent toujours la même routine de bas niveau Timer(), qui devrait toujours donner les mêmes résultats. Si on observe des différences entres logiciels c'est plutôt du aux aléas du multi-processing, la gestion des priorités entre process présents en même temps en mémoire, etc.
    Comment le sais tu ?
    Je ne connais pas windows, mais je connais bien linux sur ces aspects là, il y a plusieurs horloges (man clock_gettime), il y a de forte chance qu'il y ai AU MOINS la distinction horloge monotonique / horloge temps réel sous windows!

  14. #13
    pm42

    Re : Horloge interne des logiciels

    Citation Envoyé par lou_ibmix_xi Voir le message
    Je ne connais pas windows
    Tout est dit mais une seconde fois

  15. #14
    lou_ibmix_xi

    Re : Horloge interne des logiciels

    Citation Envoyé par pm42 Voir le message
    Tout est dit.
    Super argumentation...
    Peux tu me préciser où, dans mon discours, il y a une erreur ?
    Puisque à priori tu connais mieux le monde de la vidéo et du garde temps, tu as peut-être un truc de constructif à dire pour faire avancer le problème du primo-posteur ?

  16. #15
    pm42

    Re : Horloge interne des logiciels

    Je n'argumente pas avec les gens qui disent "je ne connais pas mais je vais vous expliquer" principalement parce que le fait d'être plié en deux de rire m'empêche de construire une réponse détaillée.
    Vu qu'elle ne sera pas comprise et que la réponse sera "n'importe quoi, c'est moi qui ait raison puisque je ne connais pas", ce serait une perte de temps sinon.

    Mais continue à monter sur tes grands chevaux, c'est presque aussi convaincant que quand tu dis "je ne connais pas mais"
    Ou quand tu recommandes une horloge atomique. Celle là était fabuleuse.

  17. #16
    lou_ibmix_xi

    Re : Horloge interne des logiciels

    Ou quand tu recommandes une horloge atomique. Celle là était fabuleuse.
    DANS UN 1er TEMPS JE RECOMMANDAIS DE COUPER LE SERVICE NTP. WINDOWS A UN CLIENT NTP FONCTIONNANT PAR DEFAUT DEPUIS AU MOINS WINDOWS XP. C'EST TOUT! IL FAUT LIRE ET ARRETER DE ME FAIRE DIRE CE QUE JE N'AI PAS DIT !

    JE NE CONNAIS PAS LA VIDEO, MAIS JE CONNAIS LA CABLERIE DES GARDES TEMPS D'UN SYSTEME INFORMATIQUE. SUR CET ASPECT TU AS QUELQUE CHOSE A CORRIGER (a part haha horloge atomique)?

    LA STABILITE D'HORLOGE EST UN VRAI PROBLEME EN AUDIO (C'EST COMME CA QUE JE ME SUIS FROTTER SÉRIEUSEMENT A LA CABLERIE DES HORLOGES), IL SE TROUVE QU'ON VEND DES HORLOGES TRES PRECISES (PARFOIS ATOMIQUES) POUR Y PALLIER. CITER UNE SOLUTION COURANTE DANS LE MONDE DE L'AUDIO C'EST DONC ABSCONS POUR LA VIDEO ?

    Une horloge atomique N'EST PAS une centrale nucléaire, on en trouve même de la taille d'un gros oscillateur.

    Je monte pas sur mes grands chevaux, j'ai répondu à un primo-posteur, puis je me suis pris une 1ère rafale de remarques avec des erreurs techniques que j'ai corrigé. Et derrière, on se moque de l'horloge atomique sans rien faire avancer du débat.

    Merci (pour le primo-posteur) de poster des choses un peu plus constructives que "aha horloge atomique, pfff tu avoues que tu n'y connais rien", je n'ai joué qu'avec linux mais je serais bien étonné qu'il n'y ai pas de fonctionnement similaire sous WINDOWS puisque l'ajustement de l'heure système EST UNE NECESSITE!

  18. #17
    pm42

    Re : Horloge interne des logiciels

    Comme prévu, "je n'y connais rien mais je vais expliquer que j'ai raison".
    En majuscules en plus.

    Tu peux crier de plus en plus fort, c'est toujours aussi ridicule et tellement sans rapport avec le problème que c'est rigolo.
    C'est ce qui est marrant avec les gens qui ne connaissent pas mais veulent expliquer : ils trouvent une solution au problème qu'ils connaisse, pas à celui qui leur est présenté, étalent leur science pour noyer le poisson et s'enferment dans leur dignité outragée quand on leur fait remarquer que ce n'est pas le sujet.

    Tu continues ? Parce que perso, vu que c'est le mois de juin, je n'ai plus beaucoup de séries sympas et légères à regarder et pour le moment, tu me fais bien rigoler donc je me ferais bien un épisode de plus

  19. #18
    JPL
    Responsable des forums

    Re : Horloge interne des logiciels

    Ça suffit ! Tout nouveau message de polémique personnelle sera supprimé.

    Et rappel de la charte du forum :

    Évitez les majuscules pour attirer l'attention des lecteurs.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  20. #19
    lou_ibmix_xi

    Re : Horloge interne des logiciels

    Citation Envoyé par Minialoe67 Voir le message
    Merci à vous, j'ai ma réponse.
    Le rapport signal à bruit de la discussion à fait que je n'avais pas vu.

    Citation Envoyé par Minialoe67 Voir le message
    Chaque logiciel n'a donc pas sa "propre horloge" (même si ce n'est pas le bon terme).
    Pas forcément, il a en général au moins 2 horloges, la système qui essaie de coller à une référence de temps absolue, et la monotonique qui reste stable. Pour dater tu utilises normalement la 1ère, pour compter il vaut bien mieux utiliser la 2nde.

    Citation Envoyé par Minialoe67 Voir le message
    Et il y a sans doute des imprécisions (problème d'arrondi) dans le code utilisé pour générer mon interface (vidéo + filtre) vu les décalages (> 1 seconde).
    Je ne vais pas me lancer dans une usine à gaz avec les tests que vous me proposez pour corriger la synchronisation (ce n'est pas mon champ de compétence), mais je vais chercher le beug dans mon code...
    si il y a une différence uniquement entre ton code et les autres (ça ne m'ait pas apparu clair dans ton 1er poste) alors oui le problème est très vraissemblablement dans ton code.
    Mais couper NTP c'est 3 cliques de souris. Si l'éditeur vidéo a besoin d'une horloge au moment de l'enregistrement (c'est ce point qui me semble bizarre), elle ne doit pas être accélérée ou ralentie par NTP.

  21. #20
    CM63

    Re : Horloge interne des logiciels

    Citation Envoyé par lou_ibmix_xi Voir le message
    Comment le sais tu ?
    Je ne connais pas windows, mais je connais bien linux sur ces aspects là, il y a plusieurs horloges (man clock_gettime), il y a de forte chance qu'il y ai AU MOINS la distinction horloge monotonique / horloge temps réel sous windows!
    Évidemment mais quand on écrit notre programme "de haut niveau" on ne sait même pas qu'il y a une telle distinction, et en fait on appelle toujours la même, sans savoir laquelle, d'ailleurs.

  22. #21
    lou_ibmix_xi

    Re : Horloge interne des logiciels

    Citation Envoyé par CM63 Voir le message
    Évidemment mais quand on écrit notre programme "de haut niveau" on ne sait même pas qu'il y a une telle distinction, et en fait on appelle toujours la même, sans savoir laquelle, d'ailleurs.
    Rien à voir avec le haut-niveau / bas-niveau, mais bien savoir si on veut dater ou compter... Et cette distinction est disponible sous Python, qu'y n'est certainement pas de bas-niveau!

Discussions similaires

  1. horloge interne
    Par da23real dans le forum Biologie
    Réponses: 0
    Dernier message: 15/01/2015, 12h40
  2. [Physiologie] Horloge interne
    Par LaureFuturaSciences dans le forum Biologie
    Réponses: 0
    Dernier message: 13/03/2014, 13h52
  3. Horloge interne
    Par invite65ebd984 dans le forum Psychologies (archives)
    Réponses: 0
    Dernier message: 04/01/2009, 10h58
  4. Pic16F877A horloge interne ??
    Par inviteca539e75 dans le forum Électronique
    Réponses: 18
    Dernier message: 05/11/2008, 14h56
Découvrez nos comparatifs produits sur l'informatique et les technologies.