BE1024519B1 - Modular software-based video production server, video production server operation method, and distributed video production system - Google Patents

Modular software-based video production server, video production server operation method, and distributed video production system Download PDF

Info

Publication number
BE1024519B1
BE1024519B1 BE2016/5252A BE201605252A BE1024519B1 BE 1024519 B1 BE1024519 B1 BE 1024519B1 BE 2016/5252 A BE2016/5252 A BE 2016/5252A BE 201605252 A BE201605252 A BE 201605252A BE 1024519 B1 BE1024519 B1 BE 1024519B1
Authority
BE
Belgium
Prior art keywords
video production
video
production server
server
elementary
Prior art date
Application number
BE2016/5252A
Other languages
French (fr)
Other versions
BE1024519A1 (en
Inventor
Olivier Barnich
Michael Bastings
Johan Vounckx
Original Assignee
Evs Broadcast Equipment Sa
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 Evs Broadcast Equipment Sa filed Critical Evs Broadcast Equipment Sa
Priority to BE2016/5252A priority Critical patent/BE1024519B1/en
Publication of BE1024519A1 publication Critical patent/BE1024519A1/en
Application granted granted Critical
Publication of BE1024519B1 publication Critical patent/BE1024519B1/en

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/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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/21Server components or server architectures
    • H04N21/226Characteristics of the server or Internal components of the server
    • 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/241Operating system [OS] processes, e.g. server setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Un serveur de production vidéo comprenant au moins un processeur et un magasin de stockage est suggéré. Des modules logiciels composés d’un code de programme exécutable sont chargés dans une mémoire de travail dudit au moins un processeur. Chaque module logiciel, lorsqu’il est exécuté par ledit au moins un processeur, fournit un service élémentaire. Une concaténation de services élémentaires fournit une fonctionnalité impliquant le traitement de signaux vidéo et/ou audio requis en vue de produire un programme de diffusion. Le serveur de production vidéo inclut un ensemble de composants logiciels qui s’exécute sur du matériel conventionnel. Chaque fonctionnalité du serveur de production vidéo est réalisée en utilisant un logiciel unitaire spécifique qui est assemblé à partir de blocs logiciels fonctionnels réutilisables et qui peut s’exécuter sur toute plateforme matérielle compatible. Par ailleurs, un procédé d’exploitation du serveur de production vidéo et d’un système de production vidéo distribué incluant le serveur de production vidéo est suggéré.A video production server including at least one processor and a storage store is suggested. Software modules composed of executable program code are loaded into a working memory of the at least one processor. Each software module, when executed by said at least one processor, provides a basic service. Concatenation of basic services provides functionality involving the processing of video and / or audio signals required to produce a broadcast program. The video production server includes a set of software components that runs on conventional hardware. Each feature of the video production server is realized using specific unit software that is assembled from reusable functional software blocks and can run on any compatible hardware platform. In addition, a method of operating the video production server and a distributed video production system including the video production server is suggested.

Description

(73) Titulaire(s) :(73) Holder (s):

EVS BROADCAST EQUIPMENT SAEVS BROADCAST EQUIPMENT SA

4102, SERAING4102, SERAING

Belgique (72) Inventeur(s) :Belgium (72) Inventor (s):

BARN ICH Olivier 4000 LIEGE BelgiqueBARN ICH Olivier 4000 LIEGE Belgium

BASTINGS Michael 4420 SAINT NICOLAS BelgiqueBASTINGS Michael 4420 SAINT NICOLAS Belgium

VOUNCKX Johan 3210 LINDEN Belgique (54) Serveur de production vidéo à base de logiciel modulaire, procédé de fonctionnement du serveur de production vidéo et système de production vidéo distribuéVOUNCKX Johan 3210 LINDEN Belgium (54) Video production server based on modular software, operating method of the video production server and distributed video production system

208 (57) Un serveur de production vidéo comprenant au moins un processeur et un magasin de stockage est suggéré. Des modules logiciels composés d’un code de programme exécutable sont chargés dans une mémoire de travail dudit au moins un processeur. Chaque module logiciel, lorsqu’il est exécuté par ledit au moins un processeur, fournit un service élémentaire. Une concaténation de services élémentaires fournit une fonctionnalité impliquant le traitement de signaux vidéo et/ou audio requis en vue de produire un programme de diffusion. Le serveur de production vidéo inclut un ensemble de composants logiciels qui s’exécute sur du matériel conventionnel. Chaque fonctionnalité du serveur de production vidéo est réalisée en utilisant un logiciel unitaire spécifique qui est assemblé à partir de blocs logiciels fonctionnels réutilisables et qui peut s’exécuter sur toute plateforme matérielle compatible. Par ailleurs, un procédé d’exploitation du serveur de production vidéo et d’un système de production vidéo distribué incluant le serveur de production vidéo est suggéré.208 (57) A video production server comprising at least one processor and a storage store is suggested. Software modules composed of an executable program code are loaded into a working memory of said at least one processor. Each software module, when executed by said at least one processor, provides a basic service. A concatenation of basic services provides functionality involving the processing of video and / or audio signals required in order to produce a broadcast program. The video production server includes a set of software components that runs on conventional hardware. Each functionality of the video production server is carried out using specific unitary software which is assembled from reusable functional software blocks and which can run on any compatible hardware platform. In addition, a method of operating the video production server and a distributed video production system including the video production server is suggested.

206205—206205—

204— 203—L204— 203 — L

Applications d'utilisateurUser applications

Applications d'utilisateurUser applications

Service Service Servicerte Service service | service | Service de Service Service n Service n d ingestion ingestion stccksge stccksge de codeur j encoder j décodeur decoder XX XX

Fig.2Fig. 2

201 □□□□ ni201 □ □ ...

207207

BREVET D'INVENTION BELGEBELGIAN INVENTION PATENT

SPF Economie, PME, Classes Moyennes & EnergieFPS Economy, SMEs, Middle Classes & Energy

Numéro de publication : 1024519 Numéro de dépôt : BE2016/5252Publication number: 1024519 Deposit number: BE2016 / 5252

Office de la Propriété intellectuelle Classification Internationale : H04N 21/854 H04N 5/265 H04N 21/226 H04N 21/2343 H04N 21/241 Date de délivrance : 28/03/2018Intellectual Property Office International Classification: H04N 21/854 H04N 5/265 H04N 21/226 H04N 21/2343 H04N 21/241 Date of issue: 03/28/2018

Le Ministre de l'Economie,The Minister of the Economy,

Vu la Convention de Paris du 20 mars 1883 pour la Protection de la propriété industrielle ;Having regard to the Paris Convention of March 20, 1883 for the Protection of Industrial Property;

Vu la loi du 28 mars 1984 sur les brevets d'invention, l'article 22, pour les demandes de brevet introduites avant le 22 septembre 2014 ;Considering the law of March 28, 1984 on patents for invention, article 22, for patent applications introduced before September 22, 2014;

Vu le Titre 1er “Brevets d’invention” du Livre XI du Code de droit économique, l'article XI.24, pour les demandes de brevet introduites à partir du 22 septembre 2014 ;Given Title 1 “Patents for invention” of Book XI of the Code of Economic Law, article XI.24, for patent applications introduced from September 22, 2014;

Vu l'arrêté royal du 2 décembre 1986 relatif à la demande, à la délivrance et au maintien en vigueur des brevets d'invention, l'article 28 ;Having regard to the Royal Decree of 2 December 1986 relating to the request, the issue and the maintenance in force of invention patents, article 28;

Vu la demande de brevet d'invention reçue par l'Office de la Propriété intellectuelle en date du 12/04/2016.Given the patent application received by the Intellectual Property Office on 12/04/2016.

Considérant que pour les demandes de brevet tombant dans le champ d'application du Titre 1er, du Livre XI du Code de Droit économique (ci-après CDE), conformément à l'article XI. 19, §4, alinéa 2, du CDE, si la demande de brevet a fait l'objet d'un rapport de recherche mentionnant un défaut d'unité d'invention au sens du §ler de l'article XI.19 précité et dans le cas où le demandeur n'effectue ni une limitation de sa demande ni un dépôt d'une demande divisionnaire conformément aux résultats du rapport de recherche, le brevet délivré sera limité aux revendications pour lesquelles le rapport de recherche a été établi.Whereas for patent applications falling within the scope of Title 1, Book XI of the Code of Economic Law (hereinafter CDE), in accordance with article XI. 19, §4, paragraph 2, of the CDE, if the patent application has been the subject of a search report mentioning a lack of unity of invention within the meaning of the §ler of article XI.19 cited above and in the event that the applicant does not limit or file a divisional application in accordance with the results of the search report, the granted patent will be limited to the claims for which the search report has been drawn up.

Arrête :Stopped :

Article premier. - Il est délivré àFirst article. - It is issued to

EVS BROADCAST EQUIPMENT SA, Rue Bois Saint-Jean 13, 4102 SERAING Belgique;EVS BROADCAST EQUIPMENT SA, Rue Bois Saint-Jean 13, 4102 SERAING Belgium;

représenté parrepresented by

SPEICH Stéphane, Rue des Bruyères 55, 1274, HOWALD;SPEICH Stéphane, Rue des Bruyères 55, 1274, HOWALD;

un brevet d'invention belge d'une durée de 20 ans, sous réserve du paiement des taxes annuelles visées à l’article XI.48, §1 du Code de droit économique, pour : Serveur de production vidéo à base de logiciel modulaire, procédé de fonctionnement du serveur de production vidéo et système de production vidéo distribué.a 20-year Belgian invention patent, subject to payment of the annual fees referred to in article XI.48, §1 of the Code of Economic Law, for: Video production server based on modular software, operating method of the video production server and distributed video production system.

INVENTEUR(S) :INVENTOR (S):

BARNICH Olivier, Boulevard d'Avroy 200, 4000, LIEGE;BARNICH Olivier, Boulevard d'Avroy 200, 4000, LIEGE;

BASTINGS Michael, Rue de Tilleur 275, 4420, SAINT NICOLAS;BASTINGS Michael, Rue de Tilleur 275, 4420, SAINT NICOLAS;

VOUNCKX Johan, Tempelstraat 30, 3210, LINDEN;VOUNCKX Johan, Tempelstraat 30, 3210, LINDEN;

PRIORITE(S) :PRIORITY (S):

DIVISION :DIVISION:

divisé de la demande de base : date de dépôt de la demande de base :divided from the basic application: filing date of the basic application:

Article 2. - Ce brevet est délivré sans examen préalable de la brevetabilité de l'invention, sans garantie du mérite de l'invention ou de l'exactitude de la description de celle-ci et aux risques et périls du (des) demandeur(s).Article 2. - This patent is granted without prior examination of the patentability of the invention, without guarantee of the merit of the invention or of the accuracy of the description thereof and at the risk and peril of the applicant (s) ( s).

Bruxelles, le 28/03/2018, Par délégation spéciale :Brussels, 03/28/2018, By special delegation:

DESCRIPTION D DESCRIPTION D

Serveur de production vidéo à base de logiciel modulaire, procédé de fonctionnement du serveur de production vidéo et système de production vidéo distribuéModular software-based video production server, video production server operating method, and distributed video production system

Domaine techniqueTechnical area

La présente divulgation concerne un serveur de production vidéo à base de logiciel, un procédé de fonctionnement du serveur de production vidéo et un système de production vidéo distribué. Le serveur de production vidéo prend en charge différents types de fonctionnalités qui sont nécessaires dans le cadre d’une production de diffusion.The present disclosure relates to a software-based video production server, a method of operating the video production server, and a distributed video production system. The video production server supports different types of functionality that are required for broadcast production.

ContexteContext

Pour une production TV en direct dans un environnement de production vidéo d’aujourd'hui, un équipement spécialisé très coûteux est utilisé dans le cadre de l’acquisition, du traitement et de la lecture de sources ou flux vidéo et/ou audio provenant de dispositifs d’acquisition, par exemple de caméras et de microphones. Parfois, les sources vidéo et/ou audio sont combinées avec des métadonnées associées, par exemple des métadonnées audio/vidéo ou des métadonnées associées à l’événement capturé, par exemple la vitesse d’athlètes, ou des données situationnelles fournies par des experts, par exemple des commentaires sur des faits de jeux tels que des buts, des fautes, etc. Tous les signaux entrants ou les données entrantes doivent être traité(e)s en vue de produire un ou plusieurs signaux de sortie de programme final. Une unité de traitement qui fait partie de l’équipement de production met en œuvre le traitement des signaux. Le traitement incluant :For live TV production in today's video production environment, very expensive specialized equipment is used for the acquisition, processing and playback of video and / or audio sources or streams from acquisition devices, for example cameras and microphones. Sometimes the video and / or audio sources are combined with associated metadata, for example audio / video metadata or metadata associated with the captured event, for example the speed of athletes, or situational data provided by experts, for example comments on game facts such as goals, fouls, etc. All incoming signals or incoming data must be processed to produce one or more final program output signals. A processing unit that is part of the production equipment implements signal processing. Treatment including:

l’ingestion de signaux provenant de dispositifs d’acquisition dans le matériel de traitement ;the ingestion of signals from acquisition devices into processing equipment;

le codage de signaux bruts provenant des dispositifs d’acquisition en des signaux à débit binaire faible ;encoding raw signals from the acquisition devices into low bit rate signals;

la dérivation de copies de résolution inférieure du signal d’origine, par exemple à des fins de surveillance ou autres ;the derivation of lower resolution copies of the original signal, for example for surveillance or other purposes;

le décodage des signaux à débit binaire faible en le signal brut d’origine ; le transcodage de signaux ;decoding low bit rate signals into the original raw signal; signal transcoding;

l’enregistrement, d’un signal en vue d’une utilisation ultérieure ; l’application d’effets vidéo aux signaux ;recording a signal for later use; applying video effects to signals;

le mélange de différents signaux en un seul signal ; la lecture de signaux ;mixing different signals into a single signal; reading signals;

BE2016/5252 l’affichage des signaux.BE2016 / 5252 display of signals.

Une grande partie du traitement nécessaire est mise en œuvre par des mélangeurs vidéo 5 et des serveurs de production. Des mélangeurs vidéo sont disponibles, par exemple, auprès de sociétés comme EVS, Grass Valley, Sony, SAM et Ross. Dans une production de diffusion typique, les mélangeurs vidéo et les serveurs de production sont connectés à d'autres dispositifs tels que des caméras, des magasins de stockage vidéo, des générateurs d'effets vidéo et d’autres dispositifs. Tous ces dispositifs sont disponibles dans le commerce. Aujourd'hui, tous ces dispositifs sont fabriqués à partir de composants matériels spécialisés. De toute évidence, les signaux audio qui accompagnent les signaux vidéo doivent également être traités au cours d’une production de diffusion.Much of the processing required is implemented by video mixers 5 and production servers. Video mixers are available, for example, from companies like EVS, Grass Valley, Sony, SAM and Ross. In a typical broadcast production, video mixers and production servers are connected to other devices such as cameras, video storage stores, video effects generators, and other devices. All of these devices are commercially available. Today, all of these devices are made from specialized hardware components. Obviously, the audio signals that accompany the video signals must also be processed during broadcast production.

Des appareils dédiés fonctionnent sur ces dispositifs matériels spécialisés en vue de mettre en œuvre les fonctions spécifiques mentionnées ci-dessus. La probabilité d’utiliser tous les dispositifs dédiés et leur puissance maximale en même temps est très faible. Cela se traduit par un provisïonnement excessif de la puissance de traitement. Parallèlement, cela occasionne également un grand manque de flexibilité de l'infrastructure de traitement dans un studio de diffusion classique, étant donné que différents types de productions, par exemple les sports en direct versus les actualités en direct, ne peuvent être réalisés sur la même infrastructure à moins que tous les dispositifs nécessaires aux deux types de productions ne soient disponibles.Dedicated devices operate on these specialized hardware devices in order to implement the specific functions mentioned above. The probability of using all dedicated devices and their maximum power at the same time is very low. This results in an excessive provisioning of the processing power. At the same time, this also causes a great lack of flexibility of the processing infrastructure in a conventional broadcast studio, since different types of productions, for example live sports versus live news, cannot be produced on the same infrastructure unless all the devices necessary for both types of production are available.

Une autre raison contribue également à l’inefficacité des studios de diffusion conventionnels. Dans un environnement de diffusion conventionnel, la majeure partie de la communication entre les dispositifs d'équipements de diffusion est réalisée grâce à une transmission en bande de base de signaux vidéo/audio utilisant le format SDI propriétaire. Les dispositifs fonctionnent de manière synchrone, selon un signal de temporisation partagé (appelé « Genlock » ou « salve de noir », ou encore « signal de référence ») lequel est acheminé conjointement avec les signaux SDI. Ce signal de temporisation est typiquement un signal quadratique dont les fronts montants correspondent à l’arrivée de nouvelles trames vidéo dans le système. En conséquence, des trames vidéo / audio doivent être traitées en interne au cours d’un intervalle de temps fixe, ce qui entraîne un dimensionnement « basé sur le cas le plus défavorable » de l’infrastructure, étant donné que toutes les étapes de traitement doivent être finalisées avant l’arrivée de la trame successive. Les systèmes matériels typiques nécessitent un niveau de synchronisation encore plus fin, jusqu'à un niveau de ligne, voire un niveau de sous-ligne.Another reason also contributes to the ineffectiveness of conventional broadcast studios. In a conventional broadcast environment, most of the communication between the broadcast equipment devices is accomplished through baseband transmission of video / audio signals using the proprietary SDI format. The devices operate synchronously, according to a shared timing signal (called “Genlock” or “black burst”, or even “reference signal”) which is routed together with the SDI signals. This timing signal is typically a quadratic signal whose rising edges correspond to the arrival of new video frames in the system. As a result, video / audio frames must be processed internally during a fixed time interval, which results in “worst case based” sizing of the infrastructure, since all processing steps must be finalized before the arrival of the next frame. Typical hardware systems require an even finer level of synchronization, down to a line level or even a sub-line level.

Le brevet US 2009/0187826 Al décrit un système d’affichage et de commande de données qui commande tous les dispositifs de production dans un système de production vidéo. Les dispositifs de production sont conventionnels, mais le système de commande consolide les fonctionnalités des dispositifs de production connectés. Le système de commande simplifie le fonctionnement du système de production vidéo.US Patent 2009/0187826 A1 describes a data display and control system which controls all production devices in a video production system. The production devices are conventional, but the control system consolidates the functionality of the connected production devices. The control system simplifies the operation of the video production system.

Un concept plus récent pour les productions de diffusion est la production vidéo distribuée. Ce concept tente de surmonter au moins certaines des limitations imposées par les équipements de diffusion conventionnels. Le concept de production vidéo distribuée est décrit, par exemple, dans l’article de Boutaba et ass. : « Distributed Video Production: Tasks, Architecture and QoS Provisioning » (production vidéo distribuée : tâches, architecture et provisionnement de qualité QoS), publié dans l’ouvrage « Multimedia Tools et Applications » (outils et applications multimédias), Kluwer Academie Publishers, Boston, États-Unis, Volume 16, numéro 1-2,1er janvier 2002, pages 99 à 136. Boutaba et ass. abordent le problème du retard, ou délai, des fluctuations de retard et des exigences en termes de dissymétrie, ou obliquité, entre supports. Boutaba et al. déclarent explicitement que les performances de retard sont mesurées sur la base de la fluctuation de retard ou « gigue ». La gigue correspond à une mesure de la différence en termes de retard rencontrée par différents paquets dans un réseau, sous l’effet d’une variation en termes d'occupation de mémoire tampon dans les nœuds de commutation intermédiaires. Une autre forme de gigue concerne la gigue inter-flux ou « dissymétrie », également appelée « obliquité », qui mesure la différence en termes de retard telle que perçue par des flux distincts appartenant à la même application (par exemple audio et vidéo). Afin de garantir une synchronisation intra-flux appropriée, une faible fluctuation de retard est souvent requise. Boutaba et ass. suggèrent de compenser la gigue en mettant en mémoire tampon les flux de données. Cela nécessite la fourniture d’une quantité de mémoire suffisante, en mesure de stocker des intervalles suffisamment longs de données vidéo et audio, afin de compenser la gigue. Dans le cas de données vidéo haute définition, cela nécessite une grande capacité de stockage.A more recent concept for broadcast productions is distributed video production. This concept attempts to overcome at least some of the limitations imposed by conventional broadcast equipment. The concept of distributed video production is described, for example, in the article by Boutaba et ass. : “Distributed Video Production: Tasks, Architecture and QoS Provisioning”, published in the book “Multimedia Tools and Applications”, Kluwer Academie Publishers, Boston, United States, Volume 16, number 1 to 2.1 January 2002, pages 99 to 136. Boutaba and ass. address the problem of delay, or delay, fluctuations in delay and requirements in terms of asymmetry, or obliquity, between supports. Boutaba et al. explicitly state that delay performance is measured on the basis of delay fluctuation or "jitter". The jitter corresponds to a measure of the difference in terms of delay encountered by different packets in a network, under the effect of a variation in terms of buffer memory occupation in the intermediate switching nodes. Another form of jitter relates to inter-stream or “asymmetry” jitter, also called “skew”, which measures the difference in terms of delay as perceived by separate streams belonging to the same application (for example audio and video). To ensure proper intra-flow synchronization, a small delay fluctuation is often required. Boutaba et ass. suggest compensating for jitter by buffering data streams. This requires the provision of sufficient memory capable of storing sufficiently long intervals of video and audio data to compensate for jitter. In the case of high definition video data, this requires a large storage capacity.

Boutaba et ass. s’appuient sur différents types de serveurs pour réaliser différentes fonctionnalités nécessaires à une production de diffusion. Pour chaque fonctionnalité, un type de serveur spécifique est utilisé. Chaque serveur spécifique est soit construit exclusivement avec du matériel propriétaire, soit avec du matériel standard et des cartes d'accélérationBoutaba et ass. rely on different types of servers to provide the different functionality necessary for broadcast production. For each feature, a specific type of server is used. Each specific server is either built exclusively with proprietary hardware, or with standard hardware and acceleration cards

BE2016/5252 in prenant cela comme vidéo à base de loei de départ, la présente divulgation suggère un serveur de offrant une flexibilité accrue dans le cadre de productionsBE2016 / 5252 taking this as a starting loei video, the present disclosure suggests a server offering increased flexibility in production

Résumésummary

Selon un premier aspect, la présente divulgation suggère un serveur de production vidéo comportant au moins un processeur et un magasin de stockage. Des modules logiciels composés d’un code de programme exécutable sont chargés dans une mémoire de travail dudit au moins un processeur. Chaque module logiciel, lorsqu’il est exécuté par ledit au moins un processeur, fournit un service élémentaire. Une concaténation de services élémentaires fournit une fonctionnalité impliquant un traitement de signaux vidéo et/ou audio requis en vue de produire un programme de diffusion.According to a first aspect, the present disclosure suggests a video production server comprising at least one processor and a storage store. Software modules composed of an executable program code are loaded into a working memory of said at least one processor. Each software module, when executed by said at least one processor, provides a basic service. A concatenation of basic services provides functionality involving processing of video and / or audio signals required in order to produce a broadcast program.

Selon un mode de réalisation du serveur de production vidéo, les modules logiciels sont mis en correspondance sur le matériel du serveur de production vidéo.According to one embodiment of the video production server, the software modules are matched on the hardware of the video production server.

Dans un mode de réalisation avantageux, le serveur de production vidéo est configuré en qualité d’un serveur d’ingestion ingérant des signaux, notamment des signaux vidéo et/ou audio, sous la forme de flux de trames de données en provenance de dispositifs d’acquisition en synchronicité avec la sortie de dispositifs d’acquisition.In an advantageous embodiment, the video production server is configured as an ingestion server ingesting signals, in particular video and / or audio signals, in the form of streams of data frames from digital devices. acquisition in synchronicity with the output of acquisition devices.

Selon un mode de réalisation, le serveur d’ingestion est apte à ingérer simultanément de multiples flux de signaux de différents formats.According to one embodiment, the ingestion server is capable of simultaneously ingesting multiple signal streams of different formats.

Si le serveur de production vidéo est configure en qualité de serveur d’ingestion, il est données entrante.If the video production server is configured as an ingestion server, it is incoming data.

Dans un autre mode de réalisation, le serveur de production vidéo est configuré en qualité de serveur de lecture délivrant en sortie des signaux vidéo et/ou audio sous la forme de trames de données en synchronicité avec des dispositifs en aval recevant les signaux de sortie du serveur de production vidéo. Les dispositifs d’acquisition et les dispositifs en aval n’ont pas besoin de présenter la même synchronicité.In another embodiment, the video production server is configured as a playback server outputting video and / or audio signals in the form of data frames in synchronicity with downstream devices receiving the output signals from the video production server. Acquisition devices and downstream devices do not need to have the same synchronicity.

Avantageusement, ledit au moins un processeur du serveur de production vidéo met en œuvre un traitement interne asynchrone des signaux vidéo et/ou audio.Advantageously, said at least one processor of the video production server implements an asynchronous internal processing of the video and / or audio signals.

Dans un mode de réalisation avantageux, ledit au moins un processeur est configuré de manière à traiter les trames de données selon la séquence de leurs estampilles temporelles affectées par les modules d’ingestion.In an advantageous embodiment, said at least one processor is configured so as to process the data frames according to the sequence of their timestamps affected by the ingestion modules.

Avantageusement, chaque module logiciel du serveur de production vidéo présente des interfaces de données définies (API) décrivant un format de données unitaire pour les données vidéo, les données audio, les métadonnées et/ou les données de commande, au niveau de l’entrée et de la sortie des modules logiciels, permettant une séquence « définie par l’utilisateur » de sendees élémentaires. Dans ce cas, la séquence « définie par l’utilisateur » de services élémentaires forme au moins un pipeline de traitement pour les signaux vidéo et/ou audio et/ou les métadonnées.Advantageously, each software module of the video production server has defined data interfaces (API) describing a unitary data format for video data, audio data, metadata and / or control data, at the input level. and the output of software modules, allowing a "user-defined" sequence of elementary sendees. In this case, the "user-defined" sequence of basic services forms at least one processing pipeline for video and / or audio signals and / or metadata.

Dans un mode de réalisation avantageux, un sendee élémentaire peut être supprimé dudit au moins un pipeline de traitement, ou remplacé on inséré dans ledit au moins un pipeline de traitement, sans affecter le fonctionnement du reste du pipeline de traitement.In an advantageous embodiment, an elementary sendee can be deleted from said at least one processing pipeline, or replaced or inserted into said at least one processing pipeline, without affecting the operation of the rest of the processing pipeline.

Dans un mode de réalisation, le serveur de production vidéo exécute un algorithme qui détecte des défaillances matérielles et remet automatiquement en correspondance les modules logiciels de sorte que les modules logiciels ne sont plus mis en correspondance sur le matériel défaillant.In one embodiment, the video production server executes an algorithm that detects hardware failures and automatically matches the software modules so that the software modules are no longer matched on the failing hardware.

Dans un mode de réalisation supplémentaire, le serveur de production vidéo inclut un magasin de stockage permettant un accès direct à tout grain, après que le grain a été stocké, dans lequel le terme « grain » est un terme général désignant le plus petit élément traité dans le serveur de production vidéo. Par exemple, un grain est une trame vidéo ou une trame audio.In a further embodiment, the video production server includes a storage store allowing direct access to any grain after the grain has been stored, in which the term "grain" is a general term for the smallest item processed in the video production server. For example, a grain is a video frame or an audio frame.

Dans encore un autre mode de réalisation, le serveur de production vidéo comporte de multiples nœuds de serveurs connectés en communication par un réseau. Selon un développement de ce mode de réalisation, les modules logiciels sont dynamiquement mis en correspondance sur ies multiples nœuds de serveurs en vue d’une amélioration des performances dudit au moins un pipeline de traitement composé de services élémentaires fournis par les modules logiciels.In yet another embodiment, the video production server includes multiple server nodes connected in communication over a network. According to a development of this embodiment, the software modules are dynamically matched on the multiple server nodes with a view to improving the performance of said at least one processing pipeline composed of elementary services provided by the software modules.

Selon un deuxième aspect, la présente divulgation suggère un système de production vidéo distribué comportant au moins deux dispositifs de production de diffusion, lesquels sont interconnectés par un réseau et sont mutuellement synchronisés. Au moins l’un des dispositifs de production de diffusion est un serveur de production vidéo selon la présente divulgation.According to a second aspect, the present disclosure suggests a distributed video production system comprising at least two broadcast production devices, which are interconnected by a network and are mutually synchronized. At least one of the broadcast production devices is a video production server according to this disclosure.

Selon un troisième aspect, la présente divulgation suggère un procédé d’exploitation de ce serveur de production vidéo, dans lequel le procédé comporte les étapes ci-dessousAccording to a third aspect, the present disclosure suggests a method of operating this video production server, in which the method comprises the steps below

BE2016/5252 consistant a :BE2016 / 5252 consisting of:

définir une séquence de services élémentaires appliquée à des trames de données de flux de signaux reçus tels que des flux vidéo et audio ;defining a sequence of elementary services applied to data frames of received signal streams such as video and audio streams;

traiter des trames de données selon la séquence de services élémentaires définie d’une manière asynchrone, et simultanément maintenir la relation temporelle de trames de données horodatées de flux audio et/ou vidéo associés.process data frames according to the elementary service sequence defined asynchronously, and simultaneously maintain the time relationship of time-stamped data frames of audio and / or video streams.

Dans un mode de réalisation supplémentaire, le procédé comporte en outre l’étape ci-dessous consistant à :In an additional embodiment, the method further comprises the step below consisting in:

modifier dynamiquement la séquence de services élémentaires, d’une trame de données à la trame de données successive, d’un flux de signaux reçu, en supprimant un service élémentaire de la séquence de services élémentaires, ou en remplaçant un service élémentaire dans la séquence de services élémentaires, ou en insérant un service élémentaire dans la séquence de services élémentaires.dynamically modify the sequence of elementary services, from a data frame to the successive data frame, of a received signal stream, by deleting an elementary service from the sequence of elementary services, or by replacing an elementary service in the sequence of elementary services, or by inserting an elementary service in the sequence of elementary services.

Dans un autre mode de réalisation, le procédé comporte en outre l’étape ci-dessous consistant à :In another embodiment, the method further comprises the step below consisting in:

mettre en correspondance dynamiquement les modules logiciels sur la plateforme matérielle composée de multiples nœuds de serveurs en vue d’une amélioration des performances de la séquence de services élémentaires.dynamically match the software modules on the hardware platform composed of multiple server nodes in order to improve the performance of the sequence of basic services.

Selon un développement de ce mode de réalisation, la mise en correspondance dynamique varie d’une trame de données à la trame de données successive d’un flux de signaux reçu.According to a development of this embodiment, the dynamic mapping varies from a data frame to the successive data frame of a received signal stream.

Selon un dernier aspect, la présente divulgation suggère un logiciel contenant un code de programme, qui, lorsqu’il est exécuté par un processeur, met en œuvre un procédé selon le troisième aspect de la présente divulgation.In a final aspect, the present disclosure suggests software containing program code, which, when executed by a processor, implements a method according to the third aspect of the present disclosure.

Brève description des dessinsBrief description of the drawings

Dans les dessins, des modes de réalisation exemplaires de la présente divulgation sont illustrés. Les éléments identiques ou similaires dans les figures sont indiqués par des numéros de référence identiques ou similaires. Dans lesquelles figures :In the drawings, exemplary embodiments of the present disclosure are illustrated. Identical or similar elements in the figures are indicated by identical or similar reference numbers. In which figures:

La figure 1 illustre une structure schématique d’un système deFigure 1 illustrates a schematic structure of a

ΊΊ

BE2016/5252 production de diffusion distribué ;BE2016 / 5252 distributed broadcasting production;

La figure 2 illustre l’architecture d’un serveur de production vidéo selonFigure 2 illustrates the architecture of a video production server according to

La figure 3 illustre une visualisation de la relation conceptuelle entre des sources, des services élémentaires et des fonctionnalités ;Figure 3 illustrates a visualization of the conceptual relationship between sources, basic services and functionalities;

La figure 4 illustre la mise en correspondance de services élémentaires sur une plateforme matérielle ;Figure 4 illustrates the mapping of basic services on a hardware platform;

La figure 5A illustre un. premier pipeline de services élémentaires pour une production en direct ;Figure 5A illustrates one. first basic service pipeline for live production;

Les figures 5B et 5C représentent une illustration schématique de services élémentaires et d’interfaces API correspondantes ;FIGS. 5B and 5C represent a schematic illustration of elementary services and of corresponding API interfaces;

La figure 5D illustre un second pipeline de sendees élémentaires pour une production en direct ;Figure 5D illustrates a second pipeline of elementary outputs for live production;

La figure 6 illustre un mécanisme de reconfiguration de pipeline ;Figure 6 illustrates a pipeline reconfiguration mechanism;

La figure 7 représente une illustration des principes de synchronisation du serveur de production vidéo ;FIG. 7 represents an illustration of the principles of synchronization of the video production server;

Les figures 8A et 8C représentent des illustrations d’une application à sécurité intégrée, autrement dit à tolérance de pannes, sur le serveur· de production vidéo ;FIGS. 8A and 8C show illustrations of an application with integrated security, in other words fault-tolerant, on the video production server;

Les figures 9A et 9B illustrent des pipelines de services élémentaires qui sont tolérants aux pannes ;Figures 9A and 9B illustrate basic service pipelines which are fault tolerant;

La figure 10 illustre un organigramme du procédé de fonctionnement du serveur de production vidéo ;FIG. 10 illustrates a flow diagram of the operating method of the video production server;

La figure 11 illustre un serveur de production vidéo composé de nœuds de serveurs interconnectés : etFIG. 11 illustrates a video production server composed of nodes of interconnected servers: and

Les figures 12A et 12B illustrent une mise en correspondance de pipelines sur le serveur de production vidéo de la figure 11.Figures 12A and 12B illustrate a mapping of pipelines on the video production server of Figure 11.

; modes de réalisation; embodiments

Tonte référence, dans les présentes, à « un unique mode de réalisation » ou à « un mode de réalisation » signifie qu’une fonction, une structure ou une caractéristique spécifique décrite dans le cadre du mode de réalisation peut être incluse dans au moins une mise eu œuvre de la présente solution. Les occurrences de l’expression « dans un mode de réalisation » dans différents passages de la présente spécification ne font pas nécessairement toutes référence au même mode de réalisation, et ne constituent pas nécessairement des modes de réalisation distincts ou alternatifs, mutuellement exclusifs d’autres modes de réalisation.Any reference herein to "a single embodiment" or to "an embodiment" means that a specific function, structure or characteristic described in connection with the embodiment may be included in at least one implementation of this solution. The occurrences of the expression “in an embodiment” in different passages of this specification do not necessarily all refer to the same embodiment, and do not necessarily constitute distinct or alternative embodiments, mutually exclusive of other embodiments.

Tandis que la présente solution peut-être être sujette à diverses modifications et prendre des formes alternatives, des modes de réalisation spécifiques ont été illustrés à titre d’exemple dans les dessins d’accompagnent et seront décrits en détail ci-après. Cependant, il doit être entendu que la présente solution n’est pas destinée à être limitée aux formes spécifiques divulguées.While the present solution may be subject to various modifications and take alternative forms, specific embodiments have been illustrated by way of example in the accompanying drawings and will be described in detail below. However, it should be understood that the present solution is not intended to be limited to the specific forms disclosed.

Un ou plusieurs modes de réalisation spécifiques de la présente solution seront décrits ci-dessous. Dans le but de fournir une description concise de ces modes de réalisation, toutes les fonctions d’une mise en œuvre en cours ne seront pas nécessairement décrites dans la spécification. 11 doit être apprécié que, dans le développement d’une telle mise en œuvre en cours quelconque, par exemple dans un quelconque projet de conception ou d’ingénierie, de nombreuses décisions spécifiques à ia mise en œuvre doivent être prises pour atteindre les objectifs précis des développeurs, par exemple la conformité avec les contraintes liées au système et à l’activité commerciale, qui peuvent varier d’une mise en œuvre à l’autre. Par ailleurs, il doit être apprécié qu’un tel effort de développement, bien que potentiellement complexe et chronophage, représenterait néanmoins une activité systématique de conception et de fabrication pour l’homme du métier bénéficiant de cette divulgation.One or more specific embodiments of the present solution will be described below. In order to provide a concise description of these embodiments, all of the functions of an implementation in progress will not necessarily be described in the specification. It should be appreciated that in the development of any such implementation in progress, for example in any design or engineering project, many decisions specific to the implementation must be made to achieve the specific objectives. developers, for example compliance with system and business constraints, which may vary from implementation to implementation. Furthermore, it should be appreciated that such a development effort, although potentially complex and time-consuming, would nevertheless represent a systematic design and manufacturing activity for the skilled person benefiting from this disclosure.

Certains aspects comparables, en termes de champ d’application, aux modes de réalisation divulgués, sont décrits ci-dessous. Il convient de comprendre que ces aspects sont présentés simplement en vue de fournir au lecteur un bref résumé de certaines formes que pourrait prendre la solution et que ces aspects ne sont pas destinés à limiter son champ d’application. En effet, la présente solution peut englober une variété d’aspects qui peuvent ne pas être définis ci-dessous.Certain aspects comparable, in terms of scope, to the disclosed embodiments, are described below. It should be understood that these aspects are presented simply for the purpose of providing the reader with a brief summary of certain forms that the solution might take and that these aspects are not intended to limit its scope. Indeed, the present solution may encompass a variety of aspects which may not be defined below.

La figure 1 représente une illustration schématique de l’architecture d’un système de production vidéo distribué (DVP). Les réalisateurs et les monteurs travaillent dans un studio local 101, où Ils créent un modèle provisoire d’un programme de diffusion. Certains studios sont équipés de tous les dispositifs de diffusion de haute qualité requis qui sont nécessaires en vue de produire des programmes de diffusion, y compris des programmes complexes. E§E2°16/5252 revanche, le studio local 101 dans la figure 1 est connecté, par le biais d’un réseau de diffusion haut débit 102, à deux serveurs de production vidéo uniquement, à savoir un serveur vidéo 103 et un serveur de production 104. Les étiquettes « serveur vidéo » et « serveur de production » renvoient aux tâches dans l’agencement illustré dans la figure L Dans ce qui suit, le terme « serveur de production vidéo » est utilisé en tant que terme générique pour des serveurs exécutant différentes tâches dans un système de production vidéo. Le serveur vidéo 103 stocke une base de données de séquences vidéo, sous la forme de flux vidéo qui sont à disposition du réalisateur. Le serveur de production 104 active différentes fonctionnalités, telles que le découpage, l’effacement, l’atténuation, l’incrustation, etc., permettant de composer le flux de sortie de programme selon le concept créatif du réalisateur. Le studio local 101 est également équipé de caméras et de microphones (non illustrés dans la figure 1) qui produisent des données vidéo et audio, par exemple en provenance d’un modérateur effectuant une interview avec un invité du studio. Dans le cas d’un programme préalablement produit, ces flux sont envoyés du studio local 101 au serveur vidéo 103, Cela est symbolisé, dans la figure 1, par les flèches 105 et 106. Dans le cas d’un programme en direct, le flux vidéo produit dans 1e studio local 1 ö 1 est envoyé directement au serveur de production 104 (flèches 105, 107), en vue de l’inclure dans un flux de programme édité 108 délivré en sortie par le serveur de production 104. Le flux de programme 108 est transféré par Γintermédiaire du réseau 102 vers le studio local 101 afin d’être surveillé par le réalisateur et d’être diffusé. Le flux de programme édité 108 inclut généralement également des flux vidéo stockés sur le serveur vidéo 103, lequel envoie ces flux (flèche 109) par l’intermédiaire du réseau 102 au serveur de production 104. Le réalisateur régule le fonctionnement du serveur vidéo 103 et du serveur de production 104 en envoyant des signaux d’instruction 110 à partir du studio local 101.Figure 1 shows a schematic illustration of the architecture of a distributed video production system (DVP). The directors and editors work in a local 101 studio, where they create a provisional model of a broadcast program. Some studios are equipped with all of the required high quality broadcast devices that are necessary in order to produce broadcast programs, including complex programs. E§ E2 ° 16/5252 on the other hand, the local studio 101 in FIG. 1 is connected, via a broadband broadcasting network 102, to two video production servers only, namely a video server 103 and a server 104. The labels “video server” and “production server” refer to the tasks in the arrangement illustrated in FIG. L In the following, the term “video production server” is used as a generic term for servers performing various tasks in a video production system. The video server 103 stores a database of video sequences, in the form of video streams which are available to the director. The production server 104 activates various functionalities, such as cutting, erasing, attenuation, overlay, etc., making it possible to compose the program output stream according to the creative concept of the director. Local studio 101 is also equipped with cameras and microphones (not shown in Figure 1) that produce video and audio data, for example from a moderator interviewing a guest from the studio. In the case of a previously produced program, these streams are sent from the local studio 101 to the video server 103. This is symbolized, in FIG. 1, by the arrows 105 and 106. In the case of a live program, the video stream produced in the local studio 1 ö 1 is sent directly to the production server 104 (arrows 105, 107), with a view to including it in an edited program stream 108 output by the production server 104. The stream 108 is transferred via the network 102 to the local studio 101 in order to be monitored by the director and to be broadcast. The edited program stream 108 generally also includes video streams stored on the video server 103, which sends these streams (arrow 109) via the network 102 to the production server 104. The director regulates the operation of the video server 103 and the production server 104 by sending instruction signals 110 from the local studio 101.

Dans le système exemplaire illustré dans la figure 1, seuls deux serveurs 103, 104 sont présents. Mais d’autres systèmes peuvent comporter un seul ou plus de deux serveurs, selon le type de fonctionnalités requises par le réalisateur en vue de réaliser le programme. Dans le système de production DVP selon la présente divulgation, des serveurs de production vidéo peuvent être intégrés selon les besoins. Cela confère au système de production DVP davantage de flexibilité relativement à celle des studios de diffusion classiques qui doivent être dimensionnés pour une production plus étendue et plus compliquée. Certes, de nombreux d’équipements dans un tel studio de diffusion classique sont en veille lorsque seuls des programmes simples sont prodiuts.In the exemplary system illustrated in FIG. 1, only two servers 103, 104 are present. However, other systems may have one or more than two servers, depending on the type of functionality required by the developer in order to execute the program. In the DVP production system according to this disclosure, video production servers can be integrated as required. This gives the DVP production system more flexibility than that of conventional broadcast studios, which need to be sized for larger and more complicated production. Certainly, many of the equipment in such a conventional broadcast studio is on standby when only simple programs are produced.

La présente divulgation fait principalement référence à un studio de diffusion? Toutefois, la présente divulgation est également applicable à des studios TV, des véhicules de production TV ou à tout autre environnement de production TV en direct.This disclosure primarily refers to a broadcast studio? However, this disclosure is also applicable to TV studios, TV production vehicles or any other live TV production environment.

La figure 2 illustre l’architecture du serveur de production vidéo selon la présente divulgation. Le serveur dans son ensemble est référencé par le numéro de référence 201. Tel qu’illustré dans la figure 2,l’architecture est organisée en couches. La couche la plus basse, dans la figure 2, est une couche matérielle 202. Par souci d’illustration, quelques composants matériels sont illustrés, par exemple une unité centrale de traitement (CPU), un enregistreur de disque numérique (DDR), une carte d’interface réseau (NIC), une unité de traitement graphique (GPU) et des cartes d’entrée/soriie (I/O), Tel qu’indiqué par les suites de points sur la couche matérielle 202, il peut y avoir d’autres composants matériels, en plus ou moins grande quantité, dans les autres modes de réalisation. Tous les composants matériels partagent la même horloge.Figure 2 illustrates the architecture of the video production server according to this disclosure. The server as a whole is referenced by the reference number 201. As illustrated in FIG. 2, the architecture is organized in layers. The lowest layer, in Figure 2, is a hardware layer 202. For illustrative purposes, some hardware components are illustrated, for example a central processing unit (CPU), a digital disk recorder (DDR), a network interface card (NIC), graphics processing unit (GPU) and input / output cards (I / O), As indicated by the dot streaks on hardware layer 202, there may be other hardware components, in greater or lesser quantity, in the other embodiments. All hardware components share the same clock.

Un bus 203, par exemple un bus d’interface PCI ou QPÏ, connecte les composants matériels entre eux. Un système d’exploitation 204 commande le fonctionnement du matériel. Le système d’exploitation peut être un système basé sur Linux. Le serveur de production vidéo 201 décrit jusqu’ici héberge, sur une couche de service 205, des modules logiciels comprenant un code de programme qui est exécutable par Γ unité CPU du serveur 201. Chaque module logiciel est conçu de manière à fournir un dit service élémentaire particulier. Les services élémentaires sont construits à partir de fils d’exécution. Les fils d’exécution correspondent aux plus petites unités qui sont admissibles à une mise en correspondance sur le matériel. Par exemple, le service élémentaire dans le cadre de l’ingestion d’un flux de format « ST2022-5/6/7 » inclut trois fils d’exécution, à savoir : i) un fil pour recevoir les paquets de protocole UDP « ST2022-5/6/7 », ii) un fil pour décoder le flux de paquets « ST2022-5/6/7 » en des images, et iii) un fil pour copier les images dans une mémoire de travail. Le flux de données codé selon le format « ST2022-5/6/7 » ne constitue qu’un exemple. Le concept décrit s’applique également à d’autres normes, par exemple aux nonnes « AES67 » et « RFC41.75 ».A bus 203, for example a PCI or QPI interface bus, connects the hardware components together. An operating system 204 controls the operation of the hardware. The operating system can be a Linux-based system. The video production server 201 described so far hosts, on a service layer 205, software modules comprising a program code which is executable by Γ CPU unit of the server 201. Each software module is designed so as to provide a said service particular elementary. Basic services are built from threads. Threads are the smallest units that are eligible for hardware mapping. For example, the elementary service in the context of the ingestion of a stream of format “ST2022-5 / 6/7” includes three execution threads, namely: i) a thread for receiving the UDP protocol packets “ ST2022-5 / 6/7 ", ii) a wire to decode the flow of packets" ST2022-5 / 6/7 "into images, and iii) a wire to copy the images into a working memory. The data stream coded in the format "ST2022-5 / 6/7" is just one example. The concept described also applies to other standards, for example to the standards "AES67" and "RFC41.75".

