FR3036572A1 - Systeme de traitement de donnees numeriques multimedia - Google Patents

Systeme de traitement de donnees numeriques multimedia Download PDF

Info

Publication number
FR3036572A1
FR3036572A1 FR1554449A FR1554449A FR3036572A1 FR 3036572 A1 FR3036572 A1 FR 3036572A1 FR 1554449 A FR1554449 A FR 1554449A FR 1554449 A FR1554449 A FR 1554449A FR 3036572 A1 FR3036572 A1 FR 3036572A1
Authority
FR
France
Prior art keywords
data
processing
time
subsystems
subsystem
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
FR1554449A
Other languages
English (en)
Other versions
FR3036572B1 (fr
Inventor
Nicolas Sturmel
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.)
DIGIGRAM DIGITAL, FR
Original Assignee
Digigram
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 Digigram filed Critical Digigram
Priority to FR1554449A priority Critical patent/FR3036572B1/fr
Priority to PCT/FR2016/051182 priority patent/WO2016185143A1/fr
Publication of FR3036572A1 publication Critical patent/FR3036572A1/fr
Application granted granted Critical
Publication of FR3036572B1 publication Critical patent/FR3036572B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

L'invention concerne un système (1) de traitement de données numériques multimédia comprenant une interface de communication avec un réseau externe (4) pour envoyer vers l'extérieur et recevoir de l'extérieur du système des données numériques multimédia sous forme de paquet cadencés en temps, un ensemble de sous-systèmes de traitement (2) communiquant entre eux au moyen d'un réseau interne (5) audit système, les sous-systèmes de traitement étant configurés pour mettre en œuvre des opérations de traitement sur les données, dans lequel les données transitent sur le réseau interne au moyen de datagrammes comprenant lesdites données, chacun desdits datagrammes comprenant une estampille temporelle comprenant une information de temps de référence déterminée par le module de recalage à partir de l'horloge interne, l'organisation temporelle de la mise en œuvre des opérations de traitement sur les données par les sous-systèmes de traitement étant fonction des estampilles temporelles des datagrammes desdites données, indépendamment du temps absolu associé aux données.

Description

