FR2940874A1 - Procede de synchronisation d'une transmission de trames de donnees applicatives, dispositifs d'emission et de reception, produit programme d'ordinateur et moyen de stockage correspondants - Google Patents

Procede de synchronisation d'une transmission de trames de donnees applicatives, dispositifs d'emission et de reception, produit programme d'ordinateur et moyen de stockage correspondants Download PDF

Info

Publication number
FR2940874A1
FR2940874A1 FR0950074A FR0950074A FR2940874A1 FR 2940874 A1 FR2940874 A1 FR 2940874A1 FR 0950074 A FR0950074 A FR 0950074A FR 0950074 A FR0950074 A FR 0950074A FR 2940874 A1 FR2940874 A1 FR 2940874A1
Authority
FR
France
Prior art keywords
network
application data
cycle
transmission
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0950074A
Other languages
English (en)
Other versions
FR2940874B1 (fr
Inventor
Romain Guignard
Arnaud Closset
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0950074A priority Critical patent/FR2940874B1/fr
Priority to US12/683,410 priority patent/US8369354B2/en
Publication of FR2940874A1 publication Critical patent/FR2940874A1/fr
Application granted granted Critical
Publication of FR2940874B1 publication Critical patent/FR2940874B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/12Synchronisation between the display unit and other units, e.g. other display units, video-disc players

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

L'invention concerne un procédé de synchronisation d'une transmission de trames de données applicatives fournies à un dispositif d'émission, la transmission s'effectuant entre ledit dispositif d'émission et au moins un dispositif de réception via un réseau de communication synchrone mettant en oeuvre un cadencement qui définit des cycles réseau successifs. Selon l'invention, sur détection d'un événement représentatif d'un début d'une trame de données applicatives, le dispositif d'émission effectue des étapes consistant à : - déterminer (400) une information de décalage temporel entre l'instant de détection de l'événement et un instant de référence d'un cycle réseau, ainsi qu'une information de position du cycle réseau dans un enchaînement de cycles réseau ; - transmettre (402) l'information de décalage temporel et l'information de position, pendant un premier cycle réseau ; - traiter pour transmission, dans un lapse de temps borné, un ensemble de données applicatives à compter du début de la trame ; - transmettre, les données applicatives traitées, à compter d'un second cycle réseau ultérieur audit premier cycle réseau.

Description

Procédé de synchronisation d'une transmission de trames de données applicatives, dispositifs d'émission et de réception, produit programme d'ordinateur et moyen de stockage correspondants. 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui des systèmes de communication. Plus précisément, l'invention concerne une technique de synchronisation d'horloges applicatives entre un dispositif d'émission et au moins un dispositif de réception connectés à un réseau de communication synchrone. Un tel réseau implémente, par exemple, un mode de transfert synchrone de type TDM (pour Time Division Multiplexing en anglais, ou multiplexage par répartition dans le temps en français). L'invention s'applique notamment, mais non exclusivement, aux systèmes de distribution vidéo. 2. ART ANTÉRIEUR On discute ci-après les inconvénients de l'art antérieur à travers le cas particulier d'un système de distribution vidéo temps réel. Dans un système de distribution vidéo temps réel entre une application source, par exemple un contenu vidéo issu d'un lecteur DVD, et au moins une application réceptrice, par exemple un téléviseur, les données applicatives vidéo doivent être restituées aux applications réceptrices avec les mêmes paramètres temporels que ceux associés au flux de données originel (c'est-à-dire aux instants de présentation des images). Ainsi, il est nécessaire de restituer aux applications réceptrices le début de chaque image selon un rythme équivalent à celui observé au niveau de l'application source.
Dans un réseau de communication où l'on cherche à synchroniser différentes applications, le problème technique qui se pose est la synchronisation, au niveau de chaque application réceptrice, des instants de restitution des données émises par une même application source, ou la synchronisation des instants de restitution des données émises par plusieurs applications sources. En d'autres termes, dans un réseau de communication synchrone on cherche à maîtriser la latence de transmission (ou latence de transport) entre chacune des applications génératrices de données (c'est-à-dire les applications sources) et chacune des applications consommatrices de données (c'est-à-dire les applications réceptrices). Pour résoudre ce problème de synchronisation, on utilise généralement un mode de transfert synchrone. En effet, l'utilisation d'un mode de transfert synchrone au niveau d'un réseau de communication permet de garantir une latence de transport constante des données sur le réseau. Dans certaines situations, la mise en oeuvre d'un tel mode de transfert synchrone n'est pas suffisante. C'est par exemple le cas pour les systèmes de distribution vidéo qui comprennent des dispositifs de traitement avant transmission (compris dans un noeud source, aussi appelé dispositif d'émission) connectés aux applications sources et des dispositifs de traitement après transmission (compris dans un noeud récepteur, aussi appelé dispositif de réception) connectés aux applications réceptrices. Par exemple, le dispositif de traitement avant transmission reçoit des données applicatives fournies par l'application source et compresse ces données avant de les transmettre sur le réseau, et le dispositif de traitement après transmission reçoit les données applicatives compressées en provenance du réseau et décompresse ces données avant de les restituer à l'application réceptrice. Généralement, les dispositifs de traitement avant et après transmission utilisés présentent des latences de traitement variables. Ainsi, dans le cas où plusieurs récepteurs affichent le même contenu vidéo, les débuts d'image au niveau des récepteurs peuvent être déphasés. Généralement, un réseau utilisant un mode de transfert synchrone met en oeuvre une horloge réseau qui définit un cycle réseau de transmission (ou cycle TDM) de données applicatives sur le réseau. Le noeud source du réseau comprend une horloge applicative source (ou horloge d'application génératrice). Ainsi, le noeud source reçoit, au rythme de l'horloge applicative source, les données applicatives venant de l'application source, puis traite les données applicatives reçues, avant transmission sur le réseau, au rythme de l'horloge réseau. Le noeud récepteur du réseau comprend une horloge applicative de réception (ou horloge d'application consommatrice). Ainsi, le noeud récepteur reçoit, au rythme de l'horloge réseau, des données applicatives en provenance du noeud émetteur, puis traite les données applicatives reçues, avant lecture au rythme de l'horloge applicative réceptrice.
L'horloge applicative de chaque noeud est une horloge dérivée de son oscillateur local (c'est-à-dire son quartz local). Bien que la fréquence nominale de tous les oscillateurs locaux soit identique, les défauts inhérents à ces oscillateurs entraînent des dérives entre les horloges applicatives des différents noeuds (c'est-à-dire entre l'horloge applicative (source) du noeud source et l'horloge applicative (réceptrice) du noeud récepteur). De telles dérives peuvent entraîner une modification des paramètres temporels associés au flux vidéo entre l'application source et l'application réceptrice, c'est-à-dire que le noeud récepteur peut se retrouver dans une situation dans laquelle il consomme les données applicatives trop rapidement ou trop lentement par rapport au rythme imposé par l'application source. Ainsi, ces phénomènes peuvent entraîner des ruptures de la qualité de service de l'application vidéo, mais également des dépassements de taille mémoire dans les différents étages du système. Dans le cas des systèmes de distribution vidéo précités, il est donc nécessaire de mettre en oeuvre un mécanisme de synchronisation permettant de corriger la dérive entre l'horloge applicative source du noeud source et l'horloge applicative réceptrice du noeud récepteur, afin de garantir une latence de transport constante entre l'application source et l'application réceptrice. On connaît plusieurs techniques, dans l'état de la technique, pour corriger une dérive entre horloges applicatives source et réceptrice. La plupart de ces techniques connues s'attachent à comparer le compteur de l'horloge applicative source avec le compteur de l'horloge applicative réceptrice et d'en déduire une dérive éventuelle. Par exemple, la technique décrite dans la demande de brevet WO 2006/052339 propose d'émettre de façon périodique la valeur du compteur de l'horloge applicative source, la période de cette émission étant proportionnelle à l'horloge réseau. Le noeud récepteur régénère l'horloge réceptrice à partir de l'horloge réseau et de la valeur du compteur de l'horloge applicative source reçue. Un inconvénient majeur de ces techniques connues réside dans le fait qu'elles nécessitent l'envoi fréquent d'informations de contrôle associées à l'horloge applicative source, au cours d'une même trame vidéo. Ceci a donc pour effet de diminuer la bande passante utile pour l'application.
Un autre inconvénient de ces techniques connues est qu'elles nécessitent l'utilisation d'une boucle à verrouillage de phase encombrante et coûteuse (en terme de complexité et en terme de consommation électrique), pour lisser l'horloge applicative réceptrice. 3. OBJECTIFS DE L'INVENTION L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique. Plus précisément, dans au moins un mode de réalisation de l'invention, un objectif est de fournir une technique de synchronisation d'horloges applicatives entre un dispositif d'émission et au moins un dispositif de réception connectés à un réseau de communication synchrone. En d'autres termes, un objectif est de fournir une technique permettant de gérer efficacement des instants de restitution de données applicatives émises par une application source, pour qu'au niveau des applications réceptrices les données applicatives soient restituées de manière synchrone malgré la dérive des oscillateurs générant les horloges applicatives. Un autre objectif de l'invention, dans au moins un de ses modes de réalisation, est de mettre en oeuvre une telle technique qui permette de minimiser les erreurs de précision induites par les variations aléatoires des oscillateurs locaux des noeuds du réseau. En d'autres termes, un objectif est de fournir une technique permettant de corriger efficacement les dérives entre les horloges applicatives des différents noeuds. Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique qui soit notamment bien adaptée aux réseaux utilisant un mode de transfert synchrone de type TDM. L'invention, dans au moins un de ses modes de réalisation, a encore pour objectif de fournir une telle technique qui soit simple à mettre en oeuvre et pour un faible coût. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de synchronisation d'une transmission de trames de données applicatives fournies à un dispositif d'émission, la transmission s'effectuant entre ledit dispositif d'émission et au moins un dispositif de réception via un réseau de communication synchrone mettant en oeuvre un cadencement qui définit des cycles réseau successifs. Ledit procédé étant tel que, sur détection d'un événement représentatif d'un début d'une trame de données applicatives, ledit dispositif d'émission effectue des étapes consistant à : - déterminer une information de décalage temporel entre l'instant de détection dudit événement et un instant de référence d'un cycle réseau, ainsi qu'une information de position dudit cycle réseau dans un enchaînement de cycles réseau ; - transmettre, via ledit réseau, ladite information de décalage temporel et ladite information de position, pendant un premier cycle réseau prédéterminé ; - traiter pour transmission via ledit réseau, dans un lapse de temps borné, un ensemble de données applicatives à compter du début de la trame ; - transmettre, via ledit réseau, lesdites données applicatives traitées, à compter d'un second cycle réseau prédéterminé ultérieur audit premier cycle réseau prédéterminé. Ainsi, dans ce mode de réalisation particulier, la technique de synchronisation de l'invention repose sur une approche tout à fait nouvelle et inventive consistant à déterminer une information de décalage temporel au niveau du dispositif d'émission à partir d'instants qui ne sont pas corrélés aux latences de traitements dans le noeud d'émission. La technique de synchronisation de l'invention propose de déterminer un décalage temporel entre une première borne correspondant à un début de réception (par le dispositif d'émission) d'une trame de données applicatives et une seconde borne correspondant à un instant de référence d'un cycle réseau, par exemple, le début du cycle réseau. La technique de l'invention consiste à transmettre non seulement une information de décalage temporel mais aussi une information de position du cycle réseau ayant servi au calcul de l'information de décalage temporel. De cette façon (et comme présenté plus en détail ci-après), l'utilisation conjointe de ces deux informations permet, dans le dispositif de réception, d'utiliser une référence commune avec le dispositif d'émission (identifiée par l'information de position) pour calculer un décalage temporel au niveau du dispositif de réception. Ainsi, ce décalage temporel mesuré au niveau du dispositif de réception peut être comparé, de façon cohérente, au décalage temporel mesuré au niveau du dispositif d'émission, pour déterminer une dérive entre une horloge utilisée au sein du dispositif d'émission et une horloge utilisée au sein du dispositif de réception. Par ailleurs, l'information de décalage temporel et l'information de position ne sont pas transmises en même temps (c'est-à-dire dans le même cycle réseau) que les données applicatives appartenant à la trame ayant servi pour le calcul du décalage temporel. L'invention permet donc une variabilité de latence entre l'instant de traitement des données applicatives et leur instant de transmission, via le réseau. De façon avantageuse, ledit premier cycle réseau prédéterminé est le cycle réseau suivant la détection dudit événement par ledit dispositif d'émission. Ainsi, la latence de transmission dans le réseau de communication est réduite. Dans un autre mode de réalisation, l'invention concerne un procédé de synchronisation d'une transmission de trames de données applicatives à régénérer par un dispositif de réception, la transmission s'effectuant entre un dispositif d'émission et ledit dispositif de réception via un réseau de communication synchrone mettant en oeuvre un cadencement qui définit des cycles réseau successifs. Ledit procédé étant tel que ledit dispositif de réception effectue des étapes consistant à : - recevoir, en provenance du dispositif d'émission, une première information de décalage temporel entre un instant de début d'une trame de données applicatives et un instant de début d'un premier cycle réseau, ainsi qu'une information de position dudit premier cycle réseau dans un enchaînement de cycles réseau ; - déterminer une deuxième information de décalage temporel entre un instant de début d'une trame de données applicatives régénérées et un instant de référence d'un second cycle réseau déterminé dans l'enchaînement de cycles réseau, ledit second cycle réseau étant déterminé en fonction de ladite information de position dudit premier cycle réseau ; - régénérer une trame de données applicatives en prenant en compte une dérive de cadencement obtenue à partir de ladite première information de décalage temporel et ladite deuxième information de décalage temporel. Ainsi, il est possible de synchroniser efficacement les régénération de trame entre les dispositifs d'émission et de réception, ainsi qu'entre plusieurs dispositifs de réception, en prenant en compte les dérives entre les horloges utilisées au sein des différents noeuds du réseau, sans utiliser de boucle à verrouillage de phase (comme cela est proposé dans l'état de la technique). Par ailleurs, l'instant de début de trame de données applicatives régénérées considéré peut être déterminé (c'est-à-dire effectif) ou estimé. Dans le premier cas, il est possible d'appliquer la correction de dérive sur la régénération de trame suivante. Dans le second cas, il est possible d'appliquer la correction de dérive sur la régénération de trame pour laquelle l'instant de début de trame est estimé. Avantageusement, l'instant de début d'une trame de données applicatives régénérées est déterminé en fonction : - d'un instant de début d'une trame de données applicatives régénérées qui précède ladite trame ; et - d'une durée prédéterminée entre deux instants de début de trames successives. Ainsi, il est possible d'estimer l'instant de début de trame considéré et d'appliquer la correction de dérive sur la régénération de trame pour laquelle l'instant de début de trame est estimé, ce qui permet d'accroître la réactivité du procédé de synchronisation. De façon avantageuse, suite à l'obtention de l'information de position du premier cycle réseau dans l'enchaînement de cycles réseau, le noeud d'émission et le noeud de réception disposant d'une représentation interne d'enchaînement de cycles réseau, ledit dispositif de réception effectue des étapes consistant à : - attendre que soit écoulé un nombre de cycles réseau fonction d'un temps maximum prédéfini pour que le dispositif d'émission effectue un traitement pour transmission d'une trame de données applicatives ; - initialiser la représentation dudit enchaînement de cycles réseau interne au dispositif de réception avec l'information de position du premier cycle réseau.
Alors, la position du second cycle réseau dans la représentation d'enchaînement de cycle interne au dispositif de réception est identique à la position du premier cycle réseau dans la représentation d'enchaînement de cycle interne au dispositif d'émission. Ainsi, la technique de synchronisation de l'invention permet, de manière simple et peu couteuse de synchroniser l'affichage d'un contenu vidéo, notamment dans le cas où plusieurs dispositifs de réception affichent ce même contenu vidéo. On assure ainsi que les débuts d'image au niveau de chacun des dispositifs de réception soient synchronisés en phase. Avantageusement, avant d'effectuer l'étape consistant à initialiser la représentation dudit enchaînement de cycles réseau interne au dispositif de réception, ledit dispositif de réception attend en outre que soit écoulé un nombre additionnel de cycles réseau fonction d'un temps maximum prédéfini pour qu'un dispositif de réception traite pour régénération une trame de données applicatives à partir de données applicatives reçues du dispositif d'émission.
Ainsi, la technique de synchronisation de l'invention permet de prendre en compte, avant restitution des données, les différences de temps de traitement observées aussi bien à l'émission qu'à la réception des données. En effet, il est proposé d'identifier les différentes latences de traitements avant et après transfert sur le réseau. Pour chaque noeud récepteur, la somme des latences des traitements avant et après transmission est calculée et quantifiée (ou bornée) en nombre entiers de cycles TDM. Il est alors fixé un délai d'attente en nombre entier de cycles TDM. La transmission s'effectue à destination d'une pluralité de dispositifs de réception. De façon avantageuse, le procédé comprend une étape consistant à : - obtenir, de chaque autre dispositif de réception de ladite pluralité de dispositifs de réception, une information de durée maximum prédéfinie pour que ledit autre dispositif de réception régénère une trame de données applicatives à partir de données applicatives reçues du dispositif d'émission. Alors, le nombre additionnel de cycles réseau est fonction de la plus grande valeur parmi les durées dont une information a été obtenue.
Ainsi, la technique de synchronisation de l'invention permet de prendre en compte, avant restitution des données, les différences de temps de traitement observées au sein de multiples dispositifs de réception des données, et d'assurer que la restitution des données s'applique au même instant sur l'ensemble des dispositifs de réception.
Selon une caractéristique avantageuse, la dérive de cadencement est prise en compte pour régénérer une trame de données applicatives si ladite dérive en valeur absolue est supérieure ou égale à un seuil prédéterminé. Ainsi, l'adaptation du signal de régénération des données applicatives prévue par la technique de synchronisation de l'invention peut être mise en oeuvre uniquement lorsque ce seuil est dépassé, ce qui permet d'éviter des ajustements intempestifs et qui auraient tendances, pour un ajustement considéré, à annuler au moins en partie l'ajustement fait précédemment. Chaque trame de données applicatives comprend une partie inactive de données et une partie active de données. Avantageusement, l'étape consistant à régénérer une trame de données applicatives en prenant en compte la dérive de cadencement comprend une sous-étape consistant à modifier la partie inactive de ladite trame courante en fonction du signe de ladite dérive de cadencement. Ainsi, on propose de corriger la dérive en supprimant ou en ajoutant (suivant le signe de la dérive), par exemple, un nombre prédéterminé de lignes dans l'image contenue dans la trame de données applicative vidéo. Dans un autre mode de réalisation, l'invention concerne un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, ledit produit programme d'ordinateur comprenant des instructions de code de programme pour la mise en oeuvre du procédé de transmission précité et/ou du procédé de réception précité, lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation, l'invention concerne un moyen de stockage, éventuellement totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé de transmission précité et/ou le procédé de réception précité.
Dans un mode de réalisation particulier de l'invention, il est proposé un dispositif d'émission comprenant des moyens de synchronisation d'une transmission de trames de données applicatives fournies à un dispositif d'émission, la transmission s'effectuant entre ledit dispositif d'émission et au moins un dispositif de réception via un réseau de communication synchrone mettant en oeuvre un cadencement qui définit des cycles réseau successifs. Ledit dispositif d'émission comprend les moyens suivants, activés sur détection d'un événement représentatif d'un début d'une trame de données applicatives : - des moyens de détermination d'une information de décalage temporel entre l'instant de détection dudit événement et un instant de référence d'un cycle réseau, ainsi que d'une information de position dudit cycle réseau dans un enchaînement de cycles réseau ; - des moyens de transmission permettant de transmettre, via ledit réseau, ladite information de décalage temporel et ladite information de position, pendant un premier cycle réseau prédéterminé ; - des moyens de traitement pour transmission via ledit réseau, dans un lapse de temps borné, d'un ensemble de données applicatives à compter du début de la trame ; - des moyens de transmission permettant de transmettre, via ledit réseau, lesdites données applicatives traitées, à compter d'un second cycle réseau prédéterminé ultérieur audit premier cycle réseau prédéterminé. De façon avantageuse, ledit premier cycle réseau prédéterminé est le cycle réseau suivant la détection dudit événement par ledit dispositif d'émission. Dans un autre mode de réalisation, l'invention concerne un dispositif de réception comprenant des moyens de synchronisation d'une transmission de trames de données applicatives à régénérer par ledit dispositif de réception, la transmission s'effectuant entre un dispositif d'émission et ledit dispositif de réception via un réseau de communication synchrone mettant en oeuvre un cadencement qui définit des cycles réseau successifs.
Ledit dispositif de réception comprend : - des moyens de réception, en provenance du dispositif d'émission, d'une première information de décalage temporel entre un instant de début d'une trame de données applicatives et un instant de début d'un premier cycle réseau, ainsi que d'une information de position dudit premier cycle réseau dans un enchaînement de cycles réseau ; - des moyens de détermination permettant de déterminer une deuxième information de décalage temporel entre un instant de début d'une trame de données applicatives régénérées et un instant de référence d'un second cycle réseau déterminé dans l'enchaînement de cycles réseau, ledit second cycle réseau étant déterminé en fonction de ladite information de position dudit premier cycle réseau ; - des moyens de régénération d'une trame de données applicatives en prenant en compte une dérive de cadencement obtenue à partir de ladite première information de décalage temporel et ladite deuxième information de décalage temporel. De façon avantageuse, l'instant de début d'une trame de données applicatives régénérées est déterminé en fonction : - d'un instant de début d'une trame de données applicatives régénérées qui précède ladite trame ; et 20 - d'une durée prédéterminée entre deux instants de début de trames successives. Le noeud d'émission et le noeud de réception disposent d'une représentation interne d'enchaînement de cycles réseau. Avantageusement, le dispositif de réception comprend les moyens suivants, activés suite à l'obtention de l'information de position du premier cycle réseau dans l'enchaînement de cycles réseau : 25 des moyens d'attente permettant d'attendre que soit écoulé un nombre de cycles réseau fonction d'un temps maximum prédéfini pour que le dispositif d'émission effectue un traitement pour transmission d'une trame de données applicatives ; - des moyens d'initialisation de la représentation dudit enchaînement de cycles réseau interne au dispositif de réception avec l'information de position du 30 premier cycle réseau. 10 15 Selon un mode de réalisation particulier, la position du second cycle réseau dans la représentation d'enchaînement de cycle interne au dispositif de réception est identique à la position du premier cycle réseau dans la représentation d'enchaînement de cycle interne au dispositif d'émission. De façon avantageuse, le dispositif de réception comprend en outre des moyens d'attente permettant d'attendre que soit écoulé un nombre additionnel de cycles réseau fonction d'un temps maximum prédéfini pour qu'un dispositif de réception traite pour régénération une trame de données applicatives à partir de données applicatives reçues du dispositif d'émission. La transmission s'effectue à destination d'une pluralité de dispositifs de réception. Avantageusement, le dispositif de réception comprend : - des moyens d'obtention, de chaque autre dispositif de réception de ladite pluralité de dispositifs de réception, d'une information de durée maximum prédéfinie pour que ledit autre dispositif de réception régénère une trame de 15 données applicatives à partir de données applicatives reçues du dispositif d'émission. Selon un mode de réalisation particulier, le nombre additionnel de cycles réseau est fonction de la plus grande valeur parmi les durées dont une information a été obtenue. 20 De façon avantageuse, la dérive de cadencement est prise en compte pour régénérer une trame de données applicatives si ladite dérive en valeur absolue est supérieure ou égale à un seuil prédéterminé. Chaque trame de données applicatives comprend une partie inactive de données et une partie active de données. Avantageusement, les moyens de régénération d'une 25 trame de données applicatives comprennent des moyens de modification de la partie inactive de ladite trame courante en fonction du signe de ladite dérive de cadencement. 5. LISTE DES FIGURES D'autres caractéristiques et avantages de modes de réalisation de l'invention apparaîtront à la lecture de la description suivante, donnée à titre d'exemple indicatif et 30 non limitatif (tous les modes de réalisation de l'invention ne sont pas limités aux 10 caractéristiques et avantages des modes de réalisation décrits ci-après), et des dessins annexés, dans lesquels : - la figure 1 décrit l'architecture d'un système de distribution vidéo multivoies, selon un mode de réalisation particulier de l'invention ; - la figure 2 décrit l'architecture d'un noeud source (c'est-à-dire un dispositif d'émission) apparaissant sur la figure 1, selon un mode de réalisation particulier de l'invention ; - la figure 3 décrit l'architecture d'un noeud récepteur (c'est-à-dire un dispositif de réception) apparaissant sur la figure 1, selon un mode de réalisation particulier de l'invention ; - la figure 4 présente un organigramme d'un procédé de transmission d'information de synchronisation, selon un mode de réalisation particulier de l'invention ; - la figure 5 présente un organigramme d'un procédé de réception d'information de synchronisation, selon un mode de réalisation particulier de l'invention ; - la figure 6 présente un organigramme d'un algorithme de gestion d'information de délimitation de trames, mis en oeuvre par le noeud source, selon un mode de réalisation particulier de l'invention ; - la figure 7 présente un organigramme d'un algorithme de gestion d'information de délimitation de trames, mis en oeuvre par un noeud récepteur, selon un mode de réalisation particulier de l'invention ; - la figure 8 présente un organigramme d'un algorithme de détermination d'information de synchronisation, mis en oeuvre par le noeud source, selon un mode de réalisation particulier de l'invention ; et - les figures 9a à 9c présentent un organigramme d'un algorithme d'utilisation d'informations de synchronisation, mis en oeuvre par un noeud récepteur, selon un mode de réalisation particulier de l'invention. 6. DESCRIPTION DÉTAILLÉE Sur toutes les figures du présent document, les éléments identiques sont désignés par une même référence numérique. 10 15 20 25 30 A titre illustratif uniquement, on présente dans la suite de la description un exemple d'application de l'invention pour un système vidéo multivoies, constitué de deux écrans d'affichage. La figure 1 décrit l'architecture d'un système de distribution vidéo multivoies, 5 selon un mode de réalisation particulier de l'invention. Ce système de distribution permet d'afficher au niveau de deux écrans séparés géographiquement, le contenu d'une même source vidéo. Plus particulièrement, le système de distribution vidéo multivoies comprend : - un réseau de communication numérique synchrone 105, dont la latence de transmission entre points d'accès s'exprime en un nombre entier de cycles de référence réseau, dit cycle TDM ou cycle réseau ; - cinq points d'accès 108 à 112 ( network access points en anglais) au réseau 105 ; - un noeud source 102, aussi appelé par la suite dispositif d'émission, ( source node en anglais) comprenant une première extrémité connectée au réseau 105 via le point d'accès 108, et une seconde extrémité connectée à une source vidéo 101 (par exemple un lecteur DVD) ; - un premier noeud récepteur 103, aussi appelé par la suite dispositif de réception, ( sink node en anglais) comprenant une première extrémité connectée au réseau 105 via le point d'accès 109, et une seconde extrémité connectée à un premier dispositif d'affichage vidéo (ou écran) 104 ; et - un second noeud récepteur 106 comprenant une première extrémité connectée au réseau 105 via le point d'accès 112, et une seconde extrémité connectée à un second dispositif d'affichage vidéo 107. Comme on le verra en détail ci-après, le procédé de transmission de l'invention est mis en oeuvre par le noeud source 102, et le procédé de réception de l'invention est mis en oeuvre par les premier 103 et second 106 noeuds récepteurs. Ainsi, les procédés de transmission et réception de l'invention permettent de restituer de manière synchrone au niveau des écrans 103 et 107 le contenu de la source vidéo 101. La figure 2 décrit l'architecture du noeud source 102 de la figure 1, selon un mode de réalisation particulier de l'invention. On décrit ci-après, à titre uniquement illustratif, le cas particulier où le traitement avant transmission mis en oeuvre par le noeud source 102 est une compression vidéo. Dans le mode de réalisation illustré, le noeud source 102 comprend une interface physique HDMI (pour High Definition Multimedia Interface en anglais) 204 permettant de connecter le noeud source 102 à la source vidéo 101. Ainsi, le noeud source 102 peut recevoir des données applicatives vidéo émises par la source vidéo 101. Le noeud source 102 comprend également un module implémentant une fonction de transport 213 ( TDM framing module en anglais) permettant l'échange de données avec le point d'accès 108 au travers d'une interface 216. Dans le présent mode de réalisation, le module de transport 213 implémente un mode de transport synchrone de type TDM. Ainsi, le réseau 105 met en oeuvre une horloge réseau qui définit des cycles réseau (cycles TDM). Dans un mode de réalisation particulier de l'invention, chaque noeud identifie les cycles TDM par une numérotation interne de ces cycles.
A chaque cycle TDM, un nombre de canaux virtuels ( VC pour Virtual Channel en anglais) prédéterminé est alloué pour la transmission sur le réseau 105 de données applicatives et de contrôle issues du noeud source 102. Le nombre de canaux virtuels est défini de telle sorte que la bande passante équivalente est suffisante à chaque cycle TDM pour transférer les données applicatives d'un noeud source à un noeud récepteur. Les données applicatives générées par le noeud source 102 sont stockées dans une mémoire tampon 211 avant d'être envoyées sur le réseau 105. Les données de contrôles générées par le noeud source 102 sont stockées dans des mémoires tampon 218 et 220 avant d'être envoyées sur le réseau 105. Ainsi, durant chaque période TDM, le module de transport 213 effectue un nombre de lectures prédéterminé des mémoires tampon 211, 218 et 220, respectivement au travers des signaux 212a à 212c, 214a à 214c, et 215a à 215c. Les données applicatives 201 issues de l'interface 204 sont d'abord stockées au rythme d'un signal d'écriture 202 dans une mémoire tampon 210. Les données applicatives 201 sont ensuite transmises vers un module de traitement vidéo 206 (par exemple un module de compression), au travers d'une interface 205, puis sont stockées au rythme d'un signal d'écriture 208 dans la mémoire tampon 211, au travers d'une interface 207. La latence maximale de traitement du module de traitement vidéo 206 est prédéterminée (mais la latence instantanée est variable). Le module de traitement vidéo 206 génère un marqueur Start_of_frame 209 permettant de délimiter les données applicatives générées entre deux trames de données successives. En d'autres termes, le marqueur Start_of_frame 209 permet de marquer la frontière entre des données appartenant à une première trame et des données appartenant à une seconde trame. La mémoire tampon 211 absorbe les variations de latence et de taille de données compressées en sortie du module de traitement vidéo 206, avant leur transmission sur le réseau. Le noeud source 102 comprend également un bloc de détection de frontière de trame 222 ( Frame Delimiter en anglais) qui est chargé de générer des informations de mise en paquets Sep 219. Ainsi, un protocole de délimitation de frontière de trame (ou protocole de paquétisation ) est implémenté au-dessus du mode de transport TDM pour détecter et signaler un début de trame. Ces informations de mise en paquets Sep 219 sont ensuite utilisées par les noeuds récepteurs 103 et 106 pour initialiser le processus de réception des données applicatives avant affichage. L'algorithme mis en oeuvre par le bloc de détection de frontière de trame 222 est décrit ci-après en relation avec la figure 4.
Le noeud source 102 comprend en outre un bloc de calcul de décalage temporel 223 (noté TDM to Vsync Offset Computation Module en anglais) qui est chargé de générer des informations de contrôle Synch 224 (aussi appelées par la suite information de synchronisation), afin d'implémenter un protocole de synchronisation de début d'affichage de données applicatives reçues au sein des noeuds récepteurs 103 et 106. Le bloc de calcul de décalage temporel 223 génère les informations de contrôle Synch 224, en fonction d'un évènement de début de trame V_Sync 203 et d'un événement de référence de cycle réseau. par la suite, à titre d'exemple, le bloc de calcul de décalage temporel 223 prend en compte un événement de début de cycle réseau TDM cycle 217. L'algorithme mis en oeuvre par le bloc de calcul de décalage temporel 223 est décrit ci-après en relation avec la figure 6. Comme on le verra dans la suite de description, l'information de synchronisation Synch comprend une information relative à un décalage temporel et une information relative à un numéro de cycle réseau (cycle TDM) ayant servi pour le calcul du décalage temporel. La figure 3 décrit l'architecture du noeud récepteur 103 de la figure 1, selon un mode de réalisation particulier de l'invention. On décrit ci-après, à titre uniquement illustratif, le cas particulier où le traitement après transmission mis en oeuvre par le noeud récepteur 103 est une décompression vidéo. Dans un mode de réalisation particulier, l'architecture du noeud récepteur 106 est identique à celui du noeud récepteur 103. Dans le mode de réalisation illustré, le noeud récepteur 103 comprend une interface physique HDMI 326 permettant de connecter le noeud récepteur 103 au dispositif d'affichage vidéo 104. Ainsi, le noeud récepteur 103 peut transmettre des données applicatives vidéo régénérées vers le dispositif d'affichage vidéo 104, qui se charge de les restituer à l'utilisateur. Le noeud récepteur 103 comprend également un module implémentant une fonction de transport 301 ( TDM framing module en anglais) permettant l'échange de données avec le point d'accès 109 au travers d'une interface 331. Dans le présent mode de réalisation, le module implémentant la fonction de transport 301 implémente un mode de transport synchrone de type TDM. A chaque cycle TDM, un nombre d'intervalles temporels (ou VC pour Virtual Channel en anglais) prédéterminé est alloué pour la réception, en provenance du réseau 105, des données applicatives (par exemple des données compressées) et de contrôle (Synch et Sep) générées par le noeud source 102. Après réception, les données applicatives 302 sont stockées dans une mémoire tampon 308 au rythme d'un signal d'écriture 303, puis sont envoyées vers un module de traitement vidéo 315 (par exemple un module de décompression). De la même manière que la latence maximale de traitement du module de traitement vidéo 206 (au niveau du noeud source 102) est prédéterminée, la latence maximale de traitement du module de traitement vidéo 315 (au niveau du noeud récepteur 103) est prédéterminée (mais la latence instantanée est variable). Après réception, l'information de mise en paquets Sep est stockée dans une mémoire tampon 312, au travers de l'interface 305 et au rythme du signal d'écriture 304. Au début du prochain cycle réseau (évènement TDM cycle 314), l'information de mise en paquets Sep est transmise vers un bloc de détection de frontière de trame 321 ( Frame Delimiter en anglais), au travers de l'interface 313. Après réception, la donnée de synchronisation Synch est stockée dans une mémoire tampon 328, au travers de l'interface 307 et au rythme du signal d'écriture 306.
Au début du prochain cycle réseau (évènement TDM cycle 314), la donnée de synchronisation Synch est transmise vers un bloc de gestion de décalage temporel 322 (noté TDM to Vsync Offset Manager en anglais), au travers de l'interface 327. Le bloc de détection de frontière de trame 321 est chargé d'exploiter l'information de mise en paquets Sep 313 délivrée en sortie de la mémoire tampon 312, afin d'initialiser le processus de réception des données applicatives avant affichage. Le bloc de détection 321 permet d'aligner le démarrage du traitement vidéo (ou traitement après transmission ), effectué par le module de traitement vidéo 315, sur les données applicatives présentes dans la mémoire tampon 308 pour la première trame à traiter. Pour ce faire, le bloc de détection 321 reçoit et utilise l'information de mise ne paquets Sep 313 précitée, un signal Synch_received 329 généré par le bloc de gestion de décalage temporel 322, l'évènement d'écriture Wr_D 303 de données applicatives (reçues en provenance du noeud source) dans la mémoire tampon 308 et le nombre Nb_words de données applicatives présentes dans la mémoire tampon 308. Le bloc de détection 321 génère un signal d'effacement Reset 310 permettant de purger la mémoire tampon 308. Plus précisément, le signal d'effacement Reset permet de supprimer les données applicatives présentes dans la mémoire tampon 308 et qui n'appartiennent pas à la première trame à traiter. Le bloc de détection 321 génère également un signal Start_of frame 320 permettant de signaler au module de traitement vidéo 315 le début d'une trame vidéo, afin que le module de traitement vidéo 315 procède au démarrage du traitement vidéo (par exemple une décompression de données). Le bloc de détection 321 permet en outre d'aligner le cadencement ultérieur du traitement vidéo (effectué par le module de traitement vidéo 315) sur les données applicatives présentes dans la mémoire tampon 308 pour les prochaines trames à traiter.
Pour ce faire, le bloc de détection 321 reçoit et utilise l'information de mise en paquets Sep 313 précitée, et l'évènement d'écriture Wr_D 303 de données applicatives dans la mémoire tampon 308. Ainsi, le bloc de détection 321 génère et délivre le signal Start_of_frame 320 au module de traitement 315, lorsque la prochaine donnée à lire en mémoire tampon 308 correspond à une première donnée d'une prochaine trame à traiter. L'algorithme mis en oeuvre par le bloc de détection de frontière de trame 321 est décrit ci-après en relation avec la figure 5. Le module de traitement 315 est chargé, suite à la réception de chaque évènement Start_of_frame 320, de réaliser, par exemple, des opérations de décompression des données applicatives compressées, stockées dans la mémoire 308. Les données applicatives décompressées (aussi appelées par la suite données applicative régénérées) sont ensuite stockées dans la mémoire tampon 317, au travers de l'interface 316. Le bloc de gestion de décalage temporel 322 est chargé d'exploiter l'information de synchronisation Synch 327 délivrée en sortie de la mémoire tampon 328 afin de synchroniser le début d'affichage des données applicative régénérées (par exemple des données décompressées) stockées dans la mémoire tampon 317. Ainsi, le bloc de gestion 322 permet de démarrer l'affichage des données vidéo uniquement après expiration d'une temporisation (ou timer ) déclenchée suite à la réception de l'information de synchronisation Synch 327. La durée de cette temporisation est fonction de la valeur du décalage temporel contenue dans l'information de synchronisation Synch et d'un nombre entier prédéterminé de cycles TDM. Sur expiration de la temporisation, le bloc de gestion 322 génère et délivre un évènement Start 323 à un module de génération d'image vidéo 324. Le bloc de gestion 322 permet en outre de générer et délivrer un signal Synch_received 329 au bloc de détection de frontière de trame 321, afin de lui signaler la détection d'un événement représentatif de la réception de l'information de synchronisation Synch . Le bloc de gestion 322 permet également, après le démarrage de l'affichage des données applicatives, de calculer la dérive Drift entre l'horloge utilisée au sein du noeud source et l'horloge utilisée au sein du noeud récepteur. Le module de génération d'image vidéo 324 est chargé de fournir à l'interface HDMI 326 l'ensemble des signaux de contrôle nécessaires au transport sur HDMI des données applicatives régénérées (stockées dans la mémoire tampon 317). Ainsi, sur détection de l'évènement Start 323 (généré par le bloc de gestion 322), le module de génération d'image vidéo 324 génère de façon périodique les signaux Vsync , Hsync et Data_enable au travers de l'interface de contrôle 325, et le signal Rd au travers de l'interface 319, pour commander la fourniture des données applicatives régénérées à l'interface HDMI 326. Les données applicatives régénérées sont fournies selon un format de trame vidéo prédéterminé, tel que, par exemple, celui défini dans le standard CEA-861D. Le standard CEA (Consumer Electronics Association) référencé CEA-861D A DTV Profile for Uncompressed High Speed Digital Interfaces édité en Juillet 2006. On se réfèrera plus particulièrement à la section 4 de ce document.. Le module de génération d'image vidéo 324 est également chargé d'utiliser la dérive Drift , calculée par le bloc de gestion 322 et véhiculée au travers du signal 330, de sorte à permettre au noeud récepteur de restituer les trames vidéo avec les mêmes paramètres temporels que ceux des trames vidéo fournies au noeud source.
La figure 4 présente un organigramme d'un procédé de transmission de l'information de synchronisation précitée (Synch), selon un mode de réalisation particulier de l'invention. Le procédé de transmission de l'invention est mis en oeuvre par le noeud source 102 décrit en relation avec la figure 2. Au démarrage du système, le réseau génère un premier cycle TDM, appelé par la suite cycle réseau de démarrage. Chaque cycle TDM est associé à un numéro de cycle. Par exemple, le cycle réseau de démarrage est associé au numéro de cycle zéro. Dans une première étape 400, on détecte un évènement représentatif d'un début de réception d'une trame de données applicatives, puis on calcule un décalage temporel (noté par la suite Os ) entre l'instant de détection de l'événement représentatif d'un début de réception (par le noeud source) d'une trame de données applicatives (détection de l'impulsion Vsync ) et un instant de début d'un cycle TDM (détection de l'impulsion TDM cycle ). Dans un mode de réalisation particulier, le cycle TDM utilisé pour le calcul du décalage temporel (Os), aussi appelé par la suite cycle TDM de référence, est celui qui précède l'évènement de début de réception (par le noeud source) de la trame.
Ensuite, dans une étape 401 on détermine le numéro de cycle TDM ayant servi pour le calcul du décalage temporel (à l'étape 400), c'est-à-dire le numéro de cycle associé au cycle TDM de référence. Enfin, dans une étape 402 on construit une information de synchronisation Synch comprenant le décalage temporel (calculé à l'étape 400) et le numéro de cycle associé au cycle TDM de référence (déterminé à l'étape 401), puis on la stocke dans la mémoire tampon 218. Ainsi, l'information de synchronisation Synch (comprenant le décalage temporel et le numéro de cycle associé au cycle TDM de référence) est rendue disponible pour transmission vers le réseau au cours du prochain cycle TDM. Puis, on retourne à l'étape d'attente 400. On note que le décalage temporel (calculé à l'étape 400) représente un nombre de cycles d'horloge réseau, cette horloge réseau étant un multiple prédéterminé de la période du cycle TDM. La figure 6 présente un organigramme d'un algorithme de gestion d'informations de délimitation de trames, selon un mode de réalisation particulier de l'invention. Cet algorithme est mis en oeuvre par le bloc de détection de frontière de trame 222 ( Frame Delimiter en anglais) compris dans le noeud source 102 décrit en relation avec la figure 2. Le principe consiste à insérer dans un cycle TDM courant (dans un canal de contrôle dédié) une information de mise en paquets Sep 219, lorsque dans ce même cycle TDM courant on transporte des données applicatives appartenant à deux trames compressées successives. En d'autres termes, l'information de mise en paquets Sep 219 permet, à la réception des données, de distinguer les données appartenant à une trame courante et les données appartenant à une trame précédant la trame courante. Ainsi, cette information de mise en paquets Sep 219 permet de donner une information sur la présence, dans le cycle TDM courant, d'un nombre N de données applicatives (reçues en provenance du noeud source) appartenant à une trame précédant la trame courante, avec N O. Il est tout aussi concevable de donner une information sur la présence, dans le cycle TDM courant, d'un nombre Nb de données applicatives appartenant à une trame Fr2 suivant une trame Fr2 courante, avec Nb 0, des données applicatives issues des trames Fr1 et Fr2 étant transportées via le réseau dans un même cycle TDM.
Il est aussi concevable que l'information de contrôle Sep 219 soit transmise via le réseau dans un cycle TDM différent que les données applicatives auxquelles cette information de contrôle se réfère. Il est important que cette information soit disponible auprès du bloc de détection de frontière de trame 321 lorsque les données applicatives auxquelles cette information de contrôle se réfère sont à traiter à réception, selon l'algorithme décrit en relation avec la figure 5. Après une étape d'initialisation 600, on passe aux étapes de détection 601 et 603. Ces étapes 601 et 603 sont effectuées en parallèle par le bloc de détection de frontière de trame 222.
A l'étape 601, on détecte un marqueur Start_of_frame 209 permettant de délimiter deux trames de données successives (déterminer la frontière entre les trames). Dans l'affirmative à l'étape 601, on passe à l'étape 602 dans laquelle on initialise une variable interne N avec le nombre Nb_words de données applicatives traitées présentes dans la mémoire tampon 211, puis on passe à l'étape 603. Dans la négative à l'étape 601, on passe directement à l'étape 603. A l'étape 603, on détecte un début de cycle TDM (détection de l'impulsion TDM cycle ). Dans la négative à l'étape 603, on retourne aux étapes de détection 601 et 603. Dans l'affirmative à l'étape 603, on passe à l'étape 604 dans laquelle on détecte si, lors du cycle TDM courant, les données applicatives traitées présentes dans la mémoire tampon 211, avant changement de trame compressée, seront lues par le module de transport 213 lors du cycle TDM courant. En d'autres termes, à l'étape 604 on compare la variable interne N à un nombre de lectures prédéfinies que peut effectuer le module de transport 213, ce qui correspond à la partie utile qui peut être émise pendant un cycle TDM ( TDM payload en anglais).
Sur détection que la variable interne N est supérieure ou égale au nombre de lecture prédéfinie TDM payload que peut effectuer le module de transport 213 (en d'autres termes, si la dernière donnée applicative traitée de la trame précédente n'est pas transportée dans le cycle TDM courant), on passe à l'étape 605 dans laquelle la variable interne N est diminuée du nombre de lectures prédéfinies TDM payload , de manière à mémoriser l'index de cette dernière donnée applicative traitée au moment du prochain évènement de début de cycle TDM. Puis, on retourne aux étapes de détection 601 et 603. Sur détection que la variable interne N est inférieure ou égale au nombre de lectures prédéfinies TDM payload que peut effectuer le module de transport 213 (en d'autres termes, si la dernière donnée applicative traitée de la trame précédente est transportée dans le cycle TDM courant), on passe à l'étape 606 dans laquelle on génère l'information de mise en paquets Sep . Puis, à l'étape 607 on affecte la valeur N à l'information de mise en paquets Sep et on écrit l'information de mise en paquets Sep dans la mémoire tampon 220, pour qu'elle soit lue par le module de transport 213, pendant le cycle TDM courant. Enfin, on retourne aux étapes de détection 601 et 603. La figure 8 présente un organigramme d'un algorithme de calcul d'un décalage temporel et d'un numéro de cycle TDM ayant servi pour le calcul du décalage temporel, selon un mode de réalisation particulier de l'invention. Cet algorithme est mis en oeuvre par le bloc de calcul de décalage temporel 223 compris dans le noeud source 102 décrit en relation avec la figure 2. Ainsi, cet algorithme permet de générer l'information de synchronisation Synch qui sera utilisée par le bloc de gestion de décalage temporel 322 pour initialiser le début d'affichage de la première trame vidéo régénérée vers l'interface HDMI 326.
Le principe consiste, pour chaque trame vidéo en provenance de l'interface HDMI 204, de mesurer le décalage temporel entre l'évènement de début de trame (fourni via le signal Vsync 203) et l'évènement de début d'un cycle TDM de référence (fourni via le signal TDM cycle 217), et de déterminer le numéro du cycle TDM de référence.
Ces informations de décalage temporel et de numéro de cycle TDM, qui forment une information de synchronisation Synch , sont ensuite directement écrites en mémoire tampon 218 pour être transportées, au cours du cycle TDM suivant, sur le réseau 105, et ce indépendamment du temps de traitement dans le module de traitement vidéo 206.
Après une étape d'initialisation 800, on passe à l'étape 801 dans laquelle on initialise des variables locales de comptage CptCntClk et CptTDMcycle . Ces variables de comptage sont mises à zéro. Dans l'étape 802, on attend un événement.
Suite à la détection d'un évènement de début de cycle TDM (étape 830), on passe à l'étape 831 dans laquelle on remet à zéro la variable de comptage CptCntClk , et on incrémente d'une unité la variable de comptage CptTDMcycle , indiquant le numéro du cycle TDM courant. Puis, on retourne à l'étape 802. Suite à la détection d'un événement d'horloge réseau (étape 820), on incrémente d'une unité la variable de comptage CptCntClk . On note que la période de cet événement d'horloge réseau est un sous-multiple de la période de référence TDM qui est commune à l'ensemble des noeuds du réseau 105 par construction. Puis, on retourne à l'étape 802. Suite à la détection d'un évènement représentatif d'un début de réception d'une trame de données applicatives (étape 810), on passe à l'étape 811 dans laquelle on affecte la valeur de la variable de comptage CptCntClk au décalage temporel OffsetSource , et la valeur de la variable de comptage de cycle TDM courant CptTDMcycle au numéro de cycle TDM de référence referenceTDMcycle . Dans l'étape 812, on écrit ces informations de décalage temporel et de numéro de cycle TDM de référence, qui forment une information de synchronisation Synch , dans la mémoire tampon 218. Ainsi, l'information de synchronisation Synch est rendue disponible pour transmission sur le réseau 105, au cours du prochain cycle TDM. Puis, on retourne à l'étape 802. La figure 5 présente un organigramme d'un procédé de réception et d'utilisation de l'information de synchronisation précitée (Synch), selon un mode de réalisation particulier de l'invention. Ce procédé de l'invention est mis en oeuvre par les noeuds récepteurs 103 et 106 décrits en relation avec la figure 3, et sera plus amplement détaillé en relation avec les figures 9a, 9b et 9c. Dans une première étape 500, on détecte une information de synchronisation Synch comprenant un décalage temporel (Os) et un numéro de cycle correspondant à un cycle TDM ayant servi au calcul du décalage temporel.
Les étapes 501 à 504 décrites ci-après sont relatives à une phase d'initialisation. Suite à la détection d'une information de synchronisation Synch , on passe à l'étape 501 dans laquelle on initialise une première temporisation avec une durée supérieure ou égale à la somme des différentes latences de traitement avant transmission et de traitement après transmission mis en oeuvre dans les différents noeuds du réseau, puis on attend l'expiration de cette première temporisation. Ainsi, dans cette étape 501 on attend l'expiration d'un nombre entier de cycles TDM représentant la latence maximale subit par une donnée vidéo avant affichage. Cette attente permet de garantir que les données seront présentes pour leur affichage.
Suite à la détection de l'expiration de la première temporisation, on passe à l'étape 502 dans laquelle on initialise une seconde temporisation avec la valeur du décalage temporel (Os) (exprimée en nombre de cycles d'horloge réseau) contenue dans l'information de synchronisation Synch , puis on attend l'expiration de cette seconde temporisation. Ainsi, cette attente permet de démarrer le noeud récepteur en phase (relative) avec le noeud source. Suite à la détection de l'expiration de la seconde temporisation, on passe à l'étape 503 dans laquelle on génère un événement représentatif d'un début de génération (localVSYNC) d'une trame de données applicatives régénérées. Bien entendu la première temporisation et la seconde temporisation pourraient être traitées comme une seule et unique temporisation d'une durée égale à la somme des durées de la première et de la seconde temporisation. Dans l'étape 504, on initialise un compteur de cycles TDM (compris dans le noeud récepteur) avec la valeur du numéro de cycle contenue dans l'information de synchronisation Synch . L'initialisation du compteur de cycles TDM avec la valeur du cycle TDM ayant servi au calcul du décalage temporel (Os) permet au(x) noeud(s) récepteur(s) d'avoir un compteur de cycles TDM en phase avec celui du noeud source. Puis, on retourne à l'étape 500. Suite à la génération du premier événement représentatif d'un début de génération (1oca1VSYNC) d'une trame de données applicatives régénérées à l'étape 503, le processus d'affichage de l'image commence (étape 5006). Le processus d'affichage s'effectue en balayant tous les pixels de l'image (actifs et inactifs). Après l'affichage complet d'une image, un événement de début de trame (localVSYNC) est de nouveau généré (étape 5005). Ainsi, après avoir généré le premier événement (étape 503) le noeud récepteur génère, à intervalle de temps régulier et en fonction des paramètres inhérents à l'image (nombre de pixels par image), d'autres événements du même type. La période entre deux événements successifs est donc déterminée par le format de l'image. Comme on le verra ci-après, l'invention propose de modifier la période (étape 5006) entre deux événements, en jouant sur le nombre de pixels inactifs à balayer, pour corriger une éventuelle dérive entre l'horloge applicative source et l'horloge applicative réceptrice. A nouveau dans l'étape 500, on détecte une nouvelle information de synchronisation Synch comprenant un décalage temporel (Os) et un numéro de cycle associé à un cycle TDM ayant servi au calcul du décalage temporel. Les étapes 505 à 509 décrites ci-après sont relatives à une phase de correction (aussi appelée régime établi). Suite à la détection d'une information de synchronisation Synch , on passe à l'étape 505 dans laquelle on se met en attente de l'événement représentatif d'un début de génération (localVSYNC) d'une trame de données applicatives régénérées, généré à l'étape 5005. Dans l'étape 506, on calcule un décalage temporel local (noté par la suite Od ) entre l'instant de génération de l'événement (Vsync) (étape 505) et un instant de début d'un cycle TDM de référence identifié par le numéro de cycle contenu dans la nouvelle information de synchronisation Synch reçue à l'étape 500. Dans l'étape 507, on détermine une dérive entre l'horloge applicative source et l'horloge applicative réceptrice. Ainsi, à cette étape 507 on calcule la différence entre le décalage temporel local (Od) calculé à l'étape 506 et le décalage temporel (Os) contenu dans la nouvelle information de synchronisation Synch reçue à l'étape 500. Ensuite dans l'étape 508, on compare la valeur de la dérive (calculée à l'étape 507) et un seuil de correction prédéterminé, correspondant à une dérive maximale prédéterminée et exprimée en nombre de pixels. Enfin, si la valeur de la dérive est supérieure ou égale au seuil de correction prédéterminé, on passe à l'étape 509 dans laquelle on modifie, en fonction de la dérive, la période (étape 5006) entre l'instant de génération de l'événement généré à l'étape 5005 et l'instant de génération du prochain événement. Puis, on retourne à l'étape 500, de manière à répéter les étapes 505, 506, 507, 508 et 509, à chaque détection d'une information de synchronisation Synch . La figure 7 présente un organigramme d'un algorithme de gestion d'informations de délimitation de trames, selon un mode de réalisation particulier de l'invention. Cet algorithme est mis en oeuvre par le bloc de détection de frontière de trame 321 compris dans chaque noeud récepteur décrit en relation avec la figure 3. Le principe consiste à initialiser le démarrage des opérations de traitement (par exemple des opérations de décompression) du module de traitement vidéo 315 sur le début d'une trame, puis restituer de manière cohérente une information de début de trame suivante au regard de la transmission des données applicatives délivrées en sortie de la mémoire tampon 308. Après une étape d'initialisation 700, on passe à une étape 716 dans laquelle on détecte un évènement représentatif d'une réception d'une information de synchronisation Synch . Dans la négative à l'étape 716, la mémoire tampon 308 est vidée de son contenu à l'étape 717. Dans l'affirmative à l'étape 716, on passe à une étape d'attente 701 et on y reste jusqu'à détection d'un début de cycle TDM. Suite à la détection d'un début de cycle TDM, on passe à l'étape 702 dans laquelle on détecte si une information de mise en paquets Sep (indiquant un début de trame applicative, compressée dans le présent exemple) est présente parmi les données reçues durant le cycle TDM précédent. Dans la négative à l'étape 702, on passe à l'étape 703 dans laquelle les données applicatives présentes dans la mémoire tampon 308 sont effacées, puis on retourne à l'étape 701. Dans l'affirmative à l'étape 702, on passe à l'étape 704 dans laquelle on supprime les X premières données présentes dans la mémoire tampon 308. Le nombre X est égal à l'information de mise en paquets Sep . Ainsi, on garantit que la première donnée conservée correspond à la première donnée d'une trame applicative. A l'étape 705, on initialise une variable interne N avec le nombre Nb_words de données applicatives présentes dans la mémoire tampon 308.
A l'étape 706, on génère un signal Start_of_frame 320 permettant de signaler au module de traitement 315 le démarrage du traitement vidéo (par exemple une décompression de données). A l'étape 707, on remet à zéro une variable interne Nb_written .
Les étapes suivantes sont relatives à une phase d'alignement de la génération du signal Start_of_frame sur la première donnée d'une trame et pour chacune des trames ultérieures délivrées en sortie de la mémoire tampon 308. A l'étape 708, on détecte un évènement représentatif d'une fin de cycle TDM courant.
Dans la négative à l'étape 708, le nombre de données applicatives écrites en mémoire tampon 308 est calculé au travers de l'incrément (étape 710) de la variable interne Nb written sur événement Wr D d'écriture de donnée dans la mémoire tampon 308 (étape 709). Suite à la détection d'un évènement représentatif d'une fin de cycle TDM courant, on passe à l'étape 711 dans laquelle on initialise la variable interne N avec le nombre total de données applicatives présentes dans la mémoire tampon 308, et on calcule le nombre R de données applicatives résiduelles écrites dans la mémoire tampon 308 durant le cycle TDM précédent. On entend par données applicatives résiduelles les données reçues durant le cycle TDM précédent et présentes dans la mémoire tampon 308, c'est-à-dire les données restant à lire de la mémoire tampon 308 pour atteindre la fin de trame en cours de traitement par le module de traitement vidéo 315. A l'étape 712, on détecte si une information de mise en paquets Sep est reçue au cours du cycle TDM précédent. Dans la négative à l'étape 712, on retourne à l'étape 707. Ainsi on réinitialise le calcul pour le cycle TDM qui vient de démarrer. Dans l'affirmative à l'étape 712, on passe à une étape d'attente 713 et on y reste jusqu'à détection d'un signal Rd_D 330 généré par le module de traitement vidéo 315. Suite à la détection d'un signal Rd_D , on passe à l'étape 714 dans laquelle on décrémente d'une unité le nombre R . Ainsi, le nombre R est décrémenté d'une unité à chaque lecture d'une donnée applicative.
Enfin, à l'étape 715 on détecte si le nombre R est nul. Si le nombre R est nul, cela signifie que la donnée lue correspond à la dernière donnée de la trame courante, alors on retourne à l'étape 706, sinon on retourne à l'étape 713. Les figures 9a à 9c présentent un organigramme d'un algorithme d'utilisation d'une information de synchronisation Synch (contenant une valeur de décalage temporel et un numéro de cycle TDM ayant servi pour le calcul du décalage temporel), selon un mode de réalisation particulier de l'invention. Cet algorithme est mis en oeuvre par les blocs de gestion de décalage temporel 322 et de génération d'image vidéo 324, compris dans chaque noeud récepteur décrit en relation avec la figure 3.
Pour générer l'information de début d'affichage de la première trame vidéo, le principe consiste à gérer une temporisation entre l'instant de réception de l'information de synchronisation Synch et l'instant de génération de la commande de démarrage de l'affichage. Cette temporisation s'exprime comme la somme d'un nombre entier de cycles TDM prédéterminé (première partie) et de la valeur du décalage temporel contenue dans l'information de synchronisation Synch (seconde partie). Comme expliqué précédemment, la première partie de cette temporisation est fonction des temps de latence associé aux traitements vidéo avant transmission et après transmission dans les modules de traitement vidéo 206 et 315. Par la nature variable du temps de traitement des modules de traitement vidéo 206 et 315, le temps global de transport d'une donnée applicative, entre son instant d'arrivée au niveau du signal 201 et son instant d'écriture en mémoire tampon 317, subit de fortes variations. Cette temporisation va permettre de rendre ces variations transparentes vis-à-vis du mécanisme de synchronisation du temps de présentation des images vidéo (c'est-à-dire des données applicatives régénérées par le noeud récepteur), et permettre ainsi la mise en place dans le réseau 105 de noeuds de communications qui implémentent des traitements vidéo hétérogènes. On présente maintenant en relation avec la figure 9a, un organigramme d'un algorithme d'initialisation du système et de génération d'un signal de début d'affichage de la première trame vidéo.
Après une étape d'initialisation de l'algorithme (étape 900), les signaux Synch_received , StartVSYNC , Start , CptTDMcycle , referenceTDMcycle et OffsetSource sont mis à zéro à l'étape 901. Une variable interne CptTDMcycle d'un compteur de cycles (destiné à compter un nombre de cycles TDM) est mise à zéro (étape 901). Lorsque dans un cycle TDM, la première information de synchronisation Synch est détectée au travers du signal 327 (étape 902), le signal Synch_received change d'état (étape 903) pour autoriser le démarrage des opérations d'alignement de trame réalisées par le bloc de détection 321. Ces opérations consistent à aligner le démarrage du traitement vidéo (ou traitement après transmission ), effectué par le module de traitement vidéo 315, sur les données applicatives présentes dans la mémoire tampon 308. Par ailleurs (à cette même étape 903), la variable CptTDMcycle du compteur de cycle TDM et la variable de comptage CptCntClk sont mises à zéro. Puis, on attend un événement (étape 904). Suite à la détection d'un évènement de début de cycle TDM (étape 910), on incrémente d'une unité (étape 911) la variable CptTDMcycle du compteur de cycles TDM, puis on compare la variable CptTDMcycle à un seuil prédéterminé (étape 912). La valeur de ce seuil est prédéterminée en fonction des latences maximales associées aux modules de traitement vidéo 206 et 315. En d'autres termes, la valeur du seuil est calculée comme étant la somme des latences maximales de traitements maximisée à un nombre entier de cycle TDM.
Dans un premier mode de réalisation en variante, seul le noeud source possède un module de traitement, les noeuds récepteurs ne possèdent pas de module de traitement après transmission. Dans ce cas, la valeur du seuil précité est prédéterminée en fonction de la latence maximale associée au module de traitement vidéo 206 (avant transmission). Dans un second mode de réalisation en variante, le noeud source transmet les données applicatives à une pluralité de noeuds récepteurs, qui ont des traitements après transmission qui diffèrent les uns des autres. Dans ce cas, la valeur du seuil précité est prédéterminée en fonction de la plus grande valeur parmi les latences maximales associées à chacun des modules de traitement vidéo 315 (après transmission) des noeuds récepteurs. Une telle information peut être par exemple échangée par les noeuds d'un système de communication utilisant le réseau numérique synchrone 105 dans une phase d'initialisation des communications, en utilisant par exemple des canaux dédiés au contrôle. Si la variable CptTDMcycle n'est pas égale au seuil prédéterminé, alors on retourne à l'étape 904.
En revanche, lorsque la variable CptTDMcycle est égale au seuil prédéterminé, la mémoire tampon 317 contient forcément la première donnée applicative de la première trame à régénérer en direction de l'interface de sortie HDMI 326. En effet, le temps de traversée d'une donnée de contrôle ou d'une donnée applicative est constant au travers du réseau 105, puisque le réseau 105 est par construction synchrone. Ceci permet de garantir un même temps de transfert (qui est un multiple entier de cycles TDM) quelque soit le canal virtuel VC emprunté. Par ailleurs, on note que les informations de synchronisation Synch ne subissent aucun traitement (ou négligeable comparé aux traitements effectués par les modules de traitement vidéo 206 et 315), et sont envoyées sur le réseau pendant le cycle TDM qui suit le cycle TDM de calcul de la valeur du décalage temporel OffsetSource . On note également que les données applicatives subissent, en plus de la latence du réseau 105, une latence de traitement variable au sein du noeud source et au sein du noeud récepteur. Par ailleurs, lorsque la variable CptTDMcycle du compteur de cycle est égale au seuil prédéterminé, ce compteur de cycle est initialisé (étape 913) avec la valeur referenceTDMcycle contenue dans la première information de synchronisation Synch (reçue à l'étape 902). Ainsi, le noeud récepteur génère le signal d'affichage de la première trame vidéo pendant un cycle TDM ayant un numéro de cycle identique à celui du cycle TDM de référence (c'est-à-dire le cycle TDM pendant lequel le noeud source a détecté l'évènement représentatif d'un début de réception d'une trame de données applicatives (impulsion Vsync . Ensuite, la variable de comptage CptCntClk est mise à zéro, et la variable StartVSYNC change d'état (StartVSYNC est égale à 1). Puis, on retourne à l'étape 904. Suite à la détection d'un événement d'horloge réseau (étape 905), on incrémente d'une unité la variable de comptage CptCntClk (étape 906). On note que la période de cet événement d'horloge réseau est un sous-multiple de la période de référence TDM qui est commune à l'ensemble des noeuds du réseau 105 par construction.
Ensuite, si on détecte que la variable StartVSYNC est égale à 1 (étape 907) et que la variable de comptage CptCntClkk est égale à la valeur du décalage temporel contenue dans l'information de synchronisation Synch (étape 908), alors le signal Start 323 est activé (étape 909) (signal Start mis à 1), puis envoyé vers le module de régénération d'affichage 324, afin de déclencher la génération de début d'image vers l'interface de sortie HDMI 326. Le rythme de génération des trames vidéo par le module 324 du noeud récepteur est ensuite défini avec les mêmes paramètres temporels que ceux des trames vidéo du noeud source. Du fait que chaque noeud génère une horloge applicative à partir d'un quartz local, les horloges applicatives des différents noeuds du réseau sont très légèrement différentes, ce qui entraîne des dérives. Pour corriger ces dérives, et ainsi conserver la synchronisation vidéo entre les différents noeuds, les noeuds récepteurs effectuent, de la même façon que le noeud source, une mesure de décalage temporel (noté par la suite OffsetReceiver ) entre un instant de génération, par le module de régénération d'affichage 324, d'un signal de début de trame vidéo (Vsync) et un instant (ou événement) de référence d'un cycle réseau. A titre d'exemple, on utilisera par la suite comme instant (ou événement) de référence le début de cycle réseau (ou TDM). Le décalage temporel ( OffsetReceiver ) mesuré au niveau du noeud récepteur est ensuite comparé au décalage temporel ( OffsetSource ) mesuré au niveau du noeud source.
Ainsi, la valeur de la dérive entre l'horloge applicative du noeud source et l'horloge applicative du noeud récepteur est donnée par la différence entre les deux valeurs de décalage temporel (OffsetReceiver - OffsetSource). Pour que la comparaison des deux décalages temporels soit pertinente, le choix du cycle TDM à considérer pour la mesure du décalage temporel ( OffsetReceiver ) au niveau du noeud récepteur est prépondérant. En effet, il est nécessaire que la mesure du décalage temporel ( OffsetReceiver ) au niveau du noeud récepteur soit relative au même cycle TDM que la mesure décalage temporel ( OffsetSource ) au niveau du noeud source. Pour ce faire, lors d'une phase d'initialisation, on initialise le compteur de cycles TDM local de chaque noeud récepteur avec la valeur du compteur de cycles TDM local du noeud récepteur, cette valeur d'initialisation correspondant au numéro du cycle TDM ayant servi pour le calcul du décalage temporel ( OffsetSource ) au niveau du noeud source. On note que, sans une telle numérotation de cycle TDM, si l'événement de début de trame (Vsync) généré au niveau du noeud source est très proche d'une frontière de cycle TDM (c'est-à-dire proche d'un événement de début de cycle TDM), alors, du fait de la dérive entre le noeud source et le noeud récepteur, l'événement de début de trame généré au niveau du noeud récepteur peut se retrouver dans un cycle TDM voisin du cycle TDM de référence. Ainsi, si on ne met pas en oeuvre une numérotation de cycle TDM, la mesure du décalage temporel ( OffsetReceiver ) au niveau du noeud récepteur peut être erroné, en ce sens où, par exemple, un décalage temporel très grand peut devenir très petit en étant mesuré par rapport au début de cycle TDM suivant et inversement. On présente désormais en relation avec la figure 9b, un organigramme d'un algorithme de calcul d'un décalage temporel entre le signal de début de trame vidéo (hormis pour le premier signal Vsync) et un début de cycle TDM. Après la phase d'initialisation et de génération de l'information de début d'affichage de la première trame vidéo, le système se met en attente d'un événement (étape 914). La variable CptCntClk s'incrémente d'une unité (étape 941) sur chaque événement de l'horloge réseau (étape 940), dont la période est un sous-multiple de la période de référence TDM qui est commune à l'ensemble des noeuds du réseau 105 par construction (couche de transport TDM synchrone). Sur réception (étape 920) de l'information de synchronisation Synch , le système met à jour la valeur du cycle TDM de référence referenceTDMcycle et la valeur du décalage temporel OffsetSource mesuré au niveau du noeud source avec les valeurs contenues dans l'information de synchronisation Synch reçue (étape 921).
Sur détection d'un début de cycle TDM (étape 950) la valeur CptTDMcycle du compteur de cycles TDM est incrémentée d'une unité (étape 951). Si la variable localVSYNC est égale à zéro (étape 952) et si la valeur CptTDMcycle du compteur de cycles TDM est inférieure ou égale à la valeur referenceTDMcycle (étape 954), alors la variable de comptage CptCntClk est remise à zéro (étape 955).
En revanche, si la variable localVSYNC est égale à la valeur 1 (étape 952) et si la valeur CptTDMcycle du compteur de cycles TDM est égale à la valeur referenceTDMcycle (étape 953) (c'est-à-dire au cycle TDM de référence), alors la valeur du décalage temporel ( OffsetReceiver ) au niveau du noeud récepteur est initialisée avec la variable de comptage CptCntClk et la variable localVSYNC est remise à zéro (étape 960).
Dans un premier mode de réalisation particulier de l'invention, le décalage temporel ( OffsetReceiver ) au niveau du noeud récepteur peut être mesuré entre le cycle TDM de référence et le signal de début de trame vidéo. Dans un second mode de réalisation particulier de l'invention, le décalage temporel ( OffsetReceiver ) au niveau du noeud récepteur peut être mesuré entre le signal de début de trame vidéo et le cycle TDM de référence. Dans ce cas, le signe de la dérive est inversé. Ainsi, si au moment de la détection du signal de début de trame vidéo (étape 930), ce signal étant généré par le module 324, la valeur du compteur de cycles TDM est supérieure ou égale à la valeur du cycle TDM de référence (étape 931), alors le système met à jour la valeur du décalage temporel ( OffsetReceiver ) au niveau du noeud récepteur avec la valeur de la variable CptCntClk (étape 960), et il remet à zéro la variable localVSYNC . En revanche, si au moment de la détection du signal de début de trame vidéo (étape 930) la valeur du compteur de cycle TDM est inférieure à la valeur du cycle TDM de référence (étape 931), alors le système change l'état de la variable localVSYNC (la variable localVSYNC est mise à 1), et il remet à zéro la variable CptCntClk (étape 932). Une fois la mesure du décalage temporel ( OffsetReceiver ) au niveau du noeud récepteur effectuée, le module 322 calcule la dérive puis la transmet au module 324, via le signal Drift 330. Le module 324 est en charge de corriger la dérive si celle-ci dépasse un seuil prédéfini. Comme décrit ci-après, cette correction de la dérive consiste à supprimer ou ajouter (suivant le signe de la dérive), dans la partie inactive de la trame vidéo (de données applicatives après traitement par le module de traitement vidéo 315), un nombre de pixels correspondant au seuil. Ainsi, il est possible de retarder ou avancer la prochaine génération du signal de début de trame vidéo Vsync.
On présente maintenant en relation avec la figure 9c, un organigramme d'un algorithme de calcul et de correction d'une dérive entre l'horloge de l'application source du noeud source et l'horloge de l'application réceptrice (ou consommatrice) du noeud récepteur. Tout d'abord, le module 322 compare la valeur du décalage temporel ( OffsetReceiver ) mesurée au niveau du noeud récepteur avec la valeur du décalage temporel ( OffsetSource ) mesurée au niveau du noeud source (étape 961). On détermine ainsi une valeur de dérive entre l'horloge de l'application source du noeud source et l'horloge de l'application réceptrice (ou consommatrice) du noeud récepteur. Ensuite, le module 322 affecte la valeur de la dérive à la variable Drift fournit au module 324.
Puis, le module 324 compare la valeur absolue de la variable Drift à la valeur d'un seuil prédéterminé (étape 962). Ce seuil est prédéterminé en fonction d'une tolérance acceptable de dérive entre les applications source et réceptrice. Si la valeur absolue de la variable Drift est inférieure au seuil prédéterminé, alors le module 324 n'effectue aucune correction.
En revanche, si la valeur absolue de la variable Drift est supérieure ou égale au seuil prédéterminé, alors le module 324 vérifie le signe de la dérive (étape 963) (c'est-à-dire le signe de la variable Drift ). Si le signe de la dérive est positif, alors le module 324 supprime des pixels (étape 964) dans la partie inactive de la trame vidéo, sinon il ajoute (étape 965) des pixels dans la partie inactive de la trame vidéo. Le nombre de pixels supprimés ou ajoutés correspond à la valeur du seuil.

Claims (20)

  1. REVENDICATIONS1. Procédé de synchronisation d'une transmission de trames de données applicatives fournies à un dispositif d'émission, la transmission s'effectuant entre ledit dispositif d'émission (102) et au moins un dispositif de réception (103) via un réseau de 5 communication synchrone (105) mettant en oeuvre un cadencement qui définit des cycles réseau successifs, caractérisé en ce que, sur détection d'un événement représentatif d'un début d'une trame de données applicatives (Vsync), ledit dispositif d'émission effectue des étapes consistant à : - déterminer (400) une information (Os) de décalage temporel entre l'instant de détection dudit événement (Vsync) et un instant de référence d'un cycle réseau, ainsi qu'une information de position dudit cycle réseau dans un enchaînement de cycles réseau ; - transmettre (402), via ledit réseau, ladite information de décalage temporel et ladite information de position, pendant un premier cycle réseau prédéterminé ; - traiter pour transmission via ledit réseau, dans un lapse de temps borné, un ensemble de données applicatives à compter du début de la trame ; - transmettre, via ledit réseau, lesdites données applicatives traitées, à compter d'un second cycle réseau prédéterminé ultérieur audit premier cycle réseau prédéterminé.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que ledit premier cycle réseau prédéterminé est le cycle réseau suivant la détection dudit événement par ledit dispositif d'émission.
  3. 3. Procédé de synchronisation d'une transmission de trames de données 25 applicatives à régénérer par un dispositif de réception, la transmission s'effectuant entre un dispositif d'émission (102) et ledit dispositif de réception (103) via un réseau de communication synchrone (105) mettant en oeuvre un cadencement qui définit des cycles réseau successifs, caractérisé en ce que ledit dispositif de réception effectue des étapes consistant à : 30 - recevoir, en provenance du dispositif d'émission, une première information (Os) de décalage temporel entre un instant de début d'une trame de données 10 15 20applicatives et un instant de début d'un premier cycle réseau, ainsi qu'une information de position dudit premier cycle réseau dans un enchaînement de cycles réseau ; - déterminer une deuxième information (Od) de décalage temporel entre un instant de début (Vsync) d'une trame de données applicatives régénérées et un instant de référence d'un second cycle réseau déterminé dans l'enchaînement de cycles réseau, ledit second cycle réseau étant déterminé en fonction de ladite information de position dudit premier cycle réseau ; - régénérer une trame de données applicatives en prenant en compte une dérive de cadencement obtenue à partir de ladite première information de décalage temporel et ladite deuxième information de décalage temporel.
  4. 4. Procédé selon la revendication 3, caractérisé en ce que l'instant de début (Vsync) d'une trame de données applicatives régénérées est déterminé en fonction : - d'un instant de début d'une trame de données applicatives régénérées qui précède ladite trame ; et - d'une durée prédéterminée entre deux instants de début de trames successives.
  5. 5. Procédé selon l'une quelconque des revendications 3 et 4, caractérisé en ce que, suite à l'obtention de l'information de position du premier cycle réseau dans l'enchaînement de cycles réseau, le noeud d'émission et le noeud de réception disposant 20 d'une représentation interne d'enchaînement de cycles réseau, ledit dispositif de réception effectue des étapes consistant à : - attendre que soit écoulé un nombre de cycles réseau fonction d'un temps maximum prédéfini pour que le dispositif d'émission effectue un traitement pour transmission d'une trame de données applicatives ; 25 - initialiser la représentation dudit enchaînement de cycles réseau interne au dispositif de réception avec l'information de position du premier cycle réseau ; et en ce que la position du second cycle réseau dans la représentation d'enchaînement de cycle interne au dispositif de réception est identique à la position du premier cycle réseau dans la représentation d'enchaînement de cycle interne au dispositif d'émission. 30
  6. 6. Procédé selon la revendication 5, caractérisé en ce que, avant d'effectuer l'étape consistant à initialiser la représentation dudit enchaînement de cycles réseau 10 15interne au dispositif de réception, ledit dispositif de réception attend en outre que soit écoulé un nombre additionnel de cycles réseau fonction d'un temps maximum prédéfini pour qu'un dispositif de réception traite pour régénération une trame de données applicatives à partir de données applicatives reçues du dispositif d'émission.
  7. 7. Procédé selon la revendication 6, caractérisé en ce que, ladite transmission s'effectuant à destination d'une pluralité de dispositifs de réception, il comprend une étape consistant à : - obtenir, de chaque autre dispositif de réception de ladite pluralité de dispositifs de réception, une information de durée maximum prédéfinie pour que ledit autre dispositif de réception régénère une trame de données applicatives à partir de données applicatives reçues du dispositif d'émission ; et en ce que ledit nombre additionnel de cycles réseau est fonction de la plus grande valeur parmi les durées dont une information a été obtenue.
  8. 8. Procédé selon l'une quelconque des revendications 3 à 7, caractérisé en ce que ladite dérive de cadencement est prise en compte pour régénérer une trame de données applicatives si ladite dérive en valeur absolue est supérieure ou égale à un seuil prédéterminé.
  9. 9. Procédé selon l'une quelconque des revendications 3 à 8, caractérisé en ce que, chaque trame de données applicatives comprenant une partie inactive de données et une partie active de données, l'étape consistant à régénérer une trame de données applicatives en prenant en compte la dérive de cadencement comprend une sous-étape consistant à modifier la partie inactive de ladite trame courante en fonction du signe de ladite dérive de cadencement.
  10. 10. Produit programme d'ordinateur, téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé de transmission selon au moins une des revendications 1 et 2 et/ou du procédé de réception selon au moins une des revendications 3 à 9, lorsque ledit programme est exécuté sur un ordinateur.
  11. 11. Moyen de stockage, éventuellement totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateurpour mettre en oeuvre le procédé de transmission selon au moins une des revendications 1 et 2 et/ou le procédé de réception selon au moins une des revendications 3 à 9.
  12. 12. Dispositif d'émission (102) comprenant des moyens de synchronisation d'une transmission de trames de données applicatives fournies à un dispositif d'émission, la transmission s'effectuant entre ledit dispositif d'émission et au moins un dispositif de réception (103) via un réseau de communication synchrone (105) mettant en oeuvre un cadencement qui définit des cycles réseau successifs, ledit dispositif d'émission étant caractérisé en ce qu'il comprend les moyens suivants, activés sur détection d'un événement représentatif d'un début d'une trame de données applicatives (Vsync) : - des moyens de détermination d'une information (Os) de décalage temporel entre l'instant de détection dudit événement (Vsync) et un instant de référence d'un cycle réseau, ainsi que d'une information de position dudit cycle réseau dans un enchaînement de cycles réseau ; - des moyens de transmission permettant de transmettre, via ledit réseau, ladite information de décalage temporel et ladite information de position, pendant un premier cycle réseau prédéterminé ; - des moyens de traitement pour transmission via ledit réseau, dans un lapse de temps borné, d'un ensemble de données applicatives à compter du début de la trame ; - des moyens de transmission permettant de transmettre, via ledit réseau, lesdites données applicatives traitées, à compter d'un second cycle réseau prédéterminé ultérieur audit premier cycle réseau prédéterminé.
  13. 13. Dispositif d'émission selon la revendication 12, caractérisé en ce que ledit 25 premier cycle réseau prédéterminé est le cycle réseau suivant la détection dudit événement par ledit dispositif d'émission.
  14. 14. Dispositif de réception (103) comprenant des moyens de synchronisation d'une transmission de trames de données applicatives à régénérer par ledit dispositif de réception, la transmission s'effectuant entre un dispositif d'émission (102) et ledit 30 dispositif de réception (103) via un réseau de communication synchrone (105) mettant en oeuvre un cadencement qui définit des cycles réseau successifs, 20ledit dispositif de réception étant caractérisé en ce qu'il comprend : - des moyens de réception, en provenance du dispositif d'émission, d'une première information (Os) de décalage temporel entre un instant de début d'une trame de données applicatives et un instant de début d'un premier cycle réseau, ainsi que d'une information de position dudit premier cycle réseau dans un enchaînement de cycles réseau ; - des moyens de détermination permettant de déterminer une deuxième information (Od) de décalage temporel entre un instant de début (Vsync) d'une trame de données applicatives régénérées et un instant de référence d'un second cycle réseau déterminé dans l'enchaînement de cycles réseau, ledit second cycle réseau étant déterminé en fonction de ladite information de position dudit premier cycle réseau ; - des moyens de régénération d'une trame de données applicatives en prenant en compte une dérive de cadencement obtenue à partir de ladite première information de décalage temporel et ladite deuxième information de décalage temporel.
  15. 15. Dispositif de réception selon la revendication 14, caractérisé en ce que l'instant de début (Vsync) d'une trame de données applicatives régénérées est déterminé en fonction : - d'un instant de début d'une trame de données applicatives régénérées qui précède ladite trame ; et - d'une durée prédéterminée entre deux instants de début de trames successives.
  16. 16. Dispositif de réception selon l'une quelconque des revendications 14 et 15, caractérisé en ce que, le noeud d'émission et le noeud de réception disposant d'une 25 représentation interne d'enchaînement de cycles réseau, ledit dispositif de réception étant caractérisé en ce qu'il comprend les moyens suivants, activés suite à l'obtention de l'information de position du premier cycle réseau dans l'enchaînement de cycles réseau : des moyens d'attente permettant d'attendre que soit écoulé un nombre de cycles 30 réseau fonction d'un temps maximum prédéfini pour que le dispositif d'émission effectue un traitement pour transmission d'une trame de données applicatives ; 10 15 20- des moyens d'initialisation de la représentation dudit enchaînement de cycles réseau interne au dispositif de réception avec l'information de position du premier cycle réseau ; et en ce que la position du second cycle réseau dans la représentation d'enchaînement de cycle interne au dispositif de réception est identique à la position du premier cycle réseau dans la représentation d'enchaînement de cycle interne au dispositif d'émission.
  17. 17. Dispositif de réception selon la revendication 16, caractérisé en ce qu'il comprend en outre des moyens d'attente permettant d'attendre que soit écoulé un nombre additionnel de cycles réseau fonction d'un temps maximum prédéfini pour qu'un dispositif de réception traite pour régénération une trame de données applicatives à partir de données applicatives reçues du dispositif d'émission.
  18. 18. Dispositif de réception selon la revendication 17, caractérisé en ce que, ladite transmission s'effectuant à destination d'une pluralité de dispositifs de réception, il comprend : - des moyens d'obtention, de chaque autre dispositif de réception de ladite pluralité de dispositifs de réception, d'une information de durée maximum prédéfinie pour que ledit autre dispositif de réception régénère une trame de données applicatives à partir de données applicatives reçues du dispositif d'émission ; et en ce que ledit nombre additionnel de cycles réseau est fonction de la plus grande valeur parmi les durées dont une information a été obtenue.
  19. 19. Dispositif de réception selon l'une quelconque des revendications 14 à 18, caractérisé en ce que ladite dérive de cadencement est prise en compte pour régénérer une trame de données applicatives si ladite dérive en valeur absolue est supérieure ou égale à un seuil prédéterminé.
  20. 20. Dispositif de réception selon l'une quelconque des revendications 14 à 19, caractérisé en ce que, chaque trame de données applicatives comprenant une partie inactive de données et une partie active de données, les moyens de régénération d'une trame de données applicatives comprennent des moyens de modification de la partie inactive de ladite trame courante en fonction du signe de ladite dérive de cadencement.
FR0950074A 2009-01-07 2009-01-07 Procede de synchronisation d'une transmission de trames de donnees applicatives, dispositifs d'emission et de reception, produit programme d'ordinateur et moyen de stockage correspondants Expired - Fee Related FR2940874B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0950074A FR2940874B1 (fr) 2009-01-07 2009-01-07 Procede de synchronisation d'une transmission de trames de donnees applicatives, dispositifs d'emission et de reception, produit programme d'ordinateur et moyen de stockage correspondants
US12/683,410 US8369354B2 (en) 2009-01-07 2010-01-06 Method for synchronizing a transmission of applications data frames, corresponding sender and receiver devices and storage means

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0950074A FR2940874B1 (fr) 2009-01-07 2009-01-07 Procede de synchronisation d'une transmission de trames de donnees applicatives, dispositifs d'emission et de reception, produit programme d'ordinateur et moyen de stockage correspondants

Publications (2)

Publication Number Publication Date
FR2940874A1 true FR2940874A1 (fr) 2010-07-09
FR2940874B1 FR2940874B1 (fr) 2012-11-02

Family

ID=40935014

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0950074A Expired - Fee Related FR2940874B1 (fr) 2009-01-07 2009-01-07 Procede de synchronisation d'une transmission de trames de donnees applicatives, dispositifs d'emission et de reception, produit programme d'ordinateur et moyen de stockage correspondants

Country Status (1)

Country Link
FR (1) FR2940874B1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060143335A1 (en) * 2004-11-24 2006-06-29 Victor Ramamoorthy System for transmission of synchronous video with compression through channels with varying transmission delay
WO2008138047A1 (fr) * 2007-05-11 2008-11-20 Audinate Pty Limited Systèmes, procédés et supports lisibles par ordinateur permettant de configurer une latence de récepteur
EP2083526A1 (fr) * 2008-01-24 2009-07-29 Canon Kabushiki Kaisha Procédé de synchronisation de signaux d'horloges applicatifs dans un réseau de communications synchrones, dispositifs émetteurs et récepteurs correspondants, produit de programme informatique et moyens de stockage lisibles par un ordinateur

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060143335A1 (en) * 2004-11-24 2006-06-29 Victor Ramamoorthy System for transmission of synchronous video with compression through channels with varying transmission delay
WO2008138047A1 (fr) * 2007-05-11 2008-11-20 Audinate Pty Limited Systèmes, procédés et supports lisibles par ordinateur permettant de configurer une latence de récepteur
EP2083526A1 (fr) * 2008-01-24 2009-07-29 Canon Kabushiki Kaisha Procédé de synchronisation de signaux d'horloges applicatifs dans un réseau de communications synchrones, dispositifs émetteurs et récepteurs correspondants, produit de programme informatique et moyens de stockage lisibles par un ordinateur

Also Published As

Publication number Publication date
FR2940874B1 (fr) 2012-11-02

Similar Documents

Publication Publication Date Title
EP1432250B1 (fr) Procédé et dispositif de synchronisation de la présentation de Trames audio et/ou de Trames video
FR2964235A1 (fr) Procede de synchronisation, systeme et dispositif correspondants
FR2915338A1 (fr) Procede d'emission et de reception de contenus de donnees dans un reseau de communication, produit programme d'ordinateur, moyen de stockage et dispositifs correspondants
FR2960320A1 (fr) Procede de gestion d'une transmission de donnees depuis un dispositif emetteur, produit programme d'ordinateur, moyen de stockage et dispositif emetteur correspondants
EP3793142B1 (fr) Communication par bus can
EP0756394A2 (fr) Procédé et dispositif de synchronisation d'horloges d'encodeurs et décodeurs numériques
FR2837038A1 (fr) Procede et systeme d'extraction de signal d'horloge permettant une synchronisation des horloges sur un reseau de transmission par paquets
FR2850820A1 (fr) Dispositif et procede de synchronisation en lecture de donnees video et de donnees annexes et produits associes
FR2797549A1 (fr) Procede et dispositif de synchronisation d'un decodeur mpeg
EP3114598B1 (fr) Procédé de fourniture, à un terminal, de contenus multimédias protégés
FR2926937A1 (fr) Procedes de synchronisation d'horloges applicatives dans un reseau de communication synchrone, dispositifs d'emission et de reception, produit programme d'ordinateur et moyen de stockage correspondants.
EP1994765A2 (fr) Generation et exploitation d'un double descripteur temporel pour la transmission d'un signal de synchronisation dans un reseau a commutation par paquets
FR2911460A1 (fr) Initialisation rapide de la base de temps video generant un signal de synchronisation dans un reseau a commutation par paquets
FR2866183A1 (fr) Procedes d'emission et de reception d'une animation, et dispositifs associes
FR2931021A1 (fr) Procede de synchronisation d'un flux de donnees transmis sur un reseau de communication synchrone, produit programme d'ordinateur, moyen de stockage et dispositif recepteur correspondants.
EP2243232A1 (fr) Procede de diffusion d ' un flux de donnees dans un reseau comprenant une pluralite d ' emetteurs ainsi que produit programme d ' ordinateur, tete de reseau et systeme pour la mise en oeuvre de ce procede
FR2940874A1 (fr) Procede de synchronisation d'une transmission de trames de donnees applicatives, dispositifs d'emission et de reception, produit programme d'ordinateur et moyen de stockage correspondants
FR2940873A1 (fr) Procede de synchronisation d'une transmission de trames de donnees applicatives, dispositifs d'emission et de reception, produit programme d'ordinateur et moyen de stockage correspondants
FR3100628A1 (fr) Communication par bus CAN
WO2016092166A1 (fr) Synchronisation d'un réseau cpl
EP2559218B1 (fr) Reception d'un contenu numerique en mode truque
FR2795261A1 (fr) Procede et dispositif de determination d'un instant de reference lie a la reception de donnees
FR2743248A1 (fr) Dispositif de demultiplexage d'informations codees selon une norme mpeg
FR2793624A1 (fr) Procede et dispositif de controle de la synchronisation entre deux noeuds d'un reseau
FR2964234B1 (fr) Procede de controle du rythme d'affichage d'un signal video

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 12

ST Notification of lapse

Effective date: 20210905