Une image unique est également appelée « grain », où « grain » est un terme général désignant le plus petit élément traité dans le serveur de production vidéo 201. Un grain peut également représenter une trame vidéo ou une trame audio.A single image is also called a "grain", where "grain" is a general term for the smallest item processed in the video production server 201. A grain can also represent a video frame or an audio frame.

Dans la description des modes de réalisation, il est la plupart du temps fait référence au traitement signaux vidéo. Toutefois, il doit être entendu que, dans le cadre de la présente demande de brevet, le traitement du signal vidéo implique également un traitement2016/5252 correspondant d’un signal audio d’accompagnement et de métadonnées associées, le cas échéant. Afin de rendre plus intelligible la description de la présente solution, les signaux audio et les métadonnées ne sont pas toujours mentionnés conjointement avec les signaux vidéo.In the description of the embodiments, reference is most often made to video signal processing. However, it should be understood that, within the framework of the present patent application, the processing of the video signal also involves processing 2016/5252 corresponding to an accompanying audio signal and associated metadata, if applicable. In order to make the description of the present solution more intelligible, the audio signals and the metadata are not always mentioned in conjunction with the video signals.

La figure 2 illustre quatre types distincts de sendees élémentaires sur la couche de service 205, à savoir un service d’ingestion, un service de stockage, un sendee de codeur' et un service de décodeur. Par ailleurs, la figure 2 indique graphiquement que le serveur de production vidéo 201 peut également héberger des services supplémentaires. Sur une couche d’application 206, plusieurs services élémentaires sont combinés en vue d’obtenir une fonctionnalité nécessaire en vue d’une production de diffusion.FIG. 2 illustrates four distinct types of elementary sendees on service layer 205, namely an ingestion service, a storage service, an encoder sendee and a decoder service. Furthermore, FIG. 2 graphically indicates that the video production server 201 can also host additional services. On an application layer 206, several elementary services are combined in order to obtain the functionality necessary for broadcasting production.