1 SYSTEME DE TRAITEMENT DE DONNEES NUMERIQUES MULTIMEDIA DOMAINE TECHNIQUE GENERAL ET CONTEXTE DE L'INVENTION La présente invention concerne un système de traitement de données multimédia asynchrone composé de plusieurs sous-systèmes effectuant des traitements sur les données multimédias regroupées en signaux. Les sous-systèmes de traitement sont reliés en eux par un réseau interne sur lequel transitent des données. Chaque sous- système de traitement comprend plusieurs processeurs à mémoire partagée qui peuvent échanger des données entre eux sans passer par le réseau interne. On trouve de tels systèmes dans des applications telles que la diffusion générale ("broadcast" en anglais), dans lesquelles il est d'usage de traiter plusieurs centaines de signaux audio de sources différentes et avec des traitements différents. Ces traitements peuvent être du filtrage, de la correction dynamique, l'incorporation de délai, la suppression de bruit ou d'écho, etc. Le nombre et le type de traitements est généralement très variable d'une source à l'autre. On parle ici de signaux numériques échantillonnés en temps et en amplitude. L'unité temporelle de traitement est l'échantillon, la fréquence typiquement utilisée étant de 48000 échantillons par seconde. A l'intérieur du système de traitement de données audio, les traitements sont cadencés : le système est cadencé sur les signaux d'entrée, à une fréquence correspondant à un multiple ou à un sous-multiple de la fréquence d'échantillonnage des données audio. La figure 1 est un schéma illustrant le cadencement du transport de données audio provenant de trois sources sur un réseau interne d'un système de traitement cadencé. L'axe horizontal représente le déroulement du temps, et les traits verticaux en tirets représentent les instants régulièrement répartis correspondant au cadencement du système. Les blocs représentent différentes étapes de traitement mises en oeuvre par les sous-systèmes de traitement du système. Ainsi, dans les trois premiers temps, espacés par des pauses de même durée, trois traitements successifs sont mis en oeuvre simultanément sur trois blocs de données. Dans un quatrième temps, un traitement commun est mis en oeuvre sur les trois blocs de données, qui y sont combinés, puis dans les cinquièmes et sixièmes temps, un cinquième et un sixième traitement sont mis en oeuvre sur le bloc résultant. On constate que ce cadencement requiert que les blocs de données des 3036572 2 différentes lignes soient disponibles au même instant pour le même traitement. De même, la progression des traitements étant synchrone, le temps associé au bloc de données est typiquement aligné sur le traitement le plus lent dans tout le graphe de traitement. Ainsi, le temps global du graphe est sous-optimal car aligné sur le 5 traitement le plus lent et beaucoup de temps est perdu par l'attente des blocs de données pour les traitements les plus rapides. Auparavant, les signaux étaient transportés jusqu'à ces systèmes de traitement de façon synchrone, c'est-à-dire que les signaux étaient synchronisés sur une seule et 10 même fréquence correspondant à un multiple ou à un sous-multiple de la fréquence d'échantillonnage des données audio. Les sous-systèmes de traitement d'un tel système étaient également cadencés sur cette même fréquence, de même que les traitements mis en oeuvre par lesdits sous-systèmes de traitement.
15 En raison des évolutions technologiques dans le transport de données, le transport de données audio jusqu'aux systèmes de traitement se fait désormais de plus en plus couramment par le biais d'un protocole de transport par paquet tels que le protocole de datagramme utilisateur (UDP, pour l'anglais "User Datagram Protocol" associé au protocole internet (IP, pour l'anglais "Internet Protocol"). Ce transport n'est plus 20 synchrone, il est qualifié d'asynchrone puisque le transport n'est plus cadencé par le temps mais par des évènements externes au système. Or, avec un transport des données audio au moyen de paquets, qui n'est pas toujours immédiat, les données audio de différentes lignes n'arrivent pas nécessairement simultanément dans le système. De plus, les données numériques multimédia proviennent de différentes 25 sources, et les paquets de différentes sources peuvent présenter des tailles différentes, en nombre d'échantillons. Afin d'éviter ces problèmes, des techniques ont été développées pour synchroniser les signaux en entrée du système de traitement. Par exemple, le document US 7 747 30 725 B2 prévoit des transmissions synchronisées sur le réseau externe, avec une référence de temps absolue et connue, afin de s'assurer de l'aspect synchrone des données arrivant dans le système de traitement. Cependant, une telle technique impose des contraintes fortes sur les données à envoyer au système, et ne résout pas les problèmes rencontrés à l'intérieur du système de traitement de données.
35 Ainsi, afin de garantir des bonnes performances, ces systèmes cadencés sont basés sur un modèle dit "instruction unique, données multiples" (ou SIMD, de l'anglais 3036572 3 "Single instructions, Multiple data"), dans lequel la même instruction est appliquée simultanément à plusieurs données pour produire plusieurs résultats. On parle de parallélisme de données. Un tel modèle part du principe que les traitements audio appliqués sont les mêmes sur toutes les lignes, ce qui peut poser des problèmes 5 d'allocations de ressources. De plus, même pour la mise en oeuvre d'une instruction identique, les données multimédia de certaines lignes nécessitent un temps de traitement plus long, et vont donc être retardées par rapport aux autres lignes traitées, empêchant ainsi leur 10 synchronisation à la sortie du système. En outre, l'insertion d'un élément dans la chaîne de traitement peut causer une cassure dans le flux d'échantillons à traiter, ce qui décale la synchronisation. Ainsi, la plupart de ces systèmes ne sont pas dynamiques en ce sens qu'ils ne permettent pas une telle insertion.
15 Par ailleurs, les systèmes de l'état de la technique utilisent généralement des tampons de données pour traiter les données. Les données sont traitées par un sous-système de traitement dans un temps imparti, correspondant à la taille du tampon audio. Or, la multiplication des traitements et/ou la multiplication des sous-systèmes de traitement nécessite de multiplier en conséquence le nombre de tampons à 20 utiliser, augmentant ainsi le temps total de traitement des données. Ce fonctionnement cadencé par le temps contraint aussi généralement le système à utiliser une seule fréquence d'échantillonnage et requiert que tous les sous-systèmes de traitement du système aient une connaissance explicite d'une horloge média associée aux données. De plus, certaines données peuvent nécessiter d'être traitées 25 simultanément, sur plusieurs sous-systèmes de traitement différents. Le stockage de ces données dans des tampons ne permet pas toujours de pouvoir les traiter simultanément. PRESENTATION DE L'INVENTION 30 Un but général de l'invention est de pallier aux inconvénients des systèmes de l'état de la technique mentionnés ci-dessus, en proposant un système de traitement de données multimédia qui ne soit pas en interne cadencé en temps et qui ne soit pas basé sur une horloge unique. Ceci est réalisé en utilisant une encapsulation dans un 35 datagrannnne des données multimédia, qui permettent à la fois de diminuer la latence, c'est-à-dire le retard introduit par la mise en oeuvre des traitements sur les données multimédia, et assurant le synchronisme des signaux en sortie du système. Le 3036572 4 système est ainsi plus flexible et élastique, il est donc facilement transposable d'une architecture matérielle à une autre. A cet effet, il est proposé un système de traitement de données numériques 5 multimédia comprenant : - une interface de communication avec un réseau externe audit système pour envoyer vers l'extérieur et recevoir de l'extérieur du système des données numériques multimédia sous forme de paquet cadencés en temps, lesdites données étant associées à un temps absolu, 10 - un ensemble de sous-systèmes de traitement communiquant entre eux au moyen d'un réseau interne audit système, les sous-systèmes de traitement étant configurés pour mettre en oeuvre des opérations de traitement sur les données, - un sous-système de contrôle configuré pour superviser le réseau interne et affecter aux sous-systèmes de traitement les données sur lesquelles mettre en oeuvre 15 les opérations de traitement, dans lequel l'interface de communication comprend un module de recalage définissant une horloge interne à partir du temps absolu et en ce que les données transitent sur le réseau interne au moyen de datagrammes comprenant lesdites données, chacun desdits datagrammes comprenant une estampille temporelle 20 comprenant une information de temps de référence déterminée par le module de recalage à partir de l'horloge interne, l'organisation temporelle de la mise en oeuvre des opérations de traitement sur les données par les sous-systèmes de traitement étant fonction des estampilles temporelles des datagrammes desdites données, indépendamment du temps absolu associé aux données.
25 Ce système est avantageusement complété par les caractéristiques suivantes, prises seules ou en une quelconque de leur combinaison techniquement possible: - chaque datagramme comprend au moins un identifiant de flux associé à au moins une partie des données contenues dans le datagramme et permettant le routage du 30 datagramme entre les sous-systèmes et la détermination de la chaîne de traitement à appliquer aux données dudit datagramme; - les données se répartissent en plusieurs flux de données, les données d'un flux étant associées à un même domaine d'horloge permettant d'en dériver la cadence de flux, et les datagrammes comprennent un identifiant du domaine d'horloge associé à leurs 35 données; 3036572 5 - au moins un sous-système est configuré pour combiner au moins deux flux de données d'un même domaine d'horloge sur la base de leurs estampilles temporelles de sorte d'obtenir des données synchronisées en termes de temps absolu; - au moins un des flux de données à combiner comprend un datagramme avec un 5 indicateur d'arrêt du flux, et ledit sous-système est configuré pour, à la détection dudit indicateur d'arrêt du flux, continuer à traiter l'autre flux de données sans attendre les données du flux auquel appartient l'indicateur d'arrêt du flux; - le sous-système est configuré pour prendre en compte les estampilles temporelles des datagrammes d'un flux avec un décalage de celles-ci; 10 - des sous-systèmes de traitement reçoivent un signal d'horloge dérivée de l'horloge interne; - les datagrammes comprennent les données sous la forme de paquet dans le format dans lequel elles ont été reçues; - le datagramme est conforme au protocole de communication temps réel RTP. 15 - les datagrammes comprennent une information de statut de validité des données, et les sous-systèmes de traitement sont configurés pour réinitialiser un élément de traitement qu'elles mettent en oeuvre en fonction de ladite information de statut de validité des données; - les traitements sont mis en oeuvre selon une architecture parallèle d'instructions 20 multiples et de données multiples; - les sous-systèmes de traitement comprennent chacun au moins un processeur à mémoire partagée; - les sous-systèmes de traitement sont des processus mis en oeuvre par une machine de traitement comprenant au moins un processeur à mémoire partagée; 25 - Un sous-système peut être copié sur (N-1) autres sous-systèmes de manière à ce que un défaut de fonctionnement de au moins (N-1) sous système puisse être accepté. Le sous-système utilisant la sortie des traitement du sous-système dupliqué gère nativement la duplication des données grâce à la présence combiné des identifiants de flux et des estampilles temporelles. 30 - Chaque traitement peut-être contrôlé par l'utilisateur via des commandes de modification de ses paramètres interne. Afin de garantir la simultanéité des commandes sur plusieurs traitements et sous-systèmes, ces commandes sont associées à une estampille temporelle commune à tout le système.
35 L'invention concerne également un procédé de traitement de données multimédia par un système selon l'invention, ledit système comprenant : 3036572 6 - une interface de communication avec un réseau externe audit système pour envoyer vers l'extérieur et recevoir de l'extérieur du système des données numériques multimédia sous forme de paquet cadencés en temps, lesdites données étant associées à un temps absolu, 5 - un ensemble de sous-systèmes de traitement communiquant entre eux au moyen d'un réseau interne audit système, les sous-systèmes de traitement étant configurés pour mettre en oeuvre des opérations de traitement sur les données, - un sous-système de contrôle configuré pour superviser le réseau interne et affecter aux sous-systèmes de traitement les données sur lesquelles mettre en oeuvre 10 les opérations de traitement, l'interface de communication comprenant un module de recalage définissant une horloge interne à partir du temps absolu, dans lequel les données transitent sur le réseau interne au moyen de datagrannnnes comprenant lesdites données, chacun desdits datagrannnnes comprenant une 15 estampille temporelle comprenant une information de temps de référence déterminée par le module de recalage à partir de l'horloge interne, et dans lequel dans lequel la mise en oeuvre d'opérations de traitement sur les données par les sous-systèmes de traitement est temporellement organisée en fonction des estampilles temporelles des datagrannnnes desdites données, indépendamment du temps absolu 20 associé aux données. L'invention concerne également un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'invention lorsque ledit programme est exécuté par un ordinateur. De préférence, le 25 produit programme d'ordinateur prend la forme d'un support physique dont le contenu peut être lu par un ordinateur. PRESENTATION DES FIGURES 30 D'autres caractéristiques, buts et avantages de l'invention ressortiront de la description qui suit, qui est purement illustrative et non limitative, et qui doit être lue en regard des dessins annexés parmi lesquels: - la figure 1, déjà commentée, est un schéma illustrant le cadencement du transport de données multimédia provenant de trois sources sur un réseau interne 35 d'un système de traitement cadencé, 3036572 7 - la figure 2 est un schéma illustrant l'organisation temporelle du traitement de données multimédia provenant de trois sources sur un réseau interne d'un système de traitement selon un mode de réalisation de l'invention, - la figure 3 est un schéma illustrant les composants d'un système de 5 traitement selon l'un des modes de réalisation possible de l'invention; - les figures 4 et 5 sont des schémas illustrant un exemple de graphe respectivement global et réparti décrivant le parcours de données multimédia au sein d'un système de traitement; - la figure 6 est un schéma de principe illustrant les composants d'un sous- 10 système de traitement et leurs fonctions. DESCRIPTION DETAILLEE La figure 3 illustre un système de traitement 1 de données multimédia numériques 15 selon un mode de réalisation possible de l'invention. Le système de traitement 1 comprend plusieurs sous-systèmes de traitement 2 à mémoire partagée qui communiquent entre eux au moyen d'un réseau interne 5 audit système de traitement 1. Chaque sous-système de traitement 2 peut ainsi envoyer et/ou recevoir des flux de données à d'autres sous-systèmes de traitement 2.
20 Les sous-systèmes de traitement 2 peuvent comprendre chacun au moins un processeur, ou bien être constitués par des processus s'exécutant sur un même ordinateur. Le système 1 est organisé de telle manière à autoriser des traitements de données en parallèle par plusieurs sous-systèmes de traitement 2. Le système est 25 supervisé au moyen d'un sous-système de contrôle 2a. Le réseau interne 5 est un réseau dit fiable, c'est-à-dire considéré comme sûr pour la répartition des données entre les sous-systèmes de traitement 2, en ce sens qu'il permet l'acheminement des données multimédia sans perte, collision ou duplication 30 de celles-ci, et dans un temps borné. La borne supérieure de ce temps de transmission est connue de manière théorique ou empirique. Il s'agit par exemple d'un réseau mettant en oeuvre un multiplexage temporel : il peut y avoir un créneau temporel pour chaque communication entre sous-système de traitement 2, c'est-à-dire pour chaque chemin de communication. Il peut s'agit par exemple du protocole 35 ATM, acronyme de l'anglais "Asynchronous Transfer Mode" pour mode de transfert asynchrone.
3036572 8 La granularité des blocs de données transmis sur le réseau interne 5, c'est-à-dire la plage temporelle occupée par les échantillons de données y transitant, représente un temps nettement plus important, de l'ordre de 10 à 100 fois plus important, que le temps de transfert de ces blocs de données sur le réseau interne 5 entre les sous- 5 systèmes de traitement 2. C'est notamment le cas lorsque le réseau interne 5 s'étend sur une distance physiquement restreinte. Par exemple, la granularité des blocs de données peut être de 20 las (soit un échantillon) tandis que le temps de transfert maximum d'un tel bloc de données entre deux sous-systèmes sur le réseau interne 5 est par exemple inférieur à 1 las.
10 Le parcours des données au sein du système peut être décrit par un ou plusieurs graphes globaux. On définit un graphe par une suite de traitements interdépendants en temps ou en données. Il en résulte que pour appartenir à un même graphe, les données multimédia doivent être échantillonnées à la même fréquence. Au sein du 15 même graphe, on peut avoir plusieurs formats de représentation (codage) des données multimédia, on peut aussi avoir plusieurs granularités temporelles (blocs de données à traiter) en fonction de leur origine ou destination. La figure 4 est un exemple illustratif d'un graphe global simplifié dans lequel sept 20 lignes 40 sont représentées, indicées par les lettres a à g, notation reprise pour chaque élément des lignes 40. Sur chaque ligne 40 transitent des données qui subissent des éléments de traitement 41, 42, 43, organisés chronologiquement de gauche à droite. Les données diffèrent entre les lignes 40, et les données d'une ligne 40 sont indépendantes des données d'une autre ligne 40. Chaque ligne se caractérise 25 par les données qui y transitent et par les éléments de traitement qui s'y appliquent. Les éléments de traitement peuvent différer entre les lignes, et sont par exemple un traitement de la dynamique, par exemple pour dans le cas de sons diminuer la différence entre les amplitudes sonores extrêmes, un filtrage en fréquence ou un gain numérique.
30 Ainsi, les données de la ligne 40b subissent un premier élément de traitement 41b mettant en oeuvre un traitement A, puis un deuxième élément de traitement 42b mettant en oeuvre un traitement C et un troisième élément de traitement 43b mettant en oeuvre un traitement B. Une autre ligne peut être organisée 35 différemment. Ainsi les données de la ligne 40c subissent en premier lieu le traitement C en tant que premier élément de traitement 41c, et ensuite le traitement A en tant que deuxième élément de traitement 42c, sans traitement B.
3036572 9 Ce graphe global est découpé en sous graphes répartis sur les sous-systèmes de traitement 2 et le sous-système de contrôle 2a est responsable du bon transit des données entre chaque sous graphe par l'insertion de connecteurs implicites du point 5 du vue du graphe global transportant les données d'un sous-système de traitement 2 à l'autre dans le système. La figure 5 illustre un exemple de graphe réparti reprenant les lignes et les éléments de traitement de la figure 4. Dans cet exemple simplifié, le graphe global est réparti entre trois sous-systèmes de traitement 2, chacune ayant la charge d'une sous-partie du graphe global de la figure 4. Ainsi, un premier sous- 10 système de traitement 2-1 est en charge d'une première partie 51 du graphe du graphe réparti correspondant aux lignes 40a à 40c et aux éléments de traitements associés, un deuxième sous-système de traitement 2-m est en charge d'une deuxième partie 52 du graphe réparti correspondant aux lignes 40d à 40g et aux éléments de traitements associés, et enfin un troisième sous-système de traitement 2-n est en 15 charge d'une troisième partie 53 du graphe réparti correspondant à l'élément de traitement 44 mettant en oeuvre la consolidation des différentes lignes. Il peut notamment s'agir d'un module de recalage appartenant à l'interface de communication, par exemple pour resynchroniser les données traitées. Les liens inter-sous-systèmes 54 sont insérés par le sous-système de contrôle 2a pour 20 permettre aux données de transiter d'un sous-système de traitement 2 à l'autre. Le sous-système de contrôle 2a se charge de la répartition du graphe global entre les sous-systèmes de traitement afin que chaque partie 51, 52, 53 du graphe réparti puisse être réalisée dans les temps et dans chaque capacité des sous-systèmes de 25 traitement 2, chaque sous-système de traitement 2 pouvant avoir une puissance disponible variable. Le sous-système de contrôle 2a s'occupe aussi de la coexistence des différents graphes sur les différents sous-systèmes. Pour répartir le graphe entre les sous-systèmes de traitement 2, le sous-système de 30 contrôle 2a réalise une optimisation sous contraintes. Les contraintes peuvent notamment être : le coût en temps d'une relocalisation des données entre sous-systèmes de traitement 2, la proximité des données multimédia nécessaires pour un traitement, la capacité d'un traitement à être distribué ou factorisé, la puissance disponible sur un sous-système de traitement 2.
35 Les sous-systèmes de traitement 2 transmettent donc régulièrement, de préférence en temps réel, au sous-système de contrôle 2a des indicateurs concernant leur 3036572 10 charge de traitement courante en termes de traitement effectué, de mémoire et/ou de puissance disponible et/ou le temps de transit moyen des données multimédia pour chaque ligne 40 de graphe. Ainsi, le sous-système de contrôle 2a peut gérer dynamiquement la charge des différents sous-systèmes de traitement 2, notamment 5 pour modifier un grapghe ou pour faire cohabiter plusieurs graphes indépendant dans le système. En effet, le sous-système de contrôle 2a est alors capable d'anticiper via un algorithme de prédiction, le temps des traitements à ajouter. Via l'utilisation d'une 10 marge de sécurité prenant en compte le non déterminisme du système, le sous- système de contrôle 2a choisit la grappe de calcul (ou "cluster" en anglais), c'est-à-dire un sous-ensemble de processeurs des sous-systèmes de traitement la plus disponible pour y ajouter un traitement sans risque de bloquer le système par saturation de mémoire et ou de traitement.
15 Le sous-système de contrôle 2a réalise de manière régulière une optimisation des répartitions du graphe global entre les sous-systèmes de traitement 2 afin d'anticiper l'insertion d'un graphe supplémentaire ou d'une branche supplémentaire dans un graphe courant. Ainsi, le sous-système de contrôle 2a garde une marge de sécurité en 20 puissance disponible sur chaque sous-système de traitement 2 afin de pouvoir éventuellement y insérer un nouveau traitement qui aurait des contraintes de proximités de données ou de factorisation de traitement fortes. Pour pallier la défaillance d'un sous-système, il est possible de dupliquer des 25 traitements entre sous-systèmes 2 ou au sein d'un même sous-système 2. La redondance est alors gérée au niveau de chaque élément de traitement : lorsque un élément de traitement reçoit un bloc de données il vérifie son estampille temporelle et dans le cas où cette estampille temporelle a déjà été traitée, il retourne simplement un code d'arrêt indiquant des données redondante, qui n'impacte pas 30 l'exécution du sous-système 2. La redondance peut être gérée sans limite de sous- systèmes ou de traitement redondés. Lors de la réorganisation du graphe globale, les même techniques de redondance peuvent être utilisées de manière éphémères, telles que la création d'un nouvel 35 élément qui cohabite avec l'ancien élément avant de supprimer l'ancien élément, sont utilisées pour garantir l'intégrité des données en sortie du système.
3036572 11 Chaque sous-système de traitement 2 ordonnance le traitement des données dans un ou plusieurs graphes. Ces graphes internes à chaque sous-système de traitement 2 sont un sous ensemble du graphe global du système.
5 Les éléments de traitement 41, 42, 43 sont conçus de telle manière que l'insertion ou la suppression d'un élément soit transparente vis-à-vis des données, c'est-à-dire qu'il n'y a pas de pertes de données ni de discontinuité audible du signal par exemple pour des données multimédia audio. Pour cela, quand un élément de traitement est inséré ou retiré du graphe, il est en réalité reconfiguré dans un état 10 - neutre » qui ne modifie pas ou très peu les données qui le traversent lors de son insertion ou avant sa suppression. Le système est ainsi complètement dynamique, à tout moment et sous contraintes connues un traitement peut être ajouté sans perturbation du flux de données final.
15 Contrairement aux systèmes de l'état de la technique où le graphe est déjà construit en usine ou n'est pas conçu pour assurer la continuité du flux de données lors de modification du graphe, le sous-système de contrôle 2a du système fait varier la latence, c'est-à-dire le temps entre l'entrée et la sortie des données dans le système, lors de l'ajout ou de la suppression d'un élément de traitement ou même lors de la 20 modification du dit graphe. Lorsque la variation de latence est une petite fraction du temps représenté par les données avec par exemple, des données constituées d'un groupe de 48 échantillons, soit 1 ms de temps, ceci ne pose pas de problème. Cependant, dans le cas où l'homme du métier voudrait utiliser le système avec une latence - fixe », il est possible d'ajouter un élément de synchronisation ou 25 compensation absolu associé à un budget en latence. Le sous-système de contrôle 2a mesure régulièrement cette latence (qui ne change pas significativement hors modifications du graphe) et empêche une modification qui aboutirait à une latence hors budget initial donné par l'utilisateur (et donc, qui aboutirait à un dépassement d'un éventuel tampon de compensation).
30 Chaque sous-système de traitement 2 est composé de quatre composants, dont les fonctions sont illustrées par la figure 6 : Un organe de réception réseau 60 qui trie des données issues du réseau interne 5, ces données sont alors associées à des lignes 40 du graphe 35 global; le réseau interne 5 étant supposé fiable, il n'y a pas de cadencement en temps à cet endroit; une file d'attente 61 où sont stockées les données attendant d'être 3036572 12 traitées; cette file contient les données dans une forme semblable à la transmission, c'est-à-dire des blocs de données associés à un identifiant de source et une estampille temporelle; un organe de traitement 62 multimédia numérique configuré pour mettre 5 en oeuvre des fonctions de traitement, généralement primaires, préalablement implémentées en logiciel ou matériel; et un organe de contrôle local 63, généralement connu sous le nom de "proxy", qui interprète les commandes issues du système central et les distribue aux organes de traitements.
10 Ces différents composants d'un sous-système 2 permettent à celui-ci une certaine autonomie dans le traitement des données. Ainsi il n'y a pas d'attente entre données indépendantes, c'est-à-dire appartenant à différentes lignes de graphe, lors de leurs traitements en dehors des cas de synchronisation explicite de ces données entre 15 éléments de traitement, en vue d'une sommation par exemple. Plusieurs organes de traitement peuvent être présents dans un même sous-système 2 pour traiter en parallèle plusieurs blocs de données, avec toutefois la limite selon laquelle un élément de traitement associé à une source ne peut être mis en oeuvre 20 que par un organe de traitement à la fois (principe d'exclusion mutuelle). A un instant donné, un organe de traitement 62 met en oeuvre un élément de traitement. On pourra donc désigner l'organe de traitement 62 par l'élément de traitement qu'il met en oeuvre, et inversement, un élément de traitement peut être assimilé à l'organe de traitement pendant le temps de sa mise en oeuvre.
25 Les données reçues par un sous-système de traitement 2 peuvent être répartie entre plusieurs organes de traitement 62 de ce même sous-système de traitement par une technique d'ordonnancement glouton, c'est-à-dire que chaque organe de traitement 62 disponible peut traiter les données dans leur ordre d'arrivée. On peut cependant 30 prévoir des organes de traitement spécialisés et donc plusieurs files d'attentes à la réception en fonction des types de traitement envisagés. Dans ce cas, on peut assimiler symboliquement chaque file d'attente 61 et les organes de traitement 62 associés à un sous-système propre, dans la mesure où un organe de traitement ne peut être lié qu'à une seule file d'attente 61.
35 Le réseau interne 5 au système est considéré fiable, on peut donc aussi implémenter un tel système sur une seule machine à mémoire partagée où chaque sous-système 3036572 13 de traitement 2 serait un processus isolé en mémoire. L'hypothèse de fiabilité du réseau interne 5 dispense chaque sous-système de traitement 2 d'une composante dédiée aux communications externes. On pourrait cependant prévoir une configuration dans laquelle le réseau interne 5 entre les sous-systèmes serait non 5 fiable et où chaque sous-système de traitement servirait à la fois à traiter les données et assurerait l'interface réseau. Le système de traitement 1 comprend une interface de communication 3, c'est-à-dire un module d'entrée/sortie, avec un réseau externe 4 au système de traitement 1 par 10 lequel arrivent et sont renvoyées les données multimédia numériques sous forme de paquet. A l'inverse du réseau interne 5, le réseau externe 4 est considéré comme non fiable, c'est-à-dire que des pertes de données peuvent survenir. Le réseau externe 4 est par exemple un réseau Ethernet, dans lequel il n'y a pas d'allocation de bande passante dédiée à des données particulières. Outre un réseau Ethernet, le réseau 15 externe 4 peut être tout réseau de communication permettant le transport de données sous forme de paquets sans garantie d'arrivée de ceux-ci. L'interface de communication 3 comprend au moins un point d'accès réseau au réseau externe 4, et peut comprendre plusieurs entrées, tout comme elle peut comprendre plusieurs sorties, en direction du réseau interne 5.
20 L'interface de communication 3 reçoit depuis le réseau externe 4 un flux de données multimédia sous la forme d'un assemblage de paquets de données multimédia avec un temps absolu associé audits paquets, complété d'un identifiant de flux. Généralement, les données arrivent sous forme de datagrammes, c'est-à-dire de 25 données encapsulées dans un paquet muni d'un en-tête contenant suffisamment d'informations pour permettre le routage dudit paquet sur un réseau. Dans la configuration la plus courante, les datagrammes sont des datagrammes IP, c'est-à-dire de paquets conformes au protocole internet IP, et plus précisément sous forme de datagrammes UDP/IP, c'est-à-dire de paquets conformes au protocole internet IP 30 (pour l'anglais "Internet Protocol"), et au protocole de datagramme utilisateur UDP (pour l'anglais "User Datagram Protocol"). Ces données sous forme de paquets en provenance du réseau externe 4 sont réceptionnées par l'interface de communication 3. Celle-ci comprend un module de 35 recalage, lequel reçoit donc du réseau externe 4 les données numériques multimédia sous forme de paquet, et les transfère au réseau interne 5 sous forme de datagramme contenant lesdites données multimédia numériques sous forme de 3036572 14 paquet, les datagrammes incluant une estampille temporelle basée sur un temps de référence commun, ladite estampille étant implémentée par le module de recalage. Le module de recalage a donc pour rôle de re-cadencer en temps absolu les données issues du réseau externe 4 avant de les injecter dans le réseau interne 5. Pour des 5 raisons pratiques, ces données peuvent aussi être consolidées ou découpées en paquets de tailles différentes. Par ailleurs, les données dans les datagrammes peuvent être multiplexées. Les datagrammes transitant sur le réseau interne 5 contiennent ainsi au moins les 10 informations suivantes associées aux données, par exemple dans un en-tête qui peut être sous la forme, mais non limitée, d'un en-tête de protocole RTP sur UDP/IP: - une estampille temporelle associées aux données contenues dans le datagramme, qui peut notamment correspond à un instant d'échantillonnage, par exemple celui du premier octet des données dans un datagramme RTP; 15 - un identifiant de flux, permettant d'identifier la chaîne de traitement associée au flux de données multimédia auquel appartient le datagramme. L'estampille temporelle du datagramme se trouve de préférence dans l'en-tête du datagramme. L'estampille temporelle est introduite par le module de recalage 3, et 20 correspond à un instant d'échantillonnage, par exemple celui du premier octet des données dans un datagramme RTP, cet instant peut être modifié par des informations externes au système et/ou propres au flux de données provenant de l'extérieur du système. L'estampille temporelle n'est jamais modifiée implicitement dans le système. En effet, la persistance de cette estampille permet au système de pouvoir 25 calculer à chaque instant le temps écoulé pour le traitement des données et permet donc de pouvoir réordonnancer ces données avec d'autres lignes. Cet instant d'échantillonnage, et donc l'estampille temporelle, est dérivée d'une horloge interne. Cette horloge interne est définie dans le module de recalage 3 par une synchronisation externe, par exemple via le protocole PTP (acronyme de l'anglais 30 "Precision Time Protocol" pour protocole de temps de précision) ou tout autre moyen similaire. L'horloge interne, peut-être directement dérivée, via une transformation mathématique, d'une horloge absolue externe au système 1 afin de garantir la communication entre différents systèmes à la même cadence. Le système peut aussi jouer le rôle de maître et transmettre sa propre horloge interne à d'autres systèmes.
35 L'horloge interne définit ainsi un temps interne au système, qui diffère du temps absolu définit par une horloge absolue, c'est-à-dire au temps universel externe au système. On utilise également le terme anglais de "wall-clock time" pour définir le 3036572 15 temps externe, par référence au temps réel mesurable par une horloge murale. L'horloge interne peut être réduite à un compteur entier incrémenté à chaque unité de temps ou - temps échantillons ». Il peut en résulter au moins autant d'horloges 5 internes que de fréquences d'échantillonnages présentes dans le système. Le système n'étant pas cadencé de manière globale (seul le départ des données l'est), il permet nativement la coexistence de plusieurs cadencements en son sein, sous contrainte que les données d'un même graphe soit liées à la même horloge.
10 Les sous-systèmes de traitement 2 n'ont eux pas besoin de reconstituer un quelconque temps absolu. Le sous-système de traitement 2 se contente de dérouler le graphe et de resynchroniser les données au besoin en utilisant l'estampille temporelle qui leur est associée. Le sous-système de traitement 2 peut générer des données d'un domaine temporel à partir d'un autre sur la base de données de 15 conversion fournies par le module de recalage 3 via le sous-système de contrôle 2a. Le contrôle des paramètres des traitements (exemple 41, 42, 43) se fait par les mêmes moyens de communication entre le sous-système 2a et le sous-système 2. Ainsi, les commandes de contrôle de ces paramètres sont associées à une estampille 20 temporelle afin que des commandes puissent être appliquées de manière simultanée sur plusieurs traitements et sous-systèmes. Lors de la réception d'une commande de modification des paramètres, celle-ci est stockée dans une file d'attente locale interne à chaque traitement. Cette commande 25 est associée à un type (au plus vite, temporisée, critique) et à une estampille temporelle. Lors du traitement des données multimédia, la liste d'attente est parcourue et les commandes sont traitées en fonction de leur type, de l'estampille temporelle associée à la commande et de l'estampille courante des données traitées de la manière suivante : 30 un traitement au plus vite ignore les estampilles temporelles et est appliqué dès qu'il est trouvé dans la file d'attente; un traitement temporisé est appliqué lorsque les estampilles temporelles des données traitées sont supérieures ou égales à l'estampille temporelle associée à la commande; 35 un traitement critique est appliqué uniquement lorsque les estampilles temporelles des données traitées sont égales à l'estampille associée à la commande. Dans le cas contraire une erreur est retournée.
3036572 16 Dans le cas où le réseau interne 5 ne serait pas fiable, les sous-systèmes de traitement peuvent tout de même déterminer que des données ont été perdues par une erreur de séquence, ou discontinuité, au niveau des estampilles temporelles. Le 5 système peut alors remonter une erreur d'exécution et, au besoin, réinitialiser les éléments de traitements. Seul le module de recalage 3 a besoin de connaître le temps absolu, en raison de ses interactions avec l'extérieur, par exemple pour détecter la perte d'un paquet. Le 10 routage des données sur le réseau interne 5 se fait par un mécanisme propre au support matériel utilisé et n'est pas exploité dans cette invention. Le système se contente de correctement instancier les communications de sous-système à sous-système. L'aspect synchrone du transit des données n'est donc plus requis.
15 Les données transitant sur le réseau interne 5 étant associées à un temps de référence au moyen de leur estampille temporelle, il devient possible de réaliser des opérations simultanées, c'est-à-dire sur le même instant multimédia, qui peut différer du temps absolu, sur plusieurs sous-systèmes de traitement différents.
20 En outre, lorsque que la communication entre les sous-systèmes de traitement 2 est assez fiable et rapide pour ne jamais perdre ni les données ni leur ordonnancement temporel, il est possible de répartir le traitement entre les sous-systèmes de traitement 2 en l'absence de stockage en mémoire tampon entre ces sous-systèmes. Les données sont alors traitées à la volée par les sous-systèmes de traitement 2, au 25 fur et à mesure de leur arrivée, moyennant le cadencement en données permis par les estampilles temporelles. Afin de traiter les données à la volée, il est préférable que les données arrivent dans l'ordre à un sous-système de traitement 2. Afin de pallier à toute éventualité de 30 désorganisation du flux de données, on peut prévoir que des sous-systèmes de traitement 2 soient configurés pour mettre en oeuvre, sur la base des estampilles temporelles, une fonction de re-cadencement en données et de temporisation des données afin de réduire la gigue, c'est-à-dire la variation temporelle locale entre l'arrivée de deux datagrammes, ou pour détecter des données manquantes. A cet 35 effet, ces sous-systèmes de traitement peuvent recevoir un signal d'horloge dérivée de l'horloge interne.
3036572 17 A chaque flux de données multimédia est associée une chaîne de traitement par le système, symbolisé par une ligne dans le graphe global des traitements tels que celui illustré par la figure 4. L'identifiant de flux permet d'identifier ce flux et donc la chaîne de traitement associée. Il est à noter que les données sont transportées d'un 5 sous-système à un autre dans un datagramme qui peut contenir des données de plusieurs flux. Ce datagramme peut alors contenir une série d'identifiant de flux, chacun identifiant un flux auquel appartient des données contenues dans le datagramme. Une règle prévoit l'attribution d'un identifiant de flux aux données, par exemple en fonction de l'organisation de celles-ci dans le datagramme.
10 Il est également possible que le datagramme ne contienne pas tous les identifiants de flux des flux auxquels appartiennent les données qu'il contient. Il peut ainsi par exemple ne contenir qu'un seul identifiant de flux même s'il contient des données de plusieurs flux. Les identifiants des autres flux auxquelles appartiennent des données 15 dudit datagramme sont alors déduits des identifiants présents dans le datagramme. Par exemple, le datagramme peut ne contenir qu'un identifiant de flux, correspond au flux des n premières données contenues dans le datagramme, et une règle peut prévoir que les n données suivantes appartiennent à un flux dont l'identifiant 20 correspond à un décalage de l'identifiant de flux contenu dans le datagramme. des datagramme font partie d'un même flux de données, et partagent donc le même identifiant de flux. Elles sont par conséquent associées à une même ligne de graphe, c'est-à-dire qu'elles sont destinées à recevoir la même chaîne de traitement. Le ou 25 les identifiant(s) de flux permettent également le routage des datagrammes entre les sous-systèmes, puisque celui-ci découle du graphe global. Au sein du même système 1, le nombre de flux dans les datagrammes peut varier, de même que peuvent changer les flux réunis dans un même datagramme. Ainsi, des 30 données appartenant à un premier flux peuvent être transportées avec des données appartenant à un deuxième flux dans un même datagramme, puis des données appartenant au premier flux peuvent être transportées avec des données appartenant à un troisième flux dans un autre datagramme, ou bien seules. De préférence, le datagramme contient également, au même endroit, un identifiant 35 de domaine d'horloge, c'est-à-dire un identifiant qui permet de dériver la cadence du flux de données par rapport à une horloge absolue et à des informations externes connues de l'interface de communication 3 uniquement. Dans le cas où le 3036572 18 datagramme contient des données de plusieurs flux, il peut contenir soit un seul domaine d'horloge appliqué à tous les flux, soit autant de domaines d'horloge que de différents flux auxquels appartiennent les données qu'il transporte.
5 De préférence, le datagramme contient également, au même endroit, une autre information prenant la forme d'un statut de validité des données, qui permet notamment la remise à zéro d'un élément de traitement. Dans le cas où le datagramme contient des données de plusieurs flux, il peut contenir soit un seul statut de validité appliqué à tous les flux, soit autant de statuts de validité que de 10 différents flux auxquels appartiennent les données qu'il transporte. Il arrive fréquemment que les données de deux flux de données doivent être combinées pour donner un flux combiné, comme dans le cas de l'élément de traitement 44 de la figure 5. Un sous-système de traitement 53 en charge de cette 15 combinaison de flux est alors configuré pour combiner au moins deux flux de données d'un même domaine d'horloge sur la base de leurs estampilles temporelles de sorte d'obtenir des données synchronisées en termes de temps absolu. Cependant, les flux de données ne peuvent être directement combinés que s'ils 20 partagent un même domaine d'horloge, donc une même cadence de flux. Si les flux à combiner sont associés à des domaines d'horloge différents, le sous-système en question est configuré pour prendre en compte les estampilles temporelles des datagrammes d'au moins un flux avec un décalage de celles-ci. Cela permet de recadencer les flux de données pour qu'ils aient la même cadence de flux.
25 Le datagramme peut également comprendre un indicateur d'arrêt du flux, qui indique la fin du flux de données multimédia. Cet indicateur d'arrêt du flux permet au sous-système de traitement 2 d'être notifié de la fin du flux de données et du fait qu'il n'a pas à attendre les données suivantes. En effet, lorsqu'on traite de façon 30 synchrone en données, notamment pour les combiner, au moins deux flux de données avec les mêmes temps de référence indiqués dans leurs estampilles temporelles, le manque de données d'un flux peut bloquer le traitement de l'autre. Un indicateur d'arrêt de flux à la fin d'un flux de données permet au sous-système de traitement 2 de continuer à traiter l'autre flux de données sans attendre les données du flux 35 auquel appartient l'indicateur d'arrêt du flux. Outre les informations précitées, d'autres informations peuvent être présentes au 3036572 19 même endroit: Nombre d'échantillons contenus dans le datagramme; Nombre de canaux transmis dans le datagramme; Identifiant d'une norme de codage/décodage, par exemple dans le cas de 5 données numériques multimédia. Les données sous forme de datagramme transitent sur le réseau interne 5 entre les sous-systèmes de traitement 2. En référence à la figure 6, les opérations suivantes sont mises en oeuvre sur les données reçues par un sous-système de traitement 2.
10 Après réception 601 des données par l'organe de réception 60, celui-ci peut mettre en oeuvre un décodage 602 afin qu'un élément de traitement du graphe local du sous-système de traitement 2 puisse les traiter. Les données sont ensuite stockées dans la file d'attente 61 en attendant d'être traitées. La file d'attente 61 contient les 15 données dans une forme semblable à la transmission, c'est-à-dire des blocs de données associés à un identifiant de source et une estampille temporelle. Un organe de traitement 62 du sous-système 2 récupère les données stockées dans la file d'attente 61 lors d'une étape 621 de réception de ces données au cours de 20 laquelle il dépile le premier élément disponible de la file d'attente 61. Avant de mettre en oeuvre l'élément de traitement, l'organe de traitement 62 parcourt sa liste d'attente de commandes de contrôle interne et applique les commande de modification des paramètres en fonction du type de commande, de l'estampille associée à la commande et de l'estampille des données en cours de traitement.
25 L'organe de traitement 62 identifie 622 la chaîne de commande et le premier traitement à mettre en oeuvre, ainsi que les éventuels paramètres associés. Cette identification peut être faite au moyen de l'identifiant de source. L'organe de contrôle local 63, éventuellement associé à une file d'attente de contrôle 64 30 reflétant la file d'attente 61, peut déterminer le contexte d'un traitement à partir de commandes fournies par le sous-système de contrôle 2a et les transmettre à l'organe de traitement 62. L'organe de traitement 62 vérifie 624 également l'identifiant de source.
35 L'organe de traitement vérifie ensuite 624 l'estampille temporelle du datagramme reçu, et notamment sa continuité en la comparant avec celles de datagrammes déjà traités, par exemple en vérifiant la continuité des temps de référence portés par ces 3036572 20 estampilles temporelles. Pour ce faire, les estampilles temporelles de datagrammes déjà traités peuvent être mémorisées et comparées, ou les datagrammes simplement comptés. En cas de discontinuité, une erreur d'exécution est renvoyée. La conformité de l'identifiant de ligne de graphe par rapport à celui attendu est ensuite vérifiée, et 5 en cas de différence, une erreur d'exécution est renvoyée. Dans le cas où l'estampille temporelle serait déterminée comme ayant déjà été traitée, l'organe de traitement 62 revient à l'étape de réception 621 de nouvelles données. L'organe de traitement 62 vérifie également 625 les commandes de contrôles, pour 10 éventuellement modifier 629 les paramètres à appliquer au traitement, comme expliqué plus haut, et notamment un des modes de traitement évoqué : au plus vite, temporisé, ou critique. En outre, il peut être prévu dans le datagramme (par exemple en en-tête), une valeur particulière pour éventuellement entraîner une réinitialisation dudit élément de traitement, et le cas échéant, l'organe de 15 traitement 62 est remis à zéro et le datagramme sort de l'exécution avec un code retour normal. Après ces vérifications, l'organe de traitement 62 réalise ensuite l'opération de traitement 626 des données qui lui est dévolue. A l'issue de l'opération de traitement, 20 l'élément de traitement envoie un code de retour normal, ce qui permet au sous- système de contrôle 2a de faire transiter les données à l'élément de traitement suivant. Le prochain traitement est déterminé 627 comme devant nécessiter un retour à la vérification de l'identifiant de source 623 ou comme correspondant à la fin de la chaîne de traitement, et donc l'émission des données traiter et la réception 25 621 de nouvelles données. De plus, des éléments spéciaux, dits de synchronisation réalisent les opérations supplémentaire suivantes : vérification de la place disponible dans la mémoire tampon de stockage 30 des données de synchronisation, en cas d'indisponibilité, une erreur d'exécution est renvoyée; vérification du fait que l'ensemble des données de toutes les lignes de graphe associées à l'estampille temporelle en cours de synchronisation sont arrivées, et, le dans le cas contraire, une erreur d'exécution est 35 renvoyée; formation d'un nouveau bloc de données synchronisées et consolidées.
3036572 21 Lorsque un élément de traitement émet une erreur, le graphe est bloqué jusqu'à remise à zéro des éléments de traitement. Chaque élément de traitement peut se remettre à zéro par la réception d'un bloc de données particulier, constituant un message, par exemple en donnant une valeur particulière à un champ - statut » de 5 l'entête. Des éléments de traitement peuvent être configurés de manière - non bloquante », c'est-à-dire qu'ils vont accepter des discontinuités du flux et en informer le superviseur. Ceci peut être utile pour faire cohabiter sans heurts des flux sans contrainte de fiabilité forte, par exemple des données d'intercommunication ou des données annexes, avec des flux très contraints en fiabilité, comme des données 10 de commentateur ou des données légales. L'en-tête du datagrannnne peut également comprendre un champ d'identification, et chaque sous-système de traitement 2 associe un graphe local de traitement à un contenu dudit champ d'identification. Les traitements sont mis en oeuvre selon un 15 parallélisme de tâches et de données. Ainsi, contrairement aux systèmes SIMD de l'état de la technique, des instructions différentes peuvent être mises en oeuvre au même instant. Chaque bloc de données peut donc avancer dans la séquence de traitement sans qu'il soit nécessaire d'attendre le traitement des blocs des autres lignes.
20 De fait, chaque sous-système du système, et en particulier les sous-systèmes de traitement de données numériques multimédia, est configuré pour lire l'estampille temporelle d'un datagrannnne et l'identifiant de flux, et pour mettre en oeuvre une séquence de traitement associée audit champ d'identification en fonction de 25 l'estampille temporelle et de l'identifiant de flux. Ainsi qu'illustré par la figure 2, qui représente un exemple schématique d'organisation temporelle de traitement de données, avec les mêmes opérations que la figure 1 à des fins de comparaison, avec trois lignes de traitement de données 21, 30 22, 23. Les étapes de traitement successives des paquets de la première ligne 21 comprennent une première étape 211, une deuxième étape 212 et une troisième étape 213. Les étapes de traitement successives des paquets de la deuxième ligne 22 35 comprennent une première étape 221, une deuxième étape 222 et une troisième étape 223. Les étapes de traitement successives des paquets de la troisième ligne 23 comprennent une première étape 231, une deuxième étape 232 et une troisième 3036572 22 étape 233. Une quatrième étape 24 est commune à l'ensemble des lignes, et correspond par exemple à un mixage des lignes, résultant dans l'unification des lignes en une seule, de sorte que le cinquième traitement 25 et le sixième traitement 26 sont effectués sur cette ligne unique.
5 On constate qu'à la différence de la configuration cadencée illustrée par la figure 1, les traitements ne sont pas mis en oeuvre de façon simultanée sur l'ensemble des lignes. Par exemple, tandis que les données 211 de la première ligne 21 et les données 221 de la deuxième ligne 22 subissent le premier traitement de manière 10 simultanée, ce même premier traitement des données 231 de la troisième ligne 23 n'intervient que plus tard, par exemple parce que ces données 231 n'étaient disponibles que plus tardivement. De même, les données 222 de la deuxième ligne 22 subissent le deuxième traitement avant les données 212 de la première ligne 21. Les traitements sont donc mis en oeuvre en fonction de la disponibilité des données et 15 des ressources. La synchronisation entre les lignes est cependant maintenue par la référence explicite au temps contenue dans l'estampille temporelle, ce qui permet notamment la mise en oeuvre de l'étape de mixage 24 sur les données des trois lignes. La ligne en 20 tiret reliant les données 213, 223 et 233 au niveau du troisième traitement des trois lignes symbolise la trace de cette synchronisation implicite. Par ailleurs, comme les données en sortie du système restent estampillées sur la base d'un temps de référence, une éventuelle variation de latence peut être 25 potentiellement compensée par un autre sous-système en aval dans la chaine de traitement. La synchronisation des données est rendue possible par la connaissance de l'horloge interne par le module de recalage 3 et l'estampille temporelle dans les datagrammes 30 permet de synchroniser la sortie des données. Ainsi, le module de recalage 3 : - reçoit du réseau interne 5 des datagrammes comprenant des données numériques multimédia traitées, - synchronise lesdites données numériques multimédia traitées au moyen des estampilles temporelles présentes dans les en-têtes des datagrammes encapsulant 35 lesdites données et envoie sous forme de paquet lesdites données.
3036572 23 D'autres avantages sont apportés par le fait de faire transiter les données sur le réseau interne au moyen de datagrammes comprenant lesdites données sous la forme de paquet. En particulier, cela permet de mettre en oeuvre les traitements des données sous leur forme de paquet. Dans la mesure où on a alors accès à toute la 5 couche réseau (au sens du modèle 051), on peut faire mettre en oeuvre, par les sous- systèmes de traitement 2, les fonctions de routage, de surveillance, et de contrôle des flux. A cet égard, les données peuvent être sous la forme de paquets dans le format dans 10 lequel elles ont été reçues, ce qui permet d'éviter tout retraitement des données au niveau de leur réception par le système. Le format des données contenues dans le datagramme peut cependant différer de celui dans lequel elles ont été reçues. Un sous-système tel que l'interface de communication 3 peut alors mettre en oeuvre la conversion du format des paquets d'un flux de données, et recadencer le flux de 15 données sur un domaine d'horloge propre au format utilisé en interne par le système. Cela permet également de re-cadencer les données d'un flux de données externe, par exemple pour absorber une gigue ou pour réorganiser une arrivée en désordre des données.
20 Dans un mode de réalisation de l'invention, le système 1 est implémenté sur une interface réseau intelligente, dit - Smart Nic ». Il s'agit d'une carte réseau intelligente, c'est-à-dire pourvue de moyen de calcul et de mémoire et permettant d'implémenter les règles de trafic dès l'interface réseau, déchargeant ainsi le processeur central d'un ordinateur, dit - hôte » du système 1, de la gestion de ce 25 trafic réseau. Ceci peut être particulièrement profitable dans le cas de communications réseau à très faible latence et en grand nombre, où le système d'exploitation d'un ordinateur ne serait pas en mesure de traiter les données avec une fiabilité temporelle. Le système ainsi implémenté fait alors office de multimédia stack » ou pile réseau spécialisée multimédia afin de traiter au plus 30 près du réseau les flux multimédia : traitement multimédia/vidéo, mixage, changement à la volée de la configuration de flux de données. En effet, un cas d'usage de cette pile réseau spécialisée multimédia est de changer à la volée le format d'un flux de données. Passer par exemple de basse latence à forte 35 latence afin de diffuser sur le réseau externe, ou sur un autre réseau les données multimédias avec une fréquence des trames plus basses (plus de données sont 3036572 24 transmises à la fois) ce qui permet à certains clients du réseau disposant de peu de puissance de recevoir le flux de données. L'invention n'est pas limitée au mode de réalisation décrit et représenté aux figures 5 annexées. Des modifications restent possibles, notamment du point de vue de la constitution des divers éléments ou par substitution d'équivalents techniques, sans sortir pour autant du domaine de protection de l'invention.

Claims (15)

  1. REVENDICATIONS1. Système (1) de traitement de données numériques multimédia comprenant - une interface de communication avec un réseau externe (4) audit système pour envoyer vers l'extérieur et recevoir de l'extérieur du système des données numériques multimédia sous forme de paquet cadencés en temps, lesdites données étant associées à un temps absolu, - un ensemble de sous-systèmes de traitement (2) communiquant entre eux au moyen d'un réseau interne (5) audit système, les sous-systèmes de traitement étant configurés pour mettre en oeuvre des opérations de traitement sur les données, - un sous-système de contrôle (2a) configuré pour superviser le réseau interne (5) et affecter aux sous-systèmes de traitement (2) les données sur lesquelles mettre en oeuvre les opérations de traitement, caractérisé en ce que l'interface de communication comprend un module de recalage (3) définissant une horloge interne à partir du temps absolu et en ce que les données transitent sur le réseau interne au moyen de datagrannnnes comprenant lesdites données, chacun desdits datagrannnnes comprenant une estampille temporelle comprenant une information de temps de référence déterminée par le module de recalage à partir de l'horloge interne, l'organisation temporelle de la mise en oeuvre des opérations de traitement sur les données par les sous-systèmes de traitement étant fonction des estampilles temporelles des datagrannnnes desdites données, indépendamment du temps absolu associé aux données.
  2. 2. Système selon la revendication précédente, dans lequel chaque datagramme comprend au moins un identifiant de flux associé à au moins une partie des données contenues dans le datagramme et permettant le routage du datagramme entre les sous-systèmes et la détermination de la chaîne de traitement à appliquer aux données dudit datagramme.
  3. 3. Système selon l'une des revendications précédentes, dans lequel les données se répartissent en plusieurs flux de données, les données d'un flux étant associées à un même domaine d'horloge permettant d'en dériver la cadence de flux, et les datagrannnnes comprennent un identifiant du domaine d'horloge associé à leurs données. 3036572 26
  4. 4. Système selon la revendication précédente, dans lequel au moins un sous-système est configuré pour combiner au moins deux flux de données d'un même domaine d'horloge sur la base de leurs estampilles temporelles de sorte d'obtenir des données synchronisées en termes de temps absolu. 5
  5. 5. Système selon la revendication précédente, dans lequel au moins un des flux de données à combiner comprend un datagramme avec un indicateur d'arrêt du flux, et ledit sous-système est configuré pour, à la détection dudit indicateur d'arrêt du flux, continuer à traiter l'autre flux de données sans attendre les données du flux auquel 10 appartient l'indicateur d'arrêt du flux.
  6. 6. Système selon l'une des deux revendications précédentes, dans lequel le sous-système est configuré pour prendre en compte les estampilles temporelles des datagrammes d'un flux avec un décalage de celles-ci. 15
  7. 7. Système selon l'une des revendications précédentes, dans lequel des sous-systèmes de traitement reçoivent un signal d'horloge dérivée de l'horloge interne.
  8. 8. Système selon l'une quelconque des revendications précédentes, dans lequel les 20 datagrammes comprennent les données sous la forme de paquet dans le format dans lequel elles ont été reçues.
  9. 9. Système selon l'une des revendications précédentes, dans lequel le datagramme est conforme au protocole de communication temps réel RTP. 25
  10. 10. Système selon l'une des revendications précédentes, dans lequel les datagrammes comprennent une information de statut de validité des données, et les sous-systèmes de traitement sont configurés pour réinitialiser un élément de traitement qu'elles mettent en oeuvre en fonction de ladite information de statut de validité des 30 données.
  11. 11. Système selon la revendication précédente, dans lequel les traitements sont mis en oeuvre selon une architecture parallèle d'instructions multiples et de données multiples. 35 3036572 27
  12. 12. Système selon l'une des revendications précédentes, dans lequel les sous-systèmes de traitement comprennent chacun au moins un processeur à mémoire partagée. 5
  13. 13. Système selon l'une des revendications 1 à 12, dans lequel les sous-systèmes de traitement sont des processus mis en oeuvre par une machine de traitement comprenant au moins un processeur à mémoire partagée.
  14. 14. Procédé de traitement de données multimédia par un système selon l'une 10 quelconque des revendications précédentes, ledit système comprenant : - une interface de communication avec un réseau externe (4) audit système pour envoyer vers l'extérieur et recevoir de l'extérieur du système des données numériques multimédia sous forme de paquet cadencés en temps, lesdites données étant associées à un temps absolu,
  15. 15 - un ensemble de sous-systèmes de traitement (2) communiquant entre eux au moyen d'un réseau interne (5) audit système, les sous-systèmes de traitement étant configurés pour mettre en oeuvre des opérations de traitement sur les données, - un sous-système de contrôle (2a) configuré pour superviser le réseau interne (5) et affecter aux sous-systèmes de traitement (2) les données sur lesquelles mettre 20 en oeuvre les opérations de traitement, l'interface de communication comprenant un module de recalage (3) définissant une horloge interne à partir du temps absolu, dans lequel les données transitent sur le réseau interne au moyen de datagrammes comprenant lesdites données, chacun desdits datagrammes comprenant une 25 estampille temporelle comprenant une information de temps de référence déterminée par le module de recalage à partir de l'horloge interne, et dans lequel dans lequel la mise en oeuvre d'opérations de traitement sur les données par les sous-systèmes de traitement est temporellement organisée en fonction des estampilles temporelles des datagrammes desdites données, indépendamment du temps absolu 30 associé aux données. 15. Produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon la revendication précédente lorsque ledit programme est exécuté par un ordinateur. 35
FR1554449A 2015-05-19 2015-05-19 Systeme de traitement de donnees numeriques multimedia Active FR3036572B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1554449A FR3036572B1 (fr) 2015-05-19 2015-05-19 Systeme de traitement de donnees numeriques multimedia
PCT/FR2016/051182 WO2016185143A1 (fr) 2015-05-19 2016-05-19 Système de traitement de données numériques multimedia

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1554449A FR3036572B1 (fr) 2015-05-19 2015-05-19 Systeme de traitement de donnees numeriques multimedia
FR1554449 2015-05-19

Publications (2)

Publication Number Publication Date
FR3036572A1 true FR3036572A1 (fr) 2016-11-25
FR3036572B1 FR3036572B1 (fr) 2018-06-01

Family

ID=53496855

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1554449A Active FR3036572B1 (fr) 2015-05-19 2015-05-19 Systeme de traitement de donnees numeriques multimedia

Country Status (2)

Country Link
FR (1) FR3036572B1 (fr)
WO (1) WO2016185143A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039065A1 (en) * 2003-08-15 2005-02-17 Francis Cheung System and method for generating multiple independent, synchronized local timestamps
WO2008015492A1 (fr) * 2006-08-02 2008-02-07 Freescale Semiconductor, Inc. Procédé de réception et de traitement de trames et dispositif ayant des capacités de réception et de traitement de trames

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1872533B1 (fr) 2005-04-22 2019-05-22 Audinate Pty Limited Réseau, dispositif et méthode de transport de médias numérique

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039065A1 (en) * 2003-08-15 2005-02-17 Francis Cheung System and method for generating multiple independent, synchronized local timestamps
WO2008015492A1 (fr) * 2006-08-02 2008-02-07 Freescale Semiconductor, Inc. Procédé de réception et de traitement de trames et dispositif ayant des capacités de réception et de traitement de trames

Also Published As

Publication number Publication date
WO2016185143A1 (fr) 2016-11-24
FR3036572B1 (fr) 2018-06-01

Similar Documents

Publication Publication Date Title
US20200059376A1 (en) Eventually consistent data replication in queue-based messaging systems
FR3011953A1 (fr) Reseau de transmission de donnees pour aeronef
FR3011954A1 (fr) Reseau de transmission de donnees pour aeronef
US9210058B2 (en) Systems and methods for assessing jitter buffers
FR2999367A1 (fr) Procede de transmission de donnees dans des unites de commande ecu et/ou des dispositifs de mesure dans le domaine automobile
FR3011958A1 (fr) Reseau de transmission de donnees pour aeronef
EP1641197A1 (fr) Architecture de communication NoC (réseau sur puce ) pour applications de type flots de données
FR3011999A1 (fr) Reseau de transmission de donnees pour aeronef
US10862944B1 (en) Real-time video streaming with latency control
EP2923461B1 (fr) Dispositif et procédé de retransmission de données dans un commutateur réseau
CN110727700A (zh) 多源流式数据整合成事务型流数据的方法及系统
FR2918233A1 (fr) Procede et dispositif d'echange de donnees de diagnostic pour la simulation de reseaux d'ordinateurs d'aeronefs
FR2998125A1 (fr) Procede de transmission de paquets de donnees entre deux modules de communication ainsi que module emetteur et module recepteur
WO2015145382A1 (fr) Composant electronique a reponse deterministe
FR3030162A1 (fr) Procede d'echange de trames de donnees numeriques et systeme de communication associe
FR3036572A1 (fr) Systeme de traitement de donnees numeriques multimedia
WO2020109733A2 (fr) Gestion des données pour le stockage de trames de données dans la mémoire d'un système de transmission de données
CN115695587A (zh) 一种业务数据处理系统、方法、装置和存储介质
US20140379778A1 (en) Asynchronous transport setup and selection for interactive applications
CN106909473A (zh) 一种节点重启后的数据处理方法及设备
US11271838B2 (en) Timing synchronization
FR3087979A1 (fr) Systeme de transmission de donnees
FR3079695A1 (fr) Analyse et filtrage de donnees dans un systeme de transmission de donnees
WO2021105262A1 (fr) Système de gestion des données partagées
FR2949030A1 (fr) Procede et dispositif de synchronisation d'applications dans un reseau

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20161125

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

TP Transmission of property

Owner name: DIGIGRAM DIGITAL, FR

Effective date: 20200824

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10