Une application exemplaire du serveur de production vidéo 201 doit être illustrée en référence à nouveau à la figure 1. Dans le studio local 101, une interview, autrement dit un entretien, est enregistrée. Un serveur de production vidéo (non illustré dans la figure 1) ingère les flux audio et vidéo non compressés en provenance des caméras et des microphones dans le studio, il les code, et il lit les données par l’intermédiaire du réseau 102 sur le serveur vidéo 103, où les données d’interview peuvent être rappelées en vue d’une diffusion d’actualités plus tard dans la journée. Par conséquent, le serveur de production vidéo dans le studio local utilise l’ingestion, le codage et la lecture de services élémentaires.An exemplary application of the video production server 201 should be illustrated with reference again to FIG. 1. In the local studio 101, an interview, in other words an interview, is recorded. A video production server (not shown in Figure 1) ingests uncompressed audio and video streams from cameras and microphones in the studio, encodes them, and reads data through network 102 over the video server 103, where interview data can be recalled for news delivery later today. As a result, the video production server in the local studio uses ingestion, encoding, and playback of basic services.

L’architecture du serveur de production vidéo 201 fait une abstraction complète du matériel sous-jacent. Dans différents modes de réalisation du serveur de production vidéo, le matériel peut correspondre à une machine unique ou à plusieurs machines, ainsi qu’à un environnement distribué et en réseau. De même, Γ architecture logicielle du serveur de production vidéo 201 présente une composition modulaire. Les services élémentaires du serveur de production vidéo 201 peuvent être recombinés en vue de créer de nouvelles instances et de nouvelles entités fonctionnelles. Par exemple, les instances peuvent être des résultats intermédiaires dans le cadre d’une production complexe, par exemple un flux édité qui doit être inséré dans un autre flux pour le programme de diffusion final. Dans un autre mode de réalisation, un premier service élémentaire ingère des signaux bruts non compressés en provenance de dispositifs d’acquisition, par exemple des caméras et des microphones, lesquels sont destinés à être codés en un signal à débit binaire faible par le sendee élémentaire successif.The architecture of the video production server 201 makes a complete abstraction of the underlying hardware. In different embodiments of the video production server, the hardware can correspond to a single machine or to several machines, as well as to a distributed and networked environment. Likewise, the software architecture of the video production server 201 has a modular composition. The basic services of the video production server 201 can be combined in order to create new instances and new functional entities. For example, instances can be intermediate results in complex production, such as an edited feed that needs to be inserted into another feed for the final broadcast program. In another embodiment, a first elementary service ingests raw uncompressed signals from acquisition devices, for example cameras and microphones, which are intended to be coded into a low bit rate signal by the elementary sendee. successive.

Ce signal est stocké dans un magasin de stockage de données par le sendee élémentaire successif à des fins d’utilisation ultérieure. Les sendees élémentaires suivants lisent les données et décodent le signal en le signal brut d’origine avant qu’il ne soit finalement transcodé par le dernier service élémentaire.This signal is stored in a data store by the successive elementary sendee for later use. The following elementary sendees read the data and decode the signal to the original raw signal before it is finally transcoded by the last elementary service.

Bien que l’architecture du serveur de production vidéo 201 ne soit pas limitée à un type spécifique de matériel, il va sans dire que, quel que soit le type de matériel choisi, celui-ci doit disposer de performances suffisantes pour exécuter le traitement nécessaire à la réalisation des services élémentaires et fonctionnalités.Although the architecture of the video production server 201 is not limited to a specific type of hardware, it goes without saying that, whatever the type of hardware chosen, it must have sufficient performance to perform the necessary processing. the realization of basic services and functionalities.

D’après la description de la figure 2, il devient évident que le serveur de production vidéo permet de distinguer cinq fonctions de base dans la production de diffusion, à savoir, les fonctions d’acquisition, de stockage, de calcul, de lecture et de commande. L’acquisition de signaux vidéo et/ou audio est mise en œuvre par des dispositifs d’acquisition en dehors et séparément du serveur de production vidéo. La fonction de base, à savoir la fonction de « commande », fait référence à l’opération du serveur de production vidéo au moyen du panneau de commande ou de l’application de commande. Seul le calcul est exécuté à l’intérieur du serveur de production vidéo, ou à l’intérieur d’une grappe de plusieurs serveurs de production vidéo partageant les tâches de calcul. Au niveau matériel, ces fonctions de base sont séparées, tandis que les composants matériels communiquent par le biais de connexions de réseau, par exemple d’un réseau IP.From the description of FIG. 2, it becomes obvious that the video production server makes it possible to distinguish five basic functions in broadcasting production, namely, the functions of acquisition, storage, calculation, playback and control. The acquisition of video and / or audio signals is implemented by acquisition devices outside and separately from the video production server. The basic function, the "control" function, refers to the operation of the video production server using the control panel or the control application. Only the calculation is performed inside the video production server, or inside a cluster of several video production servers sharing the calculation tasks. At the hardware level, these basic functions are separated, while the hardware components communicate via network connections, for example an IP network.

Un second serveur 207 est indiqué dans la figure 2. La communication entre le serveur 201 et le serveur 207 est établie au niveau des couches de services 205 correspondantes des serveurs 201 et 207, respectivement, par une connexion de réseau 208. La connexion de réseau 208 peut être une connexion de réseau local ainsi qu’une connexion de réseau étendu, eu fonction de l’architecture du système de production DVP dans son ensemble.A second server 207 is shown in Figure 2. Communication between server 201 and server 207 is established at the corresponding service layers 205 of servers 201 and 207, respectively, through a network connection 208. The network connection 208 can be a local area network connection as well as a wide area network connection, depending on the architecture of the entire DVP production system.

Il convient de remarquer que l’entrée et la sortie du serveur de production vidéo 201 sont synchronisées avec les autres composants matériels au sein d’un système de production DVP spécifique. Les modules matériels du serveur de production vidéo sont synchronisés avec d’autres dispositifs dans le système de production vidéo numérique, par exemple, au moyen du protocole PTP, en vue de garantir la synchronisation des modules matériels sur le réseau IP. Toutefois, l’exécution des services élémentaires au sein du serveur de production vidéo 201 est mise en œuvre de manière asynchrone.It should be noted that the input and output of the video production server 201 is synchronized with the other hardware components within a specific DVP production system. The video production server hardware modules are synchronized with other devices in the digital video production system, for example, using the PTP protocol, to ensure synchronization of the hardware modules over the IP network. However, the execution of the basic services within the video production server 201 is implemented asynchronously.

Le serveur de production vidéo correspond à un ensemble de composants logiciels s’exécutant sur du matériel de produits commerciaux (COTS). Chacune de ses fonctionnalités est réalisée en utilisant un logiciel unitaire spécifique qui est assemblé à partir de blocs logiciels fonctionnels réutilisables et qui peut fonctionner sur une quelconque plateforme matérielle compatible. De nouvelles fonctionnalités peuvent être fournies rapidement en composant delE2°16/5252 blocs logiciels fonctionnels existants.The video production server corresponds to a set of software components running on hardware of commercial products (COTS). Each of its functionalities is carried out using specific unitary software which is assembled from reusable functional software blocks and which can operate on any compatible hardware platform. New functionalities can be provided quickly by dialing del E2 ° 16/5252 existing functional software blocks.

Le fait de s’appuyer exclusivement sur un ou des logiciels apporte une flexibilité sans précédent :Relying exclusively on one or more software provides unprecedented flexibility:

Les composants matériels font l’objet d’une abstractioit totale et deviennent un produit de base pouvant être réutilisé et reconfiguré selon les besoins fonctionnels ponctuels.The hardware components are the subject of a total abstractioit and become a basic product that can be reused and reconfigured according to specific functional needs.

La plateforme matérielle devient dynamiquement évolutive étant donné que le ou les logiciels peuvent être déployés sur une quelconque machine spécifique, ce qui permet d’éviter tout provisionnement excessif en matériel.The hardware platform becomes dynamically scalable since the software can be deployed on any specific machine, which avoids excessive provisioning of hardware.

Le dimensionnement peut être serré, étant donné que toute la puissance de traitement disponible peut être utilisée à tout moment.Sizing can be tight, since all available processing power can be used at any time.

La plateforme matérielle peut être virtualisée et être mise en œuvre dans un nuage.The hardware platform can be virtualized and implemented in a cloud.

La totalité de la communication inter-équipements des commandes et signaux est réalisée à travers des liaisons IP, ce qui offre, d’une part, de la flexibilité et de l’évolutivité à l’acheminement de tout type de signaux, y compris les signaux de bande de base et les signaux compressés. D’autre part, la communication inter-équipements devient asynchrone. Une communication synchrone est maintenue uniquement au niveau des frontières du système, en vue de garantir l’interopérabilité avec les équipements conventionnels. La communication asynchrone conduit à un dimensionnement plus souple, étant donné qu’elle permet un dimensionnement statistique des interfaces d’entrée/sortie et de la puissance de calcul, au lieu d’un dimensionnement reposant sur un scénario du cas le plus défavorable.All inter-equipment communication of commands and signals is carried out via IP links, which offers flexibility and scalability on the one hand for the routing of all types of signals, including baseband signals and compressed signals. On the other hand, inter-equipment communication becomes asynchronous. Synchronous communication is maintained only at the system boundaries, to ensure interoperability with conventional equipment. Asynchronous communication leads to a more flexible dimensioning, since it allows a statistical dimensioning of the input / output interfaces and the computing power, instead of a dimensioning based on a worst case scenario.

La figure 3 illustre visuellement, dans un graphique simple, l’architecture du logiciel hiérarchique. Les petits cercles 301 représentent des sources ou des flux d’entrée, par exemple des signaux bruts provenant de dispositifs d’acquisition nécessitant des ressources pour l’ingestion, la compression, etc., sous la forme des services élémentaires susmentionnés, lesquels sont illustrés dans la figure 3 par des ellipses 302a et 302b. Ce concept peut être cascadé de sorte que la sortie du sendee élémentaire 302a devient l’entrée du sendee élémentaire 302b. La séquence de services élémentaires se traduit par une fonctionnalité ou un service fonctionnel 303. Le service fonctionnel 303 peut être conçu de manière souple en modifiant le type et/ou le nombre des services élémentaires sous-jacents afin qu’ils s’adaptent aux besoins du réalisateur.Figure 3 visually illustrates, in a simple graph, the architecture of the hierarchical software. The small circles 301 represent input sources or flows, for example raw signals from acquisition devices requiring resources for ingestion, compression, etc., in the form of the aforementioned elementary services, which are illustrated in FIG. 3 by ellipses 302a and 302b. This concept can be cascaded so that the output of elementary sendee 302a becomes the input of elementary sendee 302b. The sequence of elementary services is expressed by a functionality or a functional service 303. The functional service 303 can be designed in a flexible manner by modifying the type and / or the number of the underlying elementary services so that they adapt to the needs. from the director.

BE2016/5252BE2016 / 5252

La figure 4 symbolise, par différents éléments graphiques, l’abstraction de l’architecture logicielle du matériel sous-jacent. Tel que mentionné précédemment, les modules logiciels mettant en œuvre des sendees élémentaires peuvent fonctionner sur un matériel quelconque pourvu que ses performances soient suffisantes pour exécuter les modules logiciels avec la qualité de service requise, à savoir fournir suffisamment de puissance de traitement, de stockage et de connectivité. Les services élémentaires 302 sont constitués de filsFigure 4 symbolizes, by different graphic elements, the abstraction of the software architecture of the underlying hardware. As mentioned previously, the software modules implementing elementary sendees can operate on any hardware provided that its performance is sufficient to execute the software modules with the required quality of service, namely to provide sufficient processing, storage and connectivity. Basic services 302 are made up of wires

401 présentant un motif, dans la figure 4, qui correspond au motif des services élémentaires associés 302 et des nœuds matériels associés 402. Les parties vierges des symboles de nœuds matériels indiquent que la capacité du nœud matériel correspondant n’est pas entièrement utilisée. La partie inférieure de la figure 4 illustre comment des nœuds matériels spécifiques401 having a pattern, in Figure 4, which corresponds to the pattern of associated elementary services 302 and associated hardware nodes 402. The blank portions of the hardware node symbols indicate that the capacity of the corresponding hardware node is not fully used. The lower part of Figure 4 illustrates how specific hardware nodes

402 représentant des processeurs, des mémoires et des interfaces d’entrée/sortie forment une plateforme matérielle. Les services élémentaires 302 sont mis en correspondance sur les nœuds matériels 402. La même instance logicielle peut être mise en correspondance sur plusieurs topologies matérielles. Cette mise en correspondance est mise en œuvre, par exemple, par un algorithme affectant les ressources de calcul informatique, de stockage et de connectivité nécessaires aux ressources matérielles, lesquelles sont disponibles sur une plateforme matérielle spécifique. L’algorithme de mise en correspondance permet la mise en correspondance de services élémentaires sur différentes topologies matérielles. Par conséquent, l’architecture logicielle est totalement détachée de la topologie matérielle. En conséquence, la plateforme matérielle peut être un unique serveur de production vidéo ou une grappe de multiples serveurs de production vidéo.402 representing processors, memories and input / output interfaces form a hardware platform. The basic services 302 are mapped on the hardware nodes 402. The same software instance can be mapped on several hardware topologies. This mapping is implemented, for example, by an algorithm allocating the computing resources, storage and connectivity resources necessary for the hardware resources, which are available on a specific hardware platform. The matching algorithm allows the mapping of elementary services on different hardware topologies. As a result, the software architecture is completely detached from the hardware topology. As a result, the hardware platform can be a single video production server or a cluster of multiple video production servers.

En termes généraux, une fonctionnalité spécifique ou un sendee fonctionnel offert(e) par le serveur de production vidéo suggéré est conçu(e) comme un pipeline. À l’entrée du pipeline, le serveur de production vidéo ingère un flux généré par un dispositif d’acquisition. À la fin du pipeline, un flux est lu. Entre les deux, des services élémentaires sont appliqués au flux en vue de fournir la fonctionnalité souhaitée.In general terms, a specific functionality or a functional sendee offered by the suggested video production server is conceived as a pipeline. At the entrance to the pipeline, the video production server ingests a stream generated by an acquisition device. At the end of the pipeline, a stream is read. In between, basic services are applied to the flow to provide the desired functionality.

La figure 5A illustre un exemple d’un tel pipeline qui inclut les services élémentaires « ingestion » 501, « stockage » 502 et « lecture » 503. Entre les différents sendees élémentaires, des interfaces de programmation d’application (API) sont définies (figure 5B). Les interfaces API prescrivent un format de données unitaire pour la vidéo, l’audio et/ou les métadonnées à l’entrée et à la sortie des modules logiciels, ce qui permet une séquence de services élémentaires « définie par l’utilisateur ». Les interfaces API incluent en outre un format unitaire pour des données de commande, permettant de commander les services élémentaires etFIG. 5A illustrates an example of such a pipeline which includes the elementary services “ingestion” 501, “storage” 502 and “reading” 503. Between the various elementary sendees, application programming interfaces (APIs) are defined ( Figure 5B). The API interfaces prescribe a unitary data format for video, audio and / or metadata at the input and output of software modules, which allows a sequence of basic "user-defined" services. The API interfaces also include a unitary format for ordering data, making it possible to order the basic services and

BE2016/5252 le serveur de production vidéo dans leur ensemble. Ces interfaces API sont fondamentales étant donné qu’elles permettent, conjointement avec le mécanisme de pipeline, la flexibilité du serveur de production vidéo selon la présente divulgation.BE2016 / 5252 the video production server as a whole. These API interfaces are fundamental since they allow, in conjunction with the pipeline mechanism, the flexibility of the video production server according to this disclosure.

Dans un mode de réalisation du serveur de production vidéo suggéré, lequel est adapté pour des productions de diffusion en direct, le mécanisme de pipeline nécessite une certaine optimisation. Dans le cadre de productions de diffusion en direct, de très grandes quantités de données doivent être transférées et traitées. Un flux vidéo HD est constitué de 24 à 60 images par seconde, et chaque image HD comporte jusqu'à 1 920 x 1 080 pixels. Cela conduit à un débit de données de 50 à 440 Mbit/s pour un flux vidéo compressé, en production, et de jusqu'à 3 Gbit/s si le flux vidéo est non compressé. Les signaux vidéo de type « ultra haute définition » (UHD), « plage dynamique élevée » (HDR) et « fréquence de trames élevée » (HFR) conduisent à des débits de données encore plus élevés. Par conséquent, il est nécessaire de gérer correctement la charge sur la plateforme matérielle et de ne pas introduire de surcharge dans le pipeline sous l’effet de copies inutiles d’images vidéo. Ceci est réalisé en mettant en œuvre un mécanisme de source/collecteur entre chaque sendee élémentaire. Le mécanisme de source/collecteur est instancié dans le cadre de la mise en correspondance de chaque service élémentaire sur une plateforme matérielle donnée. Dans le cas où la mise en correspondance est effectuée sur une machine unique, un mécanisme de mémoire partagée protégé est utilisé. Dans le cas où la mise en correspondance est effectuée sur une grappe de multiples serveurs de production vidéo, une communication à base de protocole Internet (IP) est utilisée. Pour une communication de confiance et à courte distance, le protocole TCP peut être utilisé, tandis que pour une communication à plus longue distance, un protocole UDP amélioré est préféré.In one embodiment of the suggested video production server, which is suitable for live broadcast productions, the pipeline mechanism requires some optimization. In the context of live broadcast productions, very large amounts of data must be transferred and processed. An HD video stream consists of 24 to 60 frames per second, and each HD image is up to 1,920 x 1,080 pixels. This leads to a data rate of 50 to 440 Mbit / s for a compressed video stream, in production, and up to 3 Gbit / s if the video stream is uncompressed. “Ultra High Definition” (UHD), “High Dynamic Range” (HDR) and “High Frame Rate” (HFR) video signals lead to even higher data rates. Therefore, it is necessary to properly manage the load on the hardware platform and not to overload the pipeline with unnecessary copies of video images. This is achieved by implementing a source / collector mechanism between each elementary sendee. The source / collector mechanism is instantiated as part of the mapping of each elementary service on a given hardware platform. In case the mapping is done on a single machine, a protected shared memory mechanism is used. In the case where the mapping is performed on a cluster of multiple video production servers, communication based on Internet protocol (IP) is used. For trusted and short distance communication, the TCP protocol can be used, while for longer distance communication, an improved UDP protocol is preferred.

La figure 5B illustre la relation et l’interaction entre les interfaces API et les services élémentaires. Chaque service élémentaire 504 présente, au niveau de son entrée, une interface API source 506, et au niveau de sa sortie, une interface API collectrice 507. Les interfaces API source et collectrice 506, 507 soustraient le sendee élémentaire 504 permettant une concaténation de sendees élémentaires 504 tel que cela est illustré dans la figure 5C. Dans la figure 5C, la flèche 508 symbolise le flux de données du sendee élémentaire 504 au service élémentaire 504’, par l’intermédiaire de l’interface API collectrice 507 et de l’interface API source 506'.Figure 5B illustrates the relationship and interaction between API interfaces and basic services. Each elementary service 504 has, at its input, a source API interface 506, and at its output, a collector API interface 507. The source and collector API interfaces 506, 507 subtract the elementary sendee 504 allowing a concatenation of sendees elementary 504 as illustrated in FIG. 5C. In FIG. 5C, the arrow 508 symbolizes the data flow from the elementary sendee 504 to the elementary service 504 ’, via the collector API interface 507 and the source API interface 506 ′.

Les interfaces API permettent une intercession, à savoir, des sendees élémentaires supplémentaires sont exécutables entre les services élémentaires d’un pipeline existant. Cela est illustré dans la figure 5D. La figure 5D contient toujours le pipeline du premier exemple illustré dans la figure 5A. Cependant, il existe d’autres sendees élémentaires, comme le service de « codage » 509 et le service de « décodage » 510, placés entre les sendees élémentaires 501 à 503 existant à l’origine. Les sendees élémentaires supplémentaires 509 et 510 ne sont qu’exemplaires. Tout autre sendee élémentaire pourrait également être inséré, étant donné que les interfaces API permettent une quelconque combinaison de sendees élémentaires produisant la fonctionnalité spécifique requise par le réalisateur.API interfaces allow intercession, that is, additional elementary sendables are executable between elementary services of an existing pipeline. This is illustrated in Figure 5D. Figure 5D still contains the pipeline from the first example shown in Figure 5A. However, there are other elementary sendees, such as the "coding" service 509 and the "decoding" service 510, placed between the elementary sendees 501 to 503 originally existing. The additional elementary outputs 509 and 510 are only exemplary. Any other elementary send could also be inserted, since the API interfaces allow any combination of elementary sendees producing the specific functionality required by the producer.

La figure 6 présente un schéma visant à illustrer le mécanisme de reconfiguration de pipeline. Sur le côté gauche de la figure 6, la ligne chronologique 601 est illustrée sur laquelle le temps augmente de haut en bas dans la figure 6. À l’instant Tl, le pipeline d’origine existe dans lequel des signaux transitent du service élémentaire A au sendee élémentaire B. À l’instant Tl+delta, un nouveau service élémentaire C est annoncé, puis active à l’instant T2, tandis que, simultanément, le service élémentaire B est désactivé. Ä l’instant T2+delta, le nouveau pipeline avec un flux de signaux allant du sendee élémentaire A au service élémentaire C est établi. Le flux de signaux actif, de gauche à droite dans la figure 6, est illustré par des flèches en trait continu 602, tandis qu’un flux de signaux potentiel pour un service élémentaire annoncé, ou encore annoncé, est illustré par des flèches en pointillés 603. Sur le côté droit, la figure 6 illustre également un organigramme présentant les étapes qui vont de l’établissement du pipeline d’origine à l’établissement du nouveau pipeline.Figure 6 shows a diagram to illustrate the pipeline reconfiguration mechanism. On the left side of Figure 6, the timeline 601 is illustrated in which the time increases from top to bottom in Figure 6. At time T1, the original pipeline exists in which signals pass from elementary service A at elementary sendee B. At time Tl + delta, a new elementary service C is announced, then active at time T2, while, simultaneously, elementary service B is deactivated. At time T2 + delta, the new pipeline with a signal flow from elementary send A to elementary service C is established. The active signal flow, from left to right in FIG. 6, is illustrated by arrows in solid line 602, while a potential signal flow for an elementary service announced, or even announced, is illustrated by dotted arrows 603. On the right side, Figure 6 also illustrates a flowchart showing the steps from the establishment of the original pipeline to the establishment of the new pipeline.

En outre, les interfaces API permettent que le pipeline soit modifié grain par grain. Cette flexibilité conduit à des applications intéressantes, étant donné qu’il est possible de gérer des besoins très différents en tenues de production, avec un unique système, sans nécessiter une quelconque surcharge de reconfiguration. Un exemple typique est la lecture consécutive dans des applications d’actualités.In addition, API interfaces allow the pipeline to be changed grain by grain. This flexibility leads to interesting applications, since it is possible to manage very different needs in production outfits, with a single system, without requiring any reconfiguration overload. A typical example is consecutive reading in news apps.

Les applications d’actualités doivent combiner plusieurs sources vidéo différentes. Ces différentes sources vidéo présentent différentes propriétés, par exemple des flux de différentes sources présentent différents codages, et, par conséquent, exigent des décodeurs différents. Cela signifie que le pipeline contient différents décodeurs pour les différentes sources vidéo.News apps must combine several different video sources. These different video sources have different properties, for example streams from different sources have different codings, and therefore require different decoders. This means that the pipeline contains different decoders for the different video sources.

Le serveur de production vidéo suggéré, fort de son approche « par pipeline » de services élémentaires séquencés, avec des interfaces API définies entre eux, permet Γutilisation d’un décodeur différent pour chaque grain. Les interfaces API et le pipeline restent inchangés, tandis que seul le traitement interne des services élémentaires est modifié.The suggested video production server, based on its "pipeline" approach to sequenced elementary services, with API interfaces defined between them, allows the use of a different decoder for each grain. The API interfaces and the pipeline remain unchanged, while only the internal processing of basic services is modified.

Le pipeline et les interfaces API permettent la modification du traitement interne d’unThe pipeline and API interfaces allow the modification of the internal processing of a

E2016/5252 service élémentaire sans aucun impact sur le pipeline. Cela offre la possibilité, par exemple, de modifier le format de la vidéo (résolution, matrice de couleur,ou le protocole de la vidéo (ST2022-5/6/7, RFC4175, .,.) sans modifier le reste du pipeline. Cela permet des évolutions rapides de composants du serveur de production vidéo, ainsi qu’une polyvalence extrême et une reconfiguration « à l’échelle du grain » du pipeline.E2016 / 5252 basic service with no impact on the pipeline. This offers the possibility, for example, of modifying the video format (resolution, color matrix, or the video protocol (ST2022-5 / 6/7, RFC4175,.,.) Without modifying the rest of the pipeline. This allows rapid upgrades of components of the video production server, as well as extreme versatility and reconfiguration "on a grain scale" of the pipeline.

Techniquement, cela revient au remplacement ou à la modification de fils qui composent le sendee élémentaire. Mais, indépendamment de ces modifications, les relations entre les services élémentaires restent inchangées, de sorte que le pipeline lui-même n’est pas altéré.Technically, this amounts to replacing or modifying the wires that make up the elementary sendee. However, regardless of these changes, the relationships between the elementary services remain unchanged, so that the pipeline itself is not altered.

À titre illustratif est envisagée une simple instance de serveur de production vidéo qui stocke des flux vidéo et/ou audio dans un magasin de stockage. Un premier service d’ingestion ingère des flux de type « 10801 » selon le protocole ST2022-5/6/7. Cela nécessite une configuration simple avec un service élémentaire d’ingestion et un service de stockage. Si, au lieu de cela, un flux audio doit être stocké, alors seul le traitement interne du service élémentaire d’ingestion doit être modifié pour ingérer, par exemple, un flux audio « AES67 ». De même, le sendee d’ingestion est adaptable à d’autres formats vidéo et audio. Enfin, il doit être remarqué que le module d’ingestion est en mesure d’ingérer simultanément plusieurs sources de contenus distincts, par exemple du contenu audio, du contenu vidéo et des métadonnées, et différents formats, notamment différents codages. Les sources peuvent être reçues à partir de différentes interfaces techniques, par exemple : multidiffusion IP, SDI, ASI, monodiffusion TCP IP, etc. Les dispositifs d’acquisition à partir desquels les sources sont reçues n’ont pas besoin d’être dans le même domaine temporel.By way of illustration, a simple instance of video production server is envisaged which stores video and / or audio streams in a storage store. A first ingestion service ingests "10801" type flows according to the ST2022-5 / 6/7 protocol. This requires simple configuration with a basic ingestion service and a storage service. If, instead, an audio stream must be stored, then only the internal processing of the basic ingestion service must be modified to ingest, for example, an "AES67" audio stream. Likewise, the ingestion feed is adaptable to other video and audio formats. Finally, it should be noted that the ingestion module is able to simultaneously ingest several sources of distinct content, for example audio content, video content and metadata, and different formats, notably different encodings. Sources can be received from different technical interfaces, for example: IP multicast, SDI, ASI, TCP IP unicast, etc. The acquisition devices from which sources are received need not be in the same time domain.

Le serveur de production vidéo est basé sur un mécanisme de synchronisation unique. Plutôt que de s’appuyer sur une synchronisation par le pipeline d’exécution lui-même, tel que c’est le cas dans les mises en œuvre orientées matériel, le présent serveur de production vidéo est intrinsèquement asynchrone en interne. La synchronicité entre différents dispositifs dans un studio de diffusion, laquelle est essentielle dans les applications de diffusion, est obtenue en affectant des estampilles temporelles aux grains. Le module d’ingestion du serveur de production vidéo affecte une estampille temporelle à chaque paquet ou « grain ». Les estampilles temporelles sont basées sur des informations au sein du flux de données. Par ailleurs, les estampilles temporelles sont basées sur une horloge unique qui est rendue unique à travers plusieurs serveurs de production vidéo au moyen du protocole de temporisation PTP. Les paquets ou grains individuels sont identifiés par la durée temporelle et l’estampilleThe video production server is based on a unique synchronization mechanism. Rather than relying on synchronization by the execution pipeline itself, as is the case in hardware-oriented implementations, the present video production server is inherently asynchronous internally. Synchronicity between different devices in a broadcast studio, which is essential in broadcast applications, is achieved by assigning timestamps to the grains. The ingestion module of the video production server assigns a time stamp to each packet or "grain". Time stamps are based on information within the data stream. In addition, time stamps are based on a single clock that is made unique across multiple video production servers using the PTP timing protocol. The individual packages or grains are identified by time and stamp

Π Λ, ... ΒΕ2016/5252 d acquisition.Π Λ , ... ΒΕ2016 / 5252 of acquisition.

temporelle. Le module d’ingestion lui-même est synchronisé avec les di De cette manière, le serveur de production vidéo permet un traitement en temps réel cadre d’une production en direct.temporal. The ingestion module itself is synchronized with the di In this way, the video production server allows real-time processing as part of a live production.

Chaque « grain » est traité, par exemple par un codage, un stockage, etc., au sein du serveur de production vidéo, de façon indépendante, tout en conservant l’ordre de traitement. Cela implique que la relation temporelle entre différents grains n’est pas garantie au sein du serveur de production vidéo.Each "grain" is processed, for example by coding, storage, etc., within the video production server, independently, while maintaining the processing order. This implies that the temporal relationship between different grains is not guaranteed within the video production server.

Lorsque le serveur de production vidéo délivre en sortie les grains à nouveau, la séquence correcte des grains doit être rétablie. Il convient de remarquer que la fréquence d’horloge du système de sortie peut être différente de la fréquence d’horloge du module d’ingestion, par exemple, des trames d’image d’entrée sont reçues en provenance d’une caméra à une fréquence de 240 trames par seconde, tandis que les trames d’image de sortie sont délivrées en sortie à une fréquence de 50 Hz ou 60 Hz.When the video production server outputs the grains again, the correct sequence of the grains must be restored. Note that the clock frequency of the output system may be different from the clock frequency of the ingestion module, for example, input image frames are received from a camera at one point. frequency of 240 frames per second, while the output image frames are output at a frequency of 50 Hz or 60 Hz.

La figure 7 illustre le principe de fonctionnement du serveur de production vidéo. Dans la figure 7, deux flux sériels entrants 701, 702 sont ingérés par un serveur de production vidéo 703. Le module d’ingestion du serveur de production vidéo est synchronisé avec les dispositifs d’acquisition. Le traitement des trames de données au sein du serveur de production vidéo 703 est mis en œuvre d’une manière asynchrone. Le module de sortie du serveur de production vidéo est synchronisé à nouveau avec des dispositifs de traitement en aval et délivre en sortie deux flux 704, 705. La synchronicité des trames de sortie des flux 704, 705 est garantie par l’horloge d’un module de sortie demandant les grains correspondants : pour chaque tic d’horloge du module de sortie, le système recherche le grain qui correspond à ce tic, c'est-à-dire le grain dont le tic se situe dans la période [estampille temporelle, estampille temporelle plus durée]. Les tics d’horloge du module de sortie sont affichés sous la forme de cercles 706. Les tics d’horloge 706 se produisent simultanément pour les deux flux de sortie 704 et 705.Figure 7 illustrates the operating principle of the video production server. In FIG. 7, two incoming serial flows 701, 702 are ingested by a video production server 703. The ingestion module of the video production server is synchronized with the acquisition devices. The processing of data frames within the video production server 703 is implemented asynchronously. The output module of the video production server is again synchronized with downstream processing devices and outputs two streams 704, 705. The synchronicity of the output frames of streams 704, 705 is guaranteed by the clock of a output module requesting the corresponding grains: for each clock tick of the output module, the system searches for the grain which corresponds to this tick, that is to say the grain whose tick is located in the period [time stamp , time stamp plus duration]. The clock ticks of the output module are displayed as circles 706. The clock ticks 706 occur simultaneously for the two output streams 704 and 705.

Pour cette raison, il est important que les différents modules matériels partagent la même horloge, tandis que les couches logicielles de l’architecture de serveur de production vidéo sont extraites du matériel sous-jacent. Le protocole PTP est utilisé en vue de garantir la synchronisation des modules matériels sur des réseaux IP. Compte tenu des taux ou fréquences de trames actuellement utilisés (une trame toutes les 8 à 50 ms), le protocole PTP est leFor this reason, it is important that different hardware modules share the same clock, while the software layers of the video production server architecture are extracted from the underlying hardware. The PTP protocol is used to guarantee the synchronization of the hardware modules on IP networks. Given the frame rates or frequencies currently in use (one frame every 8 to 50 ms), the PTP protocol is the

La combinaison de la synchronisation des flux « à base d’estampilles temporelles » et les capacités d’intercession du pipeline de serveur de production vidéo au moyen d’interfaces API unitaires permettent une approche innovante de résistance aux pannes au niveau du système.The combination of "timestamp-based" stream synchronization and the interconnection capabilities of the video production server pipeline using unitary API interfaces enable an innovative approach to system-level fault resolution.

Une application dite « d’arbitre » constitue une application du serveur de production vidéo présenté. L’application d’arbitre pennet l’affichage de trames d’images capturées par différentes caméras sous des angles différents. Les trames affichées sont prises au même instant par les différentes caméras, et un arbitre est placé dans une position en vue d’évaluer correctement une situation complexe dans un jeu de balle comme le basketball. Il peut également y avoir d’autres applications où la navigation dans plusieurs flux vidéo stockés est souhaitable.A so-called "referee" application constitutes an application of the video production server presented. The referee app allows the display of frames of images captured by different cameras from different angles. The displayed frames are taken at the same time by the different cameras, and an arbiter is placed in a position to correctly assess a complex situation in a ball game like basketball. There may also be other applications where browsing in multiple stored video streams is desirable.

La figure 8A illustre le fonctionnement normal du serveur de production vidéo. Les services élémentaires 801-803 et les fils 805 sont mis en correspondance sur une plateforme matérielle 806 donnée. La figure 8B illustre une situation différente dans laquelle un service élémentaire de codage 804 supplémentaire est introduit dans le pipeline s’exécutant simultanément pour fournir une fonction de reprise à chaud en cas de défaillance d’un matériel quelconque prenant en charge l’un des deux services élémentaires de codage 802, 804. Cette situation est illustrée dans la figure 8C, où ie service élémentaire de codage 802 est tombé en panne sans affecter le flux de traitement ni le pipeline dans son ensemble, étant donné que, dans cette situation, tous les paquets sont acheminés par le biais du sendee élémentaire de codageFigure 8A illustrates the normal operation of the video production server. The basic services 801-803 and the wires 805 are matched on a given hardware platform 806. FIG. 8B illustrates a different situation in which an additional elementary coding service 804 is introduced into the pipeline running simultaneously to provide a warm recovery function in the event of the failure of any equipment supporting one of the two basic coding services 802, 804. This situation is illustrated in Figure 8C, where the basic coding service 802 has failed without affecting the processing flow or the pipeline as a whole, since in this situation all packets are routed through basic coding sendee

La nature « horodatée » des grains pennet au service élémentaire successif, à savoir le service de stockage 803, de faire facilement face à d’éventuelles différences de temps de latence entre les deux modules de codage 802, 804, et de ne stocker qu’une seule instance d’une trame traitée. En cas de défaillance d’un module matériel, le système continue d’être opérationnel. De toute évidence, grâce à la possibilité de reconfiguration « à l’échelle du grain » du pipeline, cette approche peut également être utilisée dans une configuration de reprise intermédiaire.The time-stamped nature of the grains allows successive elementary service, namely the storage service 803, to easily cope with any differences in latency between the two coding modules 802, 804, and to store only a single instance of a processed frame. In the event of a hardware module failure, the system continues to be operational. Obviously, thanks to the possibility of "grain-scale" reconfiguration of the pipeline, this approach can also be used in an intermediate recovery configuration.

Cette approche de reprise, ou continuité de services, nécessite nettement moins de ressources redondantes, étant donné qu’elle repose sur une connaissance du système et sur l’exploitation des propriétés du pipeline de serveur de production vidéo, plutôt que sur la duplication de l’installation complète en reproduisant la totalité du matériel sous-jacent,This recovery approach, or continuity of services, requires significantly less redundant resources, since it relies on system knowledge and the exploitation of the properties of the video production server pipeline, rather than duplication of the data. '' complete installation by reproducing all of the underlying material,

La capacité de modification dynamique du pipeline ne permet pas seulement un fonctionnement à sécurité intégrée, autrement dit à tolérance de pannes, mais permet également2016/5252 de reconfigurer dynamiquement le même matériel de serveur de production vidéo, en vue de passer d’un serveur d’ingestion à un serveur de lecture ou de stockage. Ces modifications peuvent être mises en œuvre d’un grain, ou limite de trame de données, au grain successif d’un flux de données reçu.The dynamic modification capacity of the pipeline not only allows fail-safe operation, in other words fault-tolerant operation, but also allows 2016/5252 to dynamically reconfigure the same video production server hardware, in order to switch from a server ingestion to a read or storage server. These modifications can be implemented from a grain, or data frame limit, to the successive grain of a received data stream.

La figure 9A illustre la tolérance aux pannes plus en détail. Le service élémentaire A 901 envoie un grain identique « Ti » 902 au sendee élémentaire Bl 903 et au service élémentaire B2 904 en même temps. Le grain Ti est traité à la fois par les services élémentaires Bl et B2, 903, 904, lesquels envoient leur sortie à l’interface API source 506 du sendee élémentaire C 906. L’interface API source 506 du service élémentaire C 906 supprime le second grain Ti si le grain identique TI a déjà été reçu. Autrement dif, si le grain Ti traité par le service élémentaire B2 904 parvient en qualité de second grain Ti à l’interface API source 506, il est abandonné. Cette configuration garantit un traitement sans interruption y compris en cas de défaillance de l’un des sendees élémentaires Bl, B2, 903, 904.Figure 9A illustrates fault tolerance in more detail. Elementary service A 901 sends an identical grain "Ti" 902 to elementary sendee Bl 903 and to elementary service B2 904 at the same time. The grain Ti is processed by both elementary services Bl and B2, 903, 904, which send their output to the source API interface 506 of the elementary sendee C 906. The source API interface 506 of the elementary service C 906 removes the second grain Ti if the identical grain TI has already been received. Otherwise dif, if the Ti grain processed by the elementary service B2 904 arrives as a second Ti grain at the source API interface 506, it is abandoned. This configuration guarantees processing without interruption, even in the event of failure of one of the elementary sendees Bl, B2, 903, 904.

La figure 9B illustre une section d’un mode de réalisation supplémentaire d’un pipeline à tolérance de pannes. Dans ce mode de réalisation, le service élémentaire A 901 envoie le même grain Ti 902 à trois services élémentaires Bl, B2 et B3 903,904 et 905 mettant en œuvre le même type de traitement sur le grain Ti. La sortie de chaque service élémentaire Bl, B2 et B3 903, 904 et 905 est transmise à l’interface API source 506 du service élémentaire C 906. Si l’ensemble du matériel fonctionne correctement, alors le grain Ti est reçu trois fois à niveau de l’interface API source 506 du service élémentaire C 906. Dès lors que deux grains Ti identiques sont reçus au niveau de l’interface API source 506, l’un des grains identiques Ti est acheminé vers le sendee élémentaire C 906 en vue d’être traité. Si l’interface API source 506 ne détecte pas au moins deux grains Ti identiques, un message d’erreur est généré. Ce mécanisme pennet la détection des défaillances au niveau du matériel.Figure 9B illustrates a section of an additional embodiment of a fault tolerant pipeline. In this embodiment, the elementary service A 901 sends the same grain Ti 902 to three elementary services B1, B2 and B3 903,904 and 905 implementing the same type of processing on the grain Ti. The output of each elementary service Bl, B2 and B3 903, 904 and 905 is transmitted to the source API interface 506 of the elementary service C 906. If the whole of the material functions correctly, then the grain Ti is received three times at level of the source API interface 506 of the elementary service C 906. As soon as two identical grains Ti are received at the level of the interface API source 506, one of the identical grains Ti is routed towards the elementary sendee C 906 for 'be treated. If the source API interface 506 does not detect at least two identical Ti grains, an error message is generated. This mechanism allows the detection of failures at the hardware level.

Enfin, il doit être remarqué que le serveur de production vidéo suggéré fournit un composant de stockage logiciel évolutif qui offre un accès basé sur IP à granularité fine instantané aux grains, dès qu’ils sont enregistrés.Finally, it should be noted that the suggested video production server provides a scalable software storage component that provides instant fine-grained IP-based access to grains as soon as they are recorded.

La figure 10 illustre visuellement le concept du procédé de fonctionnement du serveur de production vidéo. Une séquence de services élémentaires est définie initialement, 1001, laquelle doit être appliquée à des trames de signaux vidéo et/ou audio. Ensuite, le traitement de signaux vidéo et/ou audio selon la séquence de services élémentaires définie est mis en œuvre d’une manière asynchrone 1002. Enfin, il est important de maintenir 1003 la relatioîPE2°16/5252 temporelle de trames horodatées des flux vidéo et/ou audio associés. Les flux vidéo et audio associés se rapportent à la même application.FIG. 10 visually illustrates the concept of the operating method of the video production server. A sequence of elementary services is initially defined, 1001, which must be applied to video and / or audio signal frames. Then, the processing of video signals and / or audio according to the sequence defined basic services is implemented asynchronously 1002. Finally, it is important to maintain the relatioîP E2 1003 ° 16/5252 temporal frames stamped flows associated video and / or audio. The associated video and audio streams relate to the same application.

La figure 11 représente une vue d’ensemble d’une installation de production impliquant une pluralité de serveurs 1101A à 1101F. Dans la figure 11, les serveurs individuels sont étiquetés comme des nœuds de serveurs afin de souligner que les nœuds de serveurs 1101A à 1101F sont des machines autonomes individuelles. Les nœuds de serveurs 1101A à 1101F sont reliés entre eux par l’intermédiaire d’un réseau interne 1102 en vue de former une grappe de serveurs mettant en œuvre des tâches de traitement dans le cadre d’une production de diffusion.FIG. 11 represents an overall view of a production installation involving a plurality of servers 1101A to 1101F. In Figure 11, the individual servers are labeled as server nodes to emphasize that the server nodes 1101A to 1101F are individual stand-alone machines. Server nodes 1101A to 1101F are linked together through an internal network 1102 to form a cluster of servers implementing processing tasks as part of broadcast production.

Etant donné que les services élémentaires sont extraits du matériel sous-jacent, en ce qui concerne l’utilisateur, peu importe si le traitement pour la production de diffusion est mis en œuvre par un nœud de serveur individuel ou une grappe de serveurs comprenant une pluralité de nœuds de serveurs. La seule différence, pour l’utilisateur, réside dans le fait qu’une grappe de nœuds de serveurs fournit une puissance de traitement supérieure, laquelle est évolutive en ce que des nœuds de serveurs supplémentaires peuvent être ajoutés ou retirés de la grappe.Since the basic services are extracted from the underlying material, as far as the user is concerned, it does not matter whether the processing for the production of broadcasting is carried out by an individual server node or a cluster of servers comprising a plurality server nodes. The only difference for the user is that a cluster of server nodes provides more processing power, which is scalable in that additional server nodes can be added to or removed from the cluster.

Les nœuds de serveurs reçoivent des données vidéo en entrée 1103, et fournissent des données vidéo traitées en sortie 1104. Les données vidéo sont communiquées par le biais du réseau 1102. Les nœuds de serveurs 1101D et 1101E sont connectés à des stockages de disque local 1105 et 1106, Les nœuds de serveurs 1101A à 1101C sont connectés à un réseau de zone de système (SAN) î 107 connectant la grappe de serveurs illustrée dans la figure 11 à d’autres grappes de serveurs, afin d’échanger des données vidéo, par exemple, au cours d’une production de diffusion. Les nœuds de serveurs 1101C et 1101D sont connectés à des dispositifs clients 1108 en vue de recevoir une entrée et/ou de fournir une sortie. L’un des dispositifs clients 1108 peut exécuter une application commandant la grappe de serveurs.The server nodes receive video data as input 1103, and provide processed video data as output 1104. The video data is communicated via the network 1102. The server nodes 1101D and 1101E are connected to local disk storage 1105 and 1106, the server nodes 1101A to 1101C are connected to a system area network (SAN) î 107 connecting the server cluster illustrated in FIG. 11 to other server clusters, in order to exchange video data, for example, during a broadcast production. Server nodes 1101C and 1101D are connected to client devices 1108 to receive input and / or provide output. One of the 1108 client devices can run an application that controls the server cluster.

La figure 12A représente une illustration schématique d’un exemple indiquant comment le pipeline déjà illustré dans la figure 5 est mis en œuvre sur une grappe de serveurs.FIG. 12A represents a schematic illustration of an example showing how the pipeline already illustrated in FIG. 5 is implemented on a cluster of servers.

Le pipeline comprend des services élémentaires, 501, 502, 503, 509 et 510. Les flèches dans la figure 12A indiquent sur quel nœud de serveur chacun des services élémentaires est mis en correspondance. Dans d’autres modes de réalisation, la. mise en correspondance pourrait être differente. En outre, dans certains modes de réalisation, la mise en correspondance est adaptée dynamiquement en vue d’améliorer les performances de la grappe de serveurs. Le cas échéant, les modifications de la mise en correspondance se produisent d’une trame de données, ou grain, d’un flux de signaux, à la trame de données successive. Ces modifications rapides sont également pertinentes pour la tolérance aux pannes du serveur de production vidéo.The pipeline includes elementary services, 501, 502, 503, 509 and 510. The arrows in Figure 12A indicate on which server node each of the elementary services is mapped. In other embodiments, the. matching could be different. In addition, in some embodiments, the mapping is dynamically adapted to improve the performance of the server cluster. Where appropriate, the mapping changes occur from one data frame, or grain, of a signal stream, to the successive data frame. These quick changes are also relevant to the fault tolerance of the video production server.

BE2016/5252BE2016 / 5252

La figure 12B représente une illustration de la mise en correspondance des deux pipelines. Le premier pipeline comprend les services élémentaires 501, 502, 503, 509 et 510. Le second pipeline comprend les services élémentaires 50Γ, 502’, 503’, 509’ et 510’.Figure 12B shows an illustration of the mapping of the two pipelines. The first pipeline includes basic services 501, 502, 503, 509 and 510. The second pipeline includes basic services 50Γ, 502 ’, 503’, 509 ’and 510’.

Dans les exemples illustrés dans les figures 12A et 12B, les pipelines de services élémentaires sont mis en correspondance sur une pluralité de nœuds de serveurs. Toutefois, il convient de remarquer que, dans une approche alternative, chaque nœud de serveur de la grappe exécute tous les services élémentaires d’un pipeline complet, mais uniquement une fraction de la totalité des signaux vidéo. Les deux approches ont en commun que le traitement requis pour une production de diffusion spécifique est partagé parmi les nœuds de serveurs dans la grappe.In the examples illustrated in Figures 12A and 12B, the elementary service pipelines are mapped on a plurality of server nodes. However, it should be noted that, in an alternative approach, each server node in the cluster performs all of the basic services of a complete pipeline, but only a fraction of all of the video signals. The two approaches have in common that the processing required for a specific broadcast production is shared among the server nodes in the cluster.

Liste des numéros de référenceList of reference numbers

101 Studio local101 Local studio

BE2016/5252BE2016 / 5252

509,510 services509,510 services

102 102 réseau network 601 601 ligne chronologique timeline 103 103 serveur vidéo video server 602 602 flux de signaux effectif effective signal flow 104 104 serveur de production production server 603 603 flux de signaux potentiel potential signal flow 201 201 serveur de production vidéo video production server 701,702 flux d’entrée 701,702 input streams 202 202 couche matérielle material layer 703 703 serveur de production vidéo video production server 203 203 couche de bus bus layer 704, 705 flux de sortie 704, 705 output stream 204 204 couche de système d’exploitation operating system layer 706 706 tics d’horloge clock ticks 205 205 couche de service service layer 801 - 801 - 804 services élémentaires 804 basic services 206 206 couche d’application application layer 805 805 fils son 207 207 second serveur de production vidéo second video production server 806 806 plateforme matérielle hardware platform 208 208 connexion de réseau network connection 901 901 sendee élémentaire sendee elementary 301 301 source source 902 902 grain grain 302 302 service élémentaire basic service 903 - 903 - 906 services élémentaires 906 basic services 303 303 fonctionnalité functionality 1001 1001 - 1003 étapes de procédé - 1003 process steps 401 401 source, flux d’entrée source, input flow 1101A-1101F nœuds de serveurs 1101A-1101F server nodes 402 402 nœuds matériels hardware nodes 1102 1102 réseau de serveur interne internal server network 501 - 501 - 504 services élémentaires  504 basic services 1103 1103 entrée vidéo video input 506 506 interface API source source API interface 1104 1104 sortie vidéo video output 507 507 interface API collectrice API collector interface 1105, 1105, 1106 stockage de disque 1106 disk storage 508 508 flux de données data flow 1107 1107 réseau de zone de système system zone network 1108 1108 dispositif client client device

Claims (15)

RevendicationsClaims BE2016/5252BE2016 / 5252 1. Serveur de production vidéo comprenant au moins un processeur et un magasin de stockage, dans lequel des modules logiciels composés d’un code de programme exécutable sont chargés dans une mémoire de travail dudit au moins un processeur, dans lequel chaque module logiciel, lorsqu’il est exécuté par ledit au moins un processeur, fournit un. service élémentaire (501-504); dans lequel une concaténation de services élémentaires fournit une fonctionnalité impliquant le traitement de signaux vidéo et/ou audio requis en vue de produire un programme de diffusion, dans lequel le serveur de production vidéo est configuré en qualité de serveur d’ingestion ingérant des signaux, notamment des signaux vidéo et/ou audio, reçus sous la forme de flux de trames de données en provenance de dispositifs d’acquisition en synchronicité avec la sortie de dispositifs d’acquisition ;1. Video production server comprising at least one processor and a storage magazine, in which software modules composed of an executable program code are loaded into a working memory of said at least one processor, in which each software module, when 'it is executed by said at least one processor, provides one. elementary service (501-504); in which a concatenation of elementary services provides a functionality involving the processing of video and / or audio signals required in order to produce a broadcasting program, in which the video production server is configured as an ingestion server ingesting signals, in particular video and / or audio signals, received in the form of data frame streams from acquisition devices in synchronicity with the output of acquisition devices; dans lequel le serveur de production vidéo est équipé d’un module d’ingestion affectant des estampilles temporelles à chaque trame de données entrante, et dans lequel le serveur de production vidéo inclut un magasin de stockage permettant un accès direct à toute trame de données après que le grain a été stockéin which the video production server is equipped with an ingestion module assigning time stamps to each incoming data frame, and in which the video production server includes a storage magazine allowing direct access to any data frame after that the grain has been stored 2. Serveur de production vidéo selon la revendication 1, dans lequel les modules logiciels sont mis en correspondance sur le matériel (401) du serveur de production vidéo.The video production server according to claim 1, wherein the software modules are mapped onto the hardware (401) of the video production server. 3. Serveur de production vidéo selon la revendication 1, dans lequel le serveur d’ingestion est apte à ingérer simultanément de multiples flux de signaux de différents tonnais.3. Video production server according to claim 1, in which the ingestion server is capable of simultaneously ingesting multiple signal streams of different tonnais. 4. Serveur de production vidéo selon la revendication 1, dans lequel le serveur de production vidéo est aussi configuré en qualité de serveur de lecture délivrant en sortie des signaux vidéo et/ou audio sous la forme de trames de données en synchronicité avec des dispositifs en aval recevant les signaux de sortie du serveur de production vidéo.4. Video production server according to claim 1, in which the video production server is also configured as a playback server delivering video and / or audio signals in the form of data frames in synchronicity with devices in downstream receiving the output signals from the video production server. BE2016/5252BE2016 / 5252 5. Serveur de production vidéo selon la revendication 1, dans lequel ledit au moins un processeur du serveur de production vidéo met en œuvre un traitement interne asynchrone des signaux vidéo et/ou audio et/ou de métadounées.5. Video production server according to claim 1, in which said at least one processor of the video production server implements an asynchronous internal processing of the video and / or audio and / or metadata signals. 6, Serveur de production vidéo selon la revendication 1, dans lequel ledit au moins un processeur est configuré de manière à traiter les trames de données selon 1a séquence de leurs estampilles temporelles affectées par le module d’ingestion.6, Video production server according to claim 1, wherein said at least one processor is configured so as to process the data frames according to the sequence of their timestamps affected by the ingestion module. 1010 7. Serveur de production vidéo selon la revendication 1, dans lequel chaque module logiciel du serveur de production vidéo présente des interfaces de données définies API (506, 507) prescrivant un format de données unitaire pour des données vidéo, des données audio, des métadonnées et/ou des données de commande, au niveau de l’entrée et de la sortie des modules logiciels, permettant une séquence7. Video production server according to claim 1, in which each software module of the video production server has defined API data interfaces (506, 507) prescribing a unitary data format for video data, audio data, metadata and / or control data, at the input and output of the software modules, allowing a sequence 15 « définie par l’utilisateur » de services élémentaires.15 "user-defined" basic services. 8. Serveur de production vidéo selon la revendication 7, dans lequel la séquence « définie par l’utilisateur » de services élémentaires forme au moins un pipeline de traitement pour des signaux vidéo et/ou audio et/ou des métadonnées.8. A video production server according to claim 7, in which the “user-defined” sequence of basic services forms at least one processing pipeline for video and / or audio signals and / or metadata. 9. Serveur de production, vidéo selon la revendication 8, dans lequel un service élémentaire peut être supprimé dudit au moins un pipeline de traitement, ou remplacé ou inséré dans ledit au moins un pipeline de traitement sans affecter le fonctionnement du reste du pipeline de traitement.9. Production, video server according to claim 8, in which a basic service can be deleted from said at least one processing pipeline, or replaced or inserted into said at least one processing pipeline without affecting the operation of the rest of the processing pipeline. . 10. Serveur de production vidéo selon la revendication 2, dans lequel le serveur de production vidéo exécute un algorithme qui détecte les défaillances matérielles et remet automatiquement en correspondance les modules logiciels, de sorte que les modules logiciels ne sont plus mis en correspondance sur 3e matériel défaillant.The video production server according to claim 2, wherein the video production server executes an algorithm which detects hardware failures and automatically re-matches the software modules, so that the software modules are no longer mapped to 3rd hardware. failing. BE2016/5252BE2016 / 5252 11. Serveur de production vidéo selon une ou plusieurs des revendications précédentes, comprenant de multiples nœuds de serveurs (1101 A-l 101F) connectés en communication par un réseau (1102).11. Video production server according to one or more of the preceding claims, comprising multiple server nodes (1101 A-l 101F) connected in communication by a network (1102). 12. Serveur de production vidéo selon la revendication 11, dans lequel les modules logiciels sont mis en correspondance dynamiquement sur les multiples nœuds de serveurs (1101A-1101F) en vue d’une amélioration des performances dudit au moins un pipeline de traitement composé de services élémentaires fournis par les modules logiciels.12. Video production server according to claim 11, in which the software modules are dynamically matched on the multiple server nodes (1101A-1101F) in order to improve the performance of said at least one processing pipeline composed of services. elements provided by software modules. 13. Système de production vidéo distribué comprenant au moins deux dispositifs de production de diffusion (103, 104), lesquels sont interconnectés par un réseau (102) et sont mutuellement synchronisés, dans lequel au moins un dispositif de l’un des dispositifs de production de diffusion est un serveur de production vidéo selon une ou plusieurs des revendications précédentes.13. Distributed video production system comprising at least two broadcast production devices (103, 104), which are interconnected by a network (102) and are mutually synchronized, in which at least one device from one of the production devices broadcast is a video production server according to one or more of the preceding claims. 14. Procédé de fonctionnement d’un serveur de production vidéo, dans lequel le procédé comporte les étapes ci-dessous consistant à :14. Operating method of a video production server, in which the method comprises the steps below consisting in: définir une séquence de services élémentaires appliquée à des trames de données de flux de signaux reçus tels que des flux vidéo et audio ;defining a sequence of elementary services applied to data frames of received signal streams such as video and audio streams; traiter des trames de données selon la séquence de services élémentaires définie d’une manière asynchrone, et simultanément maintenir l’ordre temporel de trames de données horodatées et la synchronicité entre des flux associés, par exemple un flux vidéo, et un flux audio associé, mettre eu correspondance dynamiquement les modules logiciels sur une plateforme matérielle composée de multiples nœuds de serveurs (1101 A-l 101F) en vue d’une amélioration des performances de la séquence de services élémentaires, etprocess data frames according to the elementary service sequence defined asynchronously, and simultaneously maintain the time order of time-stamped data frames and the synchronicity between associated streams, for example a video stream, and an associated audio stream, dynamically match the software modules on a hardware platform composed of multiple server nodes (1101 Al 101F) with a view to improving the performance of the sequence of basic services, and - dans lequel la mise en correspondance dynamique varie d’une trame de données à la trame de données successive d’un flux de signaux reçu.- in which the dynamic mapping varies from a data frame to the successive data frame of a received signal stream. BE2016/5252BE2016 / 5252 5 15. Procédé selon la revendication 14, dans lequel le procédé comporte en outre l’étape ci-dessous consistant à :15. The method according to claim 14, in which the method further comprises the step below consisting in: modifier dynamiquement la séquence de services élémentaires, d’une trame de données à la trame de données successive, d’un flux de signaux reçu, en supprimant un service élémentaire de la séquence de servicesdynamically modify the sequence of elementary services, from a data frame to the successive data frame, of a received signal stream, by deleting an elementary service from the sequence of services 10 élémentaires, ou en remplaçant un service élémentaire dans la séquence de services élémentaires, ou en insérant un service élémentaire dans la séquence de services élémentaires.10 elementary, or by replacing an elementary service in the sequence of elementary services, or by inserting an elementary service in the sequence of elementary services. 16. Logiciel contenant un code de programme, qui, lorsqu’il est exécuté par16. Software containing program code, which when executed by 15 un processeur, met en œuvre un procédé selon les revendications 14 à 15.15 a processor, implements a method according to claims 14 to 15. BE2016/5252BE2016 / 5252 CTtCTt Serveur ® C oServer ® C o 3 ü Φ 3 > X?3 ü Φ 3> X? Φ S co ex.Φ S ex. BE2016/5252BE2016 / 5252 BE2016/5252BE2016 / 5252 BE2016/5252BE2016 / 5252 503 503
BE2016/5252A 2016-04-12 2016-04-12 Modular software-based video production server, video production server operation method, and distributed video production system BE1024519B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
BE2016/5252A BE1024519B1 (en) 2016-04-12 2016-04-12 Modular software-based video production server, video production server operation method, and distributed video production system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
BE2016/5252A BE1024519B1 (en) 2016-04-12 2016-04-12 Modular software-based video production server, video production server operation method, and distributed video production system

Publications (2)

Publication Number Publication Date
BE1024519A1 BE1024519A1 (en) 2018-03-21
BE1024519B1 true BE1024519B1 (en) 2018-03-28

Family

ID=59294868

Family Applications (1)

Application Number Title Priority Date Filing Date
BE2016/5252A BE1024519B1 (en) 2016-04-12 2016-04-12 Modular software-based video production server, video production server operation method, and distributed video production system

Country Status (1)

Country Link
BE (1) BE1024519B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030208638A1 (en) * 2002-04-02 2003-11-06 Abrams Thomas Algie Digital production services architecture
US20040151242A1 (en) * 2003-01-30 2004-08-05 Chienchung Chang Modular architecture having reusable front end for processing digital video data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030208638A1 (en) * 2002-04-02 2003-11-06 Abrams Thomas Algie Digital production services architecture
US20040151242A1 (en) * 2003-01-30 2004-08-05 Chienchung Chang Modular architecture having reusable front end for processing digital video data

Also Published As

Publication number Publication date
BE1024519A1 (en) 2018-03-21

Similar Documents

Publication Publication Date Title
US10218826B2 (en) Scalable, live transcoding with support for adaptive streaming and failover
EP3443691B1 (en) Modular software based video production server, method for operating the video production server and distributed video production system
JP6928038B2 (en) Systems and methods for frame copying and frame expansion in live video encoding and streaming
EP3058486B1 (en) Software-defined media platform
KR102110098B1 (en) Scalable robust live streaming system
EP2658271A1 (en) Peer-assisted video distribution
EP3225027B1 (en) Method for composing an intermediate video representation
EP1432246B1 (en) MPEG images decoding and reverse display procedure and device, video pilot circuit and decoder including such a device
EP1483915B1 (en) Method for the transmission of dependent data flows
BE1024519B1 (en) Modular software-based video production server, video production server operation method, and distributed video production system
EP3891999B1 (en) Just after broadcast media content
US20240064293A1 (en) Hybrid media recording
EP3780632B1 (en) System for distributing audiovisual content
EP3357244A1 (en) Method for encoding streams of video data based on groups of pictures (gop)
FR3069123A1 (en) METHOD FOR SIGNALING TERMINAL SUBSTITUTION, TERMINAL SUBSTITUTING METHOD, COMPUTER PROGRAM PRODUCTS, CORRESPONDING SYSTEM AND TERMINAL.
EP2614655B1 (en) Synchronised broadcast of streams
WO2020234030A1 (en) Rendering of background or insertion content as part of an adaptive progressive download (has)
Pohl Media Facility Infrastructure of the Future
FR2906954A1 (en) METHOD FOR TIME DELAYING DIGITAL CONTENT STREAMS, DEVICE, AND CORRESPONDING COMPUTER PROGRAM PRODUCT.

Legal Events

Date Code Title Description
FG Patent granted

Effective date: 20180328

MM Lapsed because of non-payment of the annual fee

Effective date: 20220430