FR3013932A1 - - Google Patents

Download PDF

Info

Publication number
FR3013932A1
FR3013932A1 FR1361568A FR1361568A FR3013932A1 FR 3013932 A1 FR3013932 A1 FR 3013932A1 FR 1361568 A FR1361568 A FR 1361568A FR 1361568 A FR1361568 A FR 1361568A FR 3013932 A1 FR3013932 A1 FR 3013932A1
Authority
FR
France
Prior art keywords
video
segment
bit rate
transmission
segments
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1361568A
Other languages
French (fr)
Other versions
FR3013932B1 (en
Inventor
Thierry Mastrosimone
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ateme SA
Original Assignee
ALLEGRO DVT
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 ALLEGRO DVT filed Critical ALLEGRO DVT
Priority to FR1361568A priority Critical patent/FR3013932B1/en
Publication of FR3013932A1 publication Critical patent/FR3013932A1/fr
Application granted granted Critical
Publication of FR3013932B1 publication Critical patent/FR3013932B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • 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
    • H04N21/23439Processing 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 for generating different versions
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4382Demodulation or channel decoding, e.g. QPSK demodulation

Landscapes

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

Abstract

L'invention concerne un codeur de vidéo comportant : un module de génération de segments (202) agencé pour générer une première séquence de segments de vidéo (SEQ(1)) sur la base d'un premier flux de vidéo (EVS(1)) codé à un premier débit binaire et une deuxième séquence de segments de vidéo (SEQ(2)) sur la base d'un deuxième flux de vidéo (EVS(2)) codé à un deuxième débit binaire différent du premier débit binaire ; et un module de transmission de segments (204) agencé pour : recevoir, à partir d'un décodeur de vidéo, un signal de requête de segment (REQ) identifiant un segment de vidéo (SEG) sélectionné de la première ou de la deuxième séquence de segments ; générer du code de correction d'erreur directe pour le segment de vidéo sélectionné ; et transmettre le segment de vidéo sélectionné et le code de correction d'erreur directe généré.A video encoder includes: a segment generation module (202) arranged to generate a first video segment sequence (SEQ (1)) based on a first video stream (EVS (1) ) encoded at a first bit rate and a second video segment sequence (SEQ (2)) based on a second video stream (EVS (2)) encoded at a second bit rate different from the first bit rate; and a segment transmission module (204) arranged to receive, from a video decoder, a segment request signal (REQ) identifying a selected video segment (SEG) of the first or second sequence segments; generate forward error correction code for the selected video segment; and transmit the selected video segment and the generated forward error correction code.

Description

B13020 1 SYSTEME DE TRANSMISSION DE VIDEO Domaine La présente description concerne le domaine des transmissions de vidéo, et en particulier un codeur de vidéo pour coder un flux de vidéo et un décodeur de vidéo pour recons5 truire le flux de vidéo. Arrière-plan Il est connu de transmettre un flux de vidéo comprenant des trames de données de vidéo sur des réseaux de données tels que l'internet et/ou un ou plusieurs réseaux locaux 10 en utilisant des protocoles de couche de transport tels que TCP (protocole de contrôle de 'transmission). Un tel protocole garantit une transmission fiable de paquets de données en détectant - les pertes de paquets, et en demandant une retransmission de ces paquets. 15 Le débit binaire de transmission effectif obtenu en utilisant le protocole TCP, en ,d'autres termes le débit avec lequel des données sont transmises avec succès sur le réseau, est fonction du débit binaire de transmission, de la latence entre les points d'extrémité, et du taux de perte de paquets_ 20 Dans certains cas, comme lorsqu'il y a un taux de perte de paquets et4ou une latence relativement élevés dans le réseau, ce débit binaire effectif peut devenir très mauvais. 3013934 B13020 2 Il existe donc un besoin dans la technique d'un système et d'un procédé de transmission de vidéo qui assurent un débit binairé effectif amélioré dans au moins certaines conditions du réseau.The present disclosure relates to the field of video transmissions, and in particular a video encoder for encoding a video stream and a video decoder for reconstructing the video stream. BACKGROUND It is known to transmit a video stream comprising frames of video data over data networks such as the internet and / or one or more local area networks using transport layer protocols such as TCP ( transmission control protocol). Such a protocol ensures reliable transmission of data packets by detecting - packet loss, and requesting retransmission of these packets. The actual transmission bit rate obtained using the TCP protocol, in other words the rate at which data is successfully transmitted over the network, is a function of the transmission bit rate, the latency between the data points and the data rate. In some cases, such as when there is a relatively high rate of packet loss and / or latency in the network, this actual bit rate can become very bad. There is therefore a need in the art for a video transmission system and method that provides improved effective baud rate under at least some network conditions.

Résumé Un objet de modes de réalisation de la présente invention est de résoudre au moins partiellement un ou plusieurs besoins de l'art antérieur: Selon un aspect, on prévoit un codeur de vidéo comprenant : un module de génération de segments agencé pour générer une première séquence de segments de vidéo sur la base d'un premier flux de vidéo codé à un premier débit binaire et une deuxième séquence de segments de vidéo sur la base d'un deuxième flux de vidéo codé à un deuxième débit binaire différent du premier débit binaire et un module de transmission de segments agencé pour : recevoir, à partir d'un décodeur de vidéo, un signal de requête de segment identifiant un segment de vidéo sélectionné de la-première ou de la deuxième séquence de segments ; générer du code de correction d'erreur directe pour le segment de vidéo sélectionné ; et transmettre le segment de vidéo sélectionné et le code de correction d'erreur directe généré. Selon un mode de réalisation, le signal de requête de segment indique un niveau de décodage de correction d'erreur directe à utiliser pour le segment de vidéo sélectionné, et le module de transmission de segments est agencé pour générer le code de correction d'erreur directe sur la base dudit niveau. Selon un mode de réalisation, le module de transmission de segments est agencé pour générer le code de 30 correction d'erreur directe avec un nombre de bits basé sur ledit niveau. Selon un mode de réalisation, le signal de requête de segment indique un débit binaire de transmission à utiliser pour la transmission du segment de vidéo sélectionné, et le module de B13020 3 transmission de segments est agencé pour transmettre le segment de vidéo sélectionné au débit binaire de transmission indiqué. Selon un mode de réalisation, le module de transmission de segments est agencé pour séparer le segment de vidéo 5 sélectionné en une pluralité de paquets de données, et la transmission du segment de vidéo sélectionné au débit binaire de transmission comprend une transmission de chaque paquet de la pluralité de paquets de données au débit binaire de transmission. 10 Selon un mode de réalisation, les premier et deuxième flux de vidéo codés sont générés sur la base d'un même flux de vidéo initial. Selon un mode de réalisation, les segments de vidéo de la première séquence de segments de vidéo correspondent à des 15 périodes temporelles du flux de vidéo initial, et les segments de vidéo de la deuxième séquence de segments de vidéo correspondent aux mêmes périodes temporelles du flux de vidéo initial. Selon un autre aspect, on prévoit un décodeur de vidéo 20 comprenant : un module de réception de segments agencé pour reconstruire au moins partiellement un segment de vidéo sur la base d'un bloc de données reçu comprenant des données de segment codées à un premier débit binaire et du code de correction d'erreur directe ; et un module de requête de .segments agencé 25 pour générer, sur la ba-se de la reconstruction d'un ou plusieurs segments de vidéo précédents, une requête pour un autre segment de vidéo codé à un deuxième débit binaire sélectionné différent du premier-débit binaire. Selon un mode de réalisation, les données de segment 30 comprennent une pluralité de paquets de données, et le deuxième débit binaire est sélectionné sur la base d'un taux de perte des paquets de données. Selon un mode de réalisation,, la requête indique en outre un niveau de correction d'erreur directe à utiliser pour 35 l'autre segment de vidéa 013932 B13020 4 Selon un mode de réalisation, les données de segment comprennent une pluralité de paquets de données, et le niveau de, correction d'erreur directe est sélectionné sur la base d'un taux de perte des paquets de données.SUMMARY An object of embodiments of the present invention is to at least partially solve one or more needs of the prior art: According to one aspect, there is provided a video encoder comprising: a segment generation module arranged to generate a first video segment sequence based on a first video stream encoded at a first bit rate and a second video segment sequence based on a second video stream encoded at a second bit rate different from the first bit rate and a segment transmission module arranged to receive, from a video decoder, a segment request signal identifying a selected video segment of the first or second sequence of segments; generate forward error correction code for the selected video segment; and transmit the selected video segment and the generated forward error correction code. According to one embodiment, the segment request signal indicates a forward error correction decoding level to be used for the selected video segment, and the segment transmission module is arranged to generate the error correction code. directly on the basis of said level. According to one embodiment, the segment transmission module is arranged to generate the forward error correction code with a number of bits based on said level. According to one embodiment, the segment request signal indicates a transmission bit rate to be used for the transmission of the selected video segment, and the segment transmission module is arranged to transmit the selected video segment to the bit rate. indicated. According to one embodiment, the segment transmission module is arranged to separate the selected video segment into a plurality of data packets, and the transmission of the selected video segment to the transmission bit rate comprises a transmission of each packet of data. the plurality of data packets at the transmission bit rate. According to one embodiment, the first and second coded video streams are generated based on the same initial video stream. According to one embodiment, the video segments of the first sequence of video segments correspond to time periods of the initial video stream, and the video segments of the second sequence of video segments correspond to the same time periods of the stream. initial video. In another aspect, there is provided a video decoder 20 comprising: a segment receiving module arranged to at least partially reconstruct a video segment based on a received data block including segment data encoded at a first rate binary and direct error correction code; and a .section request module arranged to generate, on the basis of the reconstruction of one or more previous video segments, a request for another video segment encoded at a second selected bit rate different from the first one. bit rate. According to one embodiment, the segment data comprises a plurality of data packets, and the second bit rate is selected based on a loss rate of the data packets. According to one embodiment, the request further indicates a forward error correction level to be used for the other video segment. In one embodiment, the segment data includes a plurality of data packets. , and the level of, forward error correction is selected based on a loss rate of the data packets.

Selon un mode de réalisation, le décodeur de vidéo comprend en outre un tampon de segments de vidéo agencé pour mémoriser des segments reçus avec succès par le module de réception de segments, la requête indiquant en outre un débit binaire de transmission à utiliser pour la transmission de 10 l'autre segment vidéo, le débit binaire de transmission étant sélectionné sur la base de la quantité de données mémorisée dans le tampon de segments de vidéo. Selon un autre aspect, on prévoit un système de transmission de vidéo comprenant : le codeur de vidéo 15 susmentionné ; le décodeur de vidéo susmentionné ; et un ou plusieurs réseaux intermédiaires, interconnectant le codeur de vidéo et le décodeur de vidéo, par l'intermédiaire desquels le segment de vidéo sélectionné est transmis par le codeur de vidéo et le bloc de données est reçu par le décodeur de vidéo. 20 Selon un autre aspect, on prévoit un procédé de codage de vidéo comprenant : générer, par un module de génération de segments, une première séquence de segments vidéo sur la base d'un premier flux de vidéo codé à un premier débit binaire et 4 une deuxième séquence de segments de vidéo sur la base d'un 25 deuxième. flux de vidéo codé à un deuxième débit binaire différent du premier débit binaire ; recevoir, par un module de transmission de segments à partir d'un décodeur de vidéo, un signal de requête de segment identifiant un segment de vidéo sélectionné de la première ou de la deuxième séquence de 30 segments ; générer, par le module de transmission de segments, du code de correction d'erreur directe pour le segment de vidéo sélectionné ; et transmettre, par le module de transmission de segments, le segment de vidéo sélectionné et le code de correction d'erreur directe généré.According to one embodiment, the video decoder further comprises a video segment buffer arranged to store segments successfully received by the segment receiving module, the request further indicating a transmission bit rate to be used for transmission. of the other video segment, the transmission bit rate being selected based on the amount of data stored in the video segment buffer. In another aspect, there is provided a video transmission system comprising: the aforementioned video encoder; the aforementioned video decoder; and one or more intermediate networks, interconnecting the video encoder and the video decoder, through which the selected video segment is transmitted by the video encoder and the data block is received by the video decoder. In another aspect, there is provided a video encoding method comprising: generating, by a segment generation module, a first video segment sequence based on a first video stream encoded at a first bit rate and 4 a second sequence of video segments based on a second. coded video stream at a second bit rate different from the first bit rate; receiving, by a segment transmission module from a video decoder, a segment request signal identifying a selected video segment of the first or second segment sequence; generating, by the segment transmission module, the forward error correction code for the selected video segment; and transmitting, by the segment transmission module, the selected video segment and the generated forward error correction code.

B13020 Selon un autre aspect, on prévoit un procédé de décodage de vidéo comprenant : reconstruire au moins partiellement, par un module de réception de segments, un segment de vidéo sur la base d'un bloc de données reçu comprenant des 5 données de segment codées à un premier débit binaire et du code de correction d'erreur directe ; et générer, par un module de requête de segments sur la base de la reconstruction, d'un ou plusieurs segments de vidéo précédents, une requête pour un autre segment de vidéo codé à un deuxième débit binaire 10 sélectionné différent du premier débit binaire. Brève description des dessins Les caractéristiques et avantages susmentionnés, et d'autres, apparaîtront clairement avec la description détaillée suivante de modes de réalisation, donnés à titre illustratif et 15 non limitatif, en référence aux dessins joints, dans lesquels : la figure 1 illustre schématiquement un système de transmission de vidéo selon un exemple de réalisation de la présente description ; la figure 2 illustre schématiquement plus en détail un 20 codeur de vidéo du système de transmission de vidéo de la figure 1 selon un exemple de réalisation de la présente description ; la figure 3 représente schématiquement des segments de vidéo mémorisés dans un système de fichiers du codeur de vidéo de la figure 2 selon un exemple de réalisation de la présente 25 description ; ,la figure 4 illustre schématiquement un circuit de génération de code de correction d'erreur directe (FEC) Selon un exemple de réalisation de la présente description ; la figure 5 illustre schématiquement plus en détail un 30 décodeur de vidéo du système de transmission de vidéo de la figure 1 selon un exemple de réalisatiàn de la présente description ; et la figure 6 illustre schématiquement un dispositif pour mettre en oeuvre en logiciel au moins certaines parties du »35 codeur ou du décodeur de vidéo du système de transmission de B13020 6 vidéo de la figure 1 selon un exemple de réalisation de la présente description. Description détaillée La figure 1 illustre un système de transmission de vidéo 100 pour transmettre un flux de vidéo à partir d'un côté d'émission TX vers un côté de réception RX. Comme cela est illustré, le flux de vidéo (VIDEO) est par exemple reçu par un codeur de vidéo 102 (ENCODER) du côté émetteur, qui code le flux de vidéo et génère des paquets de données pour transmission à un décodeur de vidéo 104 (DECODER) du côté récepteur, par l'intermédiaire d'un ou plusieurs réseaux intermédiaires 106. Le ou les réseaux intermédiaires 106 peuvent comprendre par exemple un ou plusieurs réseaux à commutation de paquets comme le réseau internet, des réseaux locaux filaires ou sans fil, etc., des réseaux de télécommunications, et/ou une ou plusieurs transmissions de données par satellite. Le décodeur 104 décode les paquets de données pour reconstruire le flux de vidéo. Un chemin de retour est illustré à partir du décodeùr 104 vers le codeur 102 par l'intermédiaire du ou des réseaux intermédiaires 106 pour fournir des données de contrôle décrites plus en détail ci-après. Le flux 'de vidéo reconstruit (VIDEO') peut être sensiblement identique au flux de vidéo original codé par le codeur 102, mais il va en général être modifié dans une certaine mesure par l'opération de codage et de décodage.B13020 In another aspect, there is provided a video decoding method comprising: at least partially reconstructing, by a segment receiving module, a video segment based on a received data block comprising coded segment data at a first bit rate and the forward error correction code; and generating, by a segment request module based on the reconstruction, one or more previous video segments, a request for another video segment encoded at a second selected bit rate different from the first bit rate. BRIEF DESCRIPTION OF THE DRAWINGS The above-mentioned and other features and advantages will become apparent from the following detailed description of embodiments, given by way of illustration and without limitation, with reference to the accompanying drawings, in which: Figure 1 schematically illustrates a video transmission system according to an exemplary embodiment of the present description; Fig. 2 schematically illustrates in more detail a video encoder of the video transmission system of Fig. 1 according to an exemplary embodiment of the present disclosure; Figure 3 shows schematically video segments stored in a video encoder file system of Figure 2 according to an exemplary embodiment of the present description; FIG. 4 schematically illustrates a direct error correction code (FEC) generation circuit according to an exemplary embodiment of the present description; Fig. 5 schematically illustrates in more detail a video decoder of the video transmission system of Fig. 1 according to an exemplary embodiment of the present disclosure; and FIG. 6 schematically illustrates a device for implementing in software at least some parts of the video encoder or decoder of the video transmission system of FIG. 1 according to an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION FIG. 1 illustrates a video transmission system 100 for transmitting a video stream from a TX transmit side to a receive side RX. As illustrated, the video stream (VIDEO) is for example received by a video encoder 102 (ENCODER) on the transmitter side, which encodes the video stream and generates data packets for transmission to a video decoder 104 ( DECODER) on the receiver side, via one or more intermediate networks 106. The intermediate network or networks 106 may comprise, for example, one or more packet-switched networks such as the Internet network, wired or wireless local networks, etc., telecommunications networks, and / or one or more satellite data transmissions. The decoder 104 decodes the data packets to reconstruct the video stream. A return path is illustrated from decoder 104 to encoder 102 through intermediate network (s) 106 to provide control data described in more detail below. The reconstructed video stream (VIDEO) may be substantially identical to the original video stream encoded by the encoder 102, but will generally be modified to some extent by the encoding and decoding operation.

Par exemple, dans un mode de réalisation, le systèmè de transmission de vidéo de la figure_1 est -Lltilisé pour la transmission, par satellite et/ou par internet, de vidéo en direct à partir d'un lieu de tournage distant, comme un événement sportif, vers un centre de contrôle où la vidéo peut être traitée et diffusée. La figure 2 illustre schématiquement plus en détail le codeur 102 de la figure 1 selon un exemple de réalisation. Le codeur 102 comprend un module de génération de segments 202, et un module de transmission de segments 204. 3013932 B13020 ' Le module de génération de segments 202 met en oeuvre par exemple, une fonction de diffusion en continu adaptative dynamique (DAS). Pour cela, le module 202 comprend N codeurs de vidéo (ENCODER 1 à ENCODER N) agencés en parallèle, dont trois 5 sont illustrés dans l'exemple de la figure 2, notés 206; 208 et 210. Dans des variantes de réalisation, N pourrait prendre une valeur quelconque entre 2 et plusieurs centaines. Chacun des N codeurs reçoit un même flux de vidéo entrant (VIDEO) par l'intermédiaire d'une ligne d'entrée 211, et code le flux 10 entrant à un débit binaire différent, pour générer des flux de vidéo codés EVS(1) à EVS(N) respectivement. En particulier, les N codeurs vidéo utilisent par exemple la même norme de codage de vidéo pour coder le flux de vidéo, mais génèrent des flux de vidéo ayant par exemple des tailles d'image différentes, des 15 fréquences d'image différentes et/ou des métadonnées différentes, afin de produire les flux de vidéo codés avec différents débits binaires. Dans certains modes de réalisation, deux, ou plus, des N codeurs peuvent générer des flux de vidéo codés ayant sensiblement le même débit binaire, mais qui sont 20 différentiés par d'autres caractéristiques telles que la langue de l'audio et/ou la présence de sous-titres, etc. Par exemple, les N codeurs vidéo peuvent coder le flux de vidéo selon la norme ISO H264 MPEG4 AVC, ou selon la norme MPEG HEVC (Codage Vidéo à Haute Efficacité), référencée ISO/IEC 25 23008-2. La .spécification décrivant la norme HEVC est par exemple publiée sous le titre "High Efficiency Video Coding (HEVC) text specifipation draft 10 (for FDIS & Consent)", B.Bross et al., Joint Collaborative Team on Video Coding (JCTVC), document JCTVC-K1003, 12th Meeting: Geneva, CH, 14-23 30 January 2013, dont le contenu fait partie de la présente description dans les limites où cela est autorisé par la loi. Un document donnant une vue d'ensemble de cette norme est intitulé "Overview of the High Efficiency Video Coding (HEVC) Standard", G.Suilivan et al., Pre-publication draft to appear in IEEE Trans. on circuits and systems for video technology, Dec. 2012, B13020 8 dont le contenu fait partie de la présente description dans les limites où cela est autorisé par la loi. Les N flux de vidéo codés EVS(1) à EVS(N) sont respectivement fournis à N dispositifs de segmentation (SEGMENTER 1 à 5 SEGMENTER N), dont trois référencés 212, 214 et 216, sont illustrés en figure 2. Chacun des N dispositifs de segmentation 212 à 216 sépare le flux de vidéo correspondant en segments de vidéo pour former des séquences de segments SEQ(1) à SEQ(N). Chaque segment contient les données de vidéo pour une période 10 temporelle comprise par exemple entre 1 et 10 secondes, par exemple de 5 secondes, du flux de vidéo original. En outre, les N dispositifs de segmentation 212 à 216 ont par exemple un fonctionnement synchronisé de sorte que chacun génère des segments sur la base des mêmes périodes temporelles du flux de 15 vidéo original. Par exemple, chacun des N dispositifs de segmentation génère un premier segment correspondant à une première période temporelle tpl du flux de vidéo, qui est par exemple la période de O à 5 secondes, puis un deuxième segment correspondant à une deuxième période temporelle tp2 du flux de 20 vidéo, qui est par exemple la période de 5 à 10 secondes, et ainsi de suite, jusqu'à ce que l'opération de transmission de vidéo soit stoppée. Le flux de vidéo sur la ligne d'entre 211, les flux de vidéo codés EVS(1) à EVS(N) et les données de vidéo de chaque 25 segment de vidéo peuvent comprendre de la vidéo seule, ou une combinaison de vidéo et d'autres données comme un ou plusieurs flux audio, du texte comme des sous-titres, et/ou d'autres données utiles. Dans l'exemple de la figure 2, le flux de vidéo sur la ligne d'entrée 211 comprend seulement de la vidéo, et 30 chacun des N dispositifs de segmentation 212 à 216, reçoit un flux séparé de données audio et/ou d'autres données (AUDIO/OTHER DATA) associées au flux de vidéo et codées par un codeur 218 (ENCODER). Les _données audio peuvent comprendre un seul- flux d'audio, ou plusieurs flux d'audio dans différentes langues. Les 35 autres données peuvent domprendre du texte comme des sous-titres B13020 dans. une ou plusieurs langues. Les dispositifs de segmentation 212 à 216 par exemple séparent aussi ce flux codé de données audio et/ou d'autres données en segments à combiner avec les segments de vidéo correspondants.For example, in one embodiment, the video transmission system of FIG. 1 is used for transmitting, live and / or over the Internet, live video from a remote location, such as an event. to a control center where the video can be processed and broadcast. Figure 2 illustrates schematically in more detail the encoder 102 of Figure 1 according to an example embodiment. The encoder 102 comprises a segment generation module 202, and a segment transmission module 204. The segment generation module 202 uses, for example, a dynamic adaptive streaming (DAS) function. For this, the module 202 comprises N video encoders (ENCODER 1 to ENCODER N) arranged in parallel, of which three are illustrated in the example of Figure 2, denoted 206; 208 and 210. In alternative embodiments, N could take any value between 2 and several hundred. Each of the N encoders receives the same incoming video stream (VIDEO) via an input line 211, and encodes the incoming stream at a different bit rate, to generate EVS encoded video streams (1). at EVS (N) respectively. In particular, the N video encoders use for example the same video coding standard for encoding the video stream, but generate video streams having for example different image sizes, different frame rates and / or different metadata, to produce video streams encoded with different bit rates. In some embodiments, two or more N encoders may generate encoded video streams having substantially the same bit rate but which are differentiated by other characteristics such as audio language and / or audio. presence of subtitles, etc. For example, the N video encoders can encode the video stream according to the ISO H264 MPEG4 AVC standard, or the MPEG HEVC (High Efficiency Video Coding) standard, referenced ISO / IEC 25 23008-2. The specification describing the HEVC standard is for example published under the title "High Efficiency Video Coding (HEVC) text specifipation draft 10 (for FDIS & Consent)", B.Bross et al., Joint Collaborative Team on Video Coding (JCTVC) , document JCTVC-K1003, 12th Meeting: Geneva, CH, 14-23 January 30, 2013, the contents of which form part of the present description to the extent permitted by law. A document giving an overview of this standard is titled "Overview of the High Efficiency Video Coding (HEVC) Standard", G.Suilivan et al., Pre-publication draft to appear in IEEE Trans. the content of which forms part of the present description within the limits where this is permitted by law. The N EVS encoded video streams (1) to EVS (N) are respectively provided to N segmentation devices (SEGMENTER 1 to 5 SEGMENTER N), three of which are referenced 212, 214 and 216, are illustrated in FIG. segmentation devices 212 to 216 separate the corresponding video stream into video segments to form segment sequences SEQ (1) to SEQ (N). Each segment contains the video data for a time period of, for example, between 1 and 10 seconds, for example 5 seconds, of the original video stream. In addition, the N segmentation devices 212 to 216, for example, have a synchronized operation so that each generates segments based on the same time periods of the original video stream. For example, each of the N segmentation devices generates a first segment corresponding to a first time period tpl of the video stream, which is for example the period from 0 to 5 seconds, then a second segment corresponding to a second time period tp2 of the stream of video, which is for example the period of 5 to 10 seconds, and so on, until the video transmission operation is stopped. The video stream on the 211 line, the EVS (1) to EVS (N) coded video streams, and the video data of each video segment may comprise video alone, or a combination of video and video. other data such as one or more audio streams, text such as subtitles, and / or other useful data. In the example of Fig. 2, the video stream on the input line 211 includes only video, and each of the N segmentation devices 212-216 receives a separate stream of audio and / or video data. other data (AUDIO / OTHER DATA) associated with the video stream and coded by encoder 218 (ENCODER). Audio data can include a single audio stream, or multiple streams of audio in different languages. The other 35 data may contain text as B13020 subtitles in. one or more languages. Segmentation devices 212 to 216, for example, also separate this coded stream of audio data and / or other data into segments to be combined with the corresponding video segments.

Les séquences de segments de vidéo SEQ(1) à SEQ(N) provenant des dispositifs de segmentation 212 à 216 sont par exemple fournies à un système de fichiers 220 (FILE SYSTEM) et mémorisées dans celui-ci. Le système de fichiers 220 par exemple met en tampon les séquences de segments de telle sorte que chaque segment reste disponible dans le tampon pendant un intervalle de temps minimum. Par exemple, le système de fichiers 220 est capable de mémoriser les segments de chaque séquence correspondant à une durée comprise entre 20 secondes et plusieurs minutes du flux de vidéo original.Sequences of video segments SEQ (1) to SEQ (N) from segmentation devices 212 to 216 are for example supplied to a file system 220 (FILE SYSTEM) and stored therein. The file system 220, for example, buffers the segment sequences so that each segment remains available in the buffer for a minimum time interval. For example, the file system 220 is capable of storing the segments of each sequence corresponding to a duration of between 20 seconds and several minutes of the original video stream.

Le système de fichiers 220 fournit, en réponse à un signal de sélection, des segments sélectionnés au module de transmission de segments 204. En particulier, chaque segment sélectionné est par exemple fourni à un constructeur de paquets 222 du module de transmission de segments 204, qui sépare le segment en paquets de données, et fournit ces paquets de données à un tampon de sortie 224, par l'intermédiaire d'un circuit 226 destiné à ajouter du code de correction d'erreur directe (FEC). En particulier, les paquets de données sont fournis à un module de génération de code FEC 226 (FEC GEN), qui génère du code FEC sur la base des données de vidéo de chaque segment. Le code FEC et les paquets du segment sont ensuite mémorisés dans le tampon de sortiè 224, qui est par exemple capable de mémoriser une pluralité de segments qui sont prêts pour transmission. Chaque segment est ensuite transmis, par l'intermédiaire d'une interface de transmission 230 (TRANSMISSION INTERFACE), du tampon de sortie 224 au décodeur de vidéo 104. Par exemple, l'interface de transmission fonctionne conformément au protocole de datagrammes d'utilisateur (UDP). Dans certains modes de réalisation, le code FEC est 35 intégré avec les paquets de chaque segment de vidéo, et dst B13020 10 transmis par l'intermédiaire de l'interface de transmission 230 en utilisant un même port de sortie que les segments de vidéo. Dans des variantes de réalisation, le code FEC a la forme d'un flux de paquets séparé, qui est mémorisé dans le tampon de sortie 224 dans une file d'attente séparée des paquets du segment de vidéo, et ces paquets,FEC sont par exemple transmis par l'interface de transmission par l'intermédiaire d'un ou plusieurs ports de sortie séparés de celui qui est utilisé pour la transmission des paquets de vidéo.The file system 220 provides, in response to a selection signal, selected segments to the segment transmission module 204. In particular, each selected segment is for example supplied to a packet builder 222 of the segment transmission module 204, which separates the segment into data packets, and provides these data packets to an output buffer 224, through a circuit 226 for adding forward error correction (FEC) code. In particular, the data packets are provided to an FEC code generation module 226 (FEC GEN), which generates FEC code based on the video data of each segment. The FEC code and the segment packets are then stored in the output buffer 224, which is for example capable of storing a plurality of segments that are ready for transmission. Each segment is then transmitted, via a transmission interface 230 (TRANSMISSION INTERFACE), from the output buffer 224 to the video decoder 104. For example, the transmission interface operates in accordance with the user datagram protocol (UDP). In some embodiments, the FEC code is integrated with the packets of each video segment, and transmitted through the transmission interface 230 using the same output port as the video segments. In alternative embodiments, the FEC code has the form of a separate packet stream, which is stored in the output buffer 224 in a separate queue of the video segment packets, and these packets, FEC are by example transmitted by the transmission interface through one or more output ports separate from that used for the transmission of video packets.

Le module de transmission de segments 204 comprend en outre une entrée 232 pour recevoir, à partir du décodeur de vidéo 104, un signal de requête REQ comprenant des informations de sélection de segment identifiant un segment à transmette au décodeur. En particulier, le signal de requête REQ indique par exemple l'heure du segment, en d'autres termes le moment dans le flux de vidéo, et un niveau de qualité de vidéo, en d'autres termes, le débit binaire de codage. Le niveau de qualité de vidéo est par exemple indiqué simplement par une identification dans le signal de requête de la séquence de segments du segment demandé. Dans certains modes de réalisation, le signal de requête peut en outre indiquer une autre caractéristique du segment demandé, comme la langue de l'audio ou la présence ou l'absence de sous-titres. Cette requête de segment est traitée par un serveur de requêtes 234 (REQUEST SERVER) du module de transmission de segments 204, qui est par exemple un serveur TCP, la requête étant reçue par l'intermédiaire d'une interface TOP. Le serveur de requêtes 234 fournit à son tour au système de fichiers 220 une instruction de lecture appropriée de sorte que le segment sélectionné est fourni au constructeur de paquets 222. Dans certains modes de réalisation, la requête peut identifier une pluralité de segments à transmettre, et ces requêtes peuvent être traitées en pipeline dans le module de transmission de segments 204.The segment transmission module 204 further comprises an input 232 for receiving, from the video decoder 104, a request signal REQ comprising segment selection information identifying a segment to be transmitted to the decoder. In particular, the request signal REQ for example indicates the time of the segment, in other words the moment in the video stream, and a video quality level, in other words, the coding bit rate. For example, the video quality level is simply indicated by an identification in the request signal of the sequence of segments of the requested segment. In some embodiments, the request signal may further indicate another feature of the requested segment, such as the language of the audio or the presence or absence of subtitles. This segment request is processed by a request server 234 (REQUEST SERVER) of the segment transmission module 204, which is for example a TCP server, the request being received via a TOP interface. The request server 234 in turn provides the file system 220 with an appropriate read instruction so that the selected segment is provided to the packet constructor 222. In some embodiments, the request may identify a plurality of segments to be transmitted, and these requests can be pipelined in the segment transmission module 204.

B13020 Le signal de requête REQ provenant du décodeur indique aussi par exemple un niveau de codage FEC à utiliser pour la transmission du segment, et comme cela est représenté par une flèche 236 en figure 2, le module de génération FEC 226 est 5 contrôlé en conséquence pour adapter son niveau de codage FEC. En outre, le signal de requête REQ indique aussi par exemple un débit binaire de transmission avec lequel le segment doit être transmis, et comme cela est représenté par une flèche 238 en figure 2, l'interface de transmission 230 est contrôlée en 10 conséquence pour adapter le débit binaire de transmission. La figure 3 représente schématiquement les données de segments mémorisées dans le système de fichiers 220 de la figure 2 selon un exemple de réalisation. Dans l'exemple de la figure 3, le système de fichiers 220 mémorise, pour chacune des 15 séquences de segments SEQ(1) à SEQ(N) correspondant aux rangées en figure 3, des segments de vidéo 302 correspondant à des périodes temporelles tpl à tp(m) du flux de vidéo correspondant aux colonnes dans la figure 3. Les segments de la séquence SEQ(1) ont par exemple le débit binaire le plus élevé, et les 20 segments des autres séquences ont des débits binaires progressivement inférieurs jusqu'à la séquence N, qui a des segments ayant le débit binaire le plus bas. La requête reçue par le serveur de requêtes 232 de la figure 2 identifie par exemple la période temporelle du segment 25 à transmettre, par exemple l'une des périodes temporelles tpl à tp(m) en figure 3, et aussi le débit binaire du segment à transmettre, en d'autres termes en identifiant l'une des séquences SEQ(1) à SEQ(N). La figure 4 représente schématiquement le module de 30 génération de code FEC 226 de la figure 2 selon un exemple de réalisation. Par exemple, le code FEC est généré de la façon décrite dans la norme SMPTE 2022-1-2007 du SMPTE (Society' of Motion Picture and Television Engineers) publiée sous le titre "Forward Error Correction for Reàl-Time Video/Audio Transport 35 Over IP Networks", version du 24 Mai 2007, dont le contenu fait, B13020 12 partie de la présente description dans les limites où cela est autorisé par la loi. Comme est illustré en figure 4, pour un segment Si, comprenant des paquets de données P1 à PK, certains ou tous les 5 bits de données provenant de chacun d'un premier groupe de L de paquets de données P1 à PL sont par exemple utilisés pour générer un paquet FEC, FEC 1, certains ou tous les bits de donnéeà provenant de chacun d'un deuxième groupe de L de paquets de donnéeà PL+1 à P2L sont utilisés pour générer un paquet FEC, 10 FEC 2, etc., jusqu'à un paquet FEC final FEC M, où M est égal à K/L. A la place ou en plus, un paquet FEC FEC'l peut être généré sur la base des premiers paquets Pi, P -L+1, de chaque groupe de L paquets, et de façon similaire pour le deuxième paquet de chaque groupe de L paquets, etc., jusqu'à un paquet FEC FEC' L sur la 15 base des paquets de rang L, PLI P2L, paquets. Comme cela est connu dans la technique, les codes FEC ajoutent de la redondance aux données, ce qui permet de reconstruire du côté récepteur un ou plusieurs paquets perdus. 20 Selon les modes de réalisation décrits ici, le niveau du codage FEC peut être adapté sur la base de facteurs tels que le taux de perte de paquets détecté par le décodeur. Le niveau du codage FEC est par exemple détermini par au moins la quantité de redondance qui est ajoutée par les codes FEC, par exemple le 25 nombre de bits du code FEC. Par exemple, un niveau de codage FEC relativement, faible peut permettre de reconstruire une salve d'un nombre relativement faible de paquets perdus consécutifs dans chaque segment, alors qu'un niveau de codage FEC relativement élevé peut permettre de reconstruire un nombre relativement 30 élevé de paquets perdus consécutifs. Dans l'exemple de la figure 4, le niveau du code FEC est par exemple adapté en faisant varier le nombre de paquets L dans chaque groupe. Plus la valeur de L est élevée, plus le nombre de paquets pouvant être reconstruits dans une salve est 35 élevé. +En plus ou à. la place, le niveau du code FEC peut être etc., de chaque groupe de L 3013)932 B13020 13 adapté en fournissant un seul ou les deux types de paquets FEC, FEC 1 à FEC M et FEC11 à FEC'L. La figure 5 illustre plus en détail le décodeur de vidéo 104 de la figure 1 selon un exemple de réalisation. Comme cela est illustré, les paquets de données reçus du codeur de vidéo 102 par l'intermédiaire du ou des réseaux intermédiaires 106 sont fournis à un module de réception de segments 502, qui est par exemple un récepteur UDP. Le module de réception de segments 502 reconstruit les segments de vidéo sur la base des données de vidéo et du code FEC. Comme cela a été indiqué précédemment, ces données de vidéo peuvent comprendre seulement des données de vidéo, ou une combinaison de données de vidéo et d'autres données comme des données audio et/ou de texte. Par exemple, les données de vidéo (VIDEO) et le code. FEC sont séparés et fournis à un module de décodage FEC 503, qui vérifie s'il y a des paquets manquants, et tente de reconstruire les éventuels paquets manquants sur la base du code FEC. Si tous les paquets d'un segment de vidéo donné ont été reçus ou reconstruits avec succès, le segment complet est transmis à un module de génération de flux de vidéo 504, et en particulier à un tampon de réception 506 de ce module. Toutefois, s'il n'est pas possible de reconstruire la totalité des paquets du segment, le segment complet est par exemple abandonné. Les segments provenant du tampon 506 sont ensuite traités par un dispositif de désegmentation 508 (DESEGMENTER), qui recombine les segments pour former un flux de vidéo codé, qui est ensuite décodé par un décodeur 510 (DECODER) pour fournir un flux de vidéo (VIDEO) au niveau d'une sortie du décodeur.B13020 The request signal REQ from the decoder also indicates, for example, a level of FEC coding to be used for the transmission of the segment, and as represented by an arrow 236 in FIG. 2, the FEC generation module 226 is controlled accordingly. to adapt its FEC coding level. In addition, the request signal REQ also indicates, for example, a transmission bit rate with which the segment is to be transmitted, and as represented by an arrow 238 in FIG. 2, the transmission interface 230 is consequently controlled for adapt the transmission bit rate. FIG. 3 diagrammatically represents the segment data stored in the file system 220 of FIG. 2 according to an exemplary embodiment. In the example of FIG. 3, the file system 220 stores, for each of the 15 segment sequences SEQ (1) to SEQ (N) corresponding to the rows in FIG. 3, video segments 302 corresponding to time periods tpl at tp (m) of the video stream corresponding to the columns in FIG. 3. The segments of the sequence SEQ (1) have for example the highest bit rate, and the segments of the other sequences have progressively lower bit rates up to to the N sequence, which has segments having the lowest bit rate. The request received by the request server 232 of FIG. 2 for example identifies the time period of the segment 25 to be transmitted, for example one of the time periods tpl at tp (m) in FIG. 3, and also the bit rate of the segment to transmit, in other words by identifying one of the sequences SEQ (1) to SEQ (N). Fig. 4 schematically illustrates the FEC code generation module 226 of Fig. 2 according to an exemplary embodiment. For example, the FEC code is generated as described in SMPTE 2022-1-2007 of the Society of Motion Picture and Television Engineers (SMPTE) published under the title "Forward Error Correction for Audio-Video / Audio Transport". Over IP Networks ", version of May 24, 2007, the contents of which, B13020 12 part of the present description to the extent permitted by law. As is illustrated in FIG. 4, for a segment Si comprising data packets P1 to PK, some or all the data bits from each of a first group of L of data packets P1 to PL are used, for example. to generate a FEC packet, FEC 1, some or all of the data bits from each of a second L group of PL + 1 to P2L data packets are used to generate a FEC packet, FEC 2, etc., up to a final FEC packet FEC M, where M is equal to K / L. Instead, or in addition, a FEC FEC'l packet may be generated based on the first Pi, P -L + 1 packets of each group of L packets, and similarly for the second pack of each L group. packets, etc., up to a FEC FEC 'L packet based on L-rank packets, PLI P2L, packets. As is known in the art, the FEC codes add redundancy to the data, which makes it possible to reconstruct on the receiver side one or more lost packets. According to the embodiments described herein, the level of FEC coding may be adapted based on such factors as the packet loss rate detected by the decoder. The level of the FEC coding is for example determined by at least the amount of redundancy that is added by the FEC codes, for example the number of bits of the FEC code. For example, a relatively low FEC coding level may be able to reconstruct a burst of a relatively small number of consecutive lost packets in each segment, whereas a relatively high FEC coding level may make it possible to reconstruct a relatively large number of packets. consecutive lost packets. In the example of FIG. 4, the level of the FEC code is for example adapted by varying the number of packets L in each group. The higher the value of L, the greater the number of packets that can be reconstructed in a burst. + In addition or to. Instead, the level of the FEC code may be, etc., of each group of L 3013 suitable by providing one or both of the types of FEC packets, FEC 1 to FEC M and FEC11 to FEC'L. Figure 5 illustrates in more detail the video decoder 104 of Figure 1 according to an exemplary embodiment. As illustrated, the data packets received from the video encoder 102 through the intermediate network (s) 106 are provided to a segment receiving module 502, which is for example a UDP receiver. The segment receiving module 502 reconstructs the video segments based on the video data and the FEC code. As previously indicated, this video data may comprise only video data, or a combination of video data and other data such as audio and / or text data. For example, video data (VIDEO) and code. FECs are separated and provided to an FEC 503 decoding module, which checks for missing packets, and attempts to reconstruct any missing packets based on the FEC code. If all the packets of a given video segment have been successfully received or reconstructed, the entire segment is transmitted to a video stream generation module 504, and in particular to a receive buffer 506 of that module. However, if it is not possible to reconstruct all the packets of the segment, the complete segment is for example abandoned. The segments from buffer 506 are then processed by a desegmentation device 508 (DESEGMENTER), which recombines the segments to form a coded video stream, which is then decoded by a decoder 510 (DECODER) to provide a video stream (VIDEO ) at an output of the decoder.

Le module de réception de segments 502 fournit par exemple des informations de réception de segment à un module de génération de requêtes 512, et en particulier à une mémoire 514 (HISTORY) 'mémorisant un historique d'informations de réception. Ces informations de réception de segments comprennent par -35 exemple un ou plusieurs éléments parmi une heure de téléchar- B13020 14 gement, une latence, le nombre de paquets _perdus,- etc. pour chaque segment reçu. Par exemple, l'heure de téléchargement et la latence pourraient être calculées en utilisant un marquage temporel des paquets par le codeur 102. L'historique d'informa- ) tions de réception indique aussi par exemple si un segment n'a pas été reçu avec succès en raison du nombre de paquets perdus. Ces informations mémorisées dans la mémoire 514 sont utilisées par un générateur de requêtes 516 (REQUEST GEN) pour demander un ou plusieurs segments futurs. En particulier, la requête identifie par exemple la période temporelle du segment qui est demandée, ainsi que le débit binaire de codage du segment, et un élément ou plus parmi le niveau de codage FEC et le débit binaire de transmission à utiliser pour le segment. Cette requête est ensuite transmise par l'intermédiaire des réseaux intermédiaires à l'entrée 232 du module de transmission de segments 204 comme cela a été décrit précédemment. Par exemple, si un ou plusieurs segments passés ont été perdus et/ou étaient proches d'être perdus en raison du taux de perte de paquets, le générateur de requêtes 516 peut demander un segment ayant un débit binaire de codage inférieur et/ou un niveau de codage FEC supérieur. Dans certains cas, par exemple dans le cas d'une transmission par un satellite ou une autre interface sans fil, le taux de perte de paquets peut être un pourcentage des paquets transmis qui va dépendre des conditions de transmission comme la couverture nuageuse. Par conséquent, une augmentation du niveau de codage FEC sans réduction du débit binaire de codage peut représenter la solution préférée pour maintenir une qualité de vidéo et pour conserver une latence faible. En variante, dans le cas d'une transmission par l'inter- médiaire d'un réseau à commutation de paquets, le taux de perte de paquets peut être très élevé si la capacité de largeur de bande est dépassée, et dans un tel cas une réduction du débit binaire de codage peut représenter la solution préférée. En outre, comme cela est représenté par une flèche 518 35 en figure 5, le module de vénération de requêtes 512 reçoit B13020 15 aussi par exemple une indication du nombre de segments dàns le tampon 506, et si ce nombre' descend en dessous d'un seuil inférieur ou vient au-dessus d'un seuil supérieur, la requête peut indiquer une augmentation ou une diminution correspondante du débit binaire de transmission pour un segment futur. Il sera clair pour l'homme de l'art quex certains éléments du codeur et du décodeur peuvent être mis en oeuvre par un circuit de matériel spécifique, comme un ASIC (circuit intégré spécifique d'application) ou un FPGA, alors que d'autres fonctionnalités peuvent être mises en oeuvre par du logiciel exécuté par un processeur approprié. La figure 6 illustre un exemple de dispositif de traitement 600 adapté à une mise en oeuvre, basée sur du logiciel, d'au moins certaines des fonctions du codeur de vidéo 102, ou d'au moins certaines des fonctions du décodeur 104. Par exemple, le dispositif de traitement 600 peut être utilisé pour mettre en oeuvre au moins partiellement les fonctions du serveur de requêtes 234 et/ou du module de génération de code FEC 226 du codeur 102, ou du module de génération de requêtes 512 du décodeur 104. Le dispositif de traitement 600 comprend un dispositif de traitement 602 (P) comprenant un ou plusieurs processeurs contrôle d'instructions de logiciel mémorisées dans une d'instructions 604 (INSTR MEM). Le dispositif de traitement 602 est aussi couplé à une mémoire 604 (M), qui, dans le cas du codeur de vidéo 102, peut mémoriser, par exemple le système de fichiers 220, et dans le cas du décodeur 104, peut mémoriser par exemple les données d'historique 514. Une interface d'utilisateur 606 (USER INTERFACE) est aussi par exemple prévue, ce qui permet à un opérateur d'adapter certains paramètres, comme l'algorithme appliqué par le générateur de requêtes 516 afin de déterminer les paramètres de requête de segment. En outre, une interface de communication 608 (COMS INTERFACE) peut être couplée au dispositif de traitement 602 ce qui permet la réception et/ou l'émisCion de données. sous le mémoire B13020 16 Un avantage des modes de réalisation décrits ici est qu'un flux de vidéo peut être transmis à un débit binaire effectif relativement élevé. En particulier, en raison des fonctionnalités combinées consistant à fournir une pluralité de 5 séquences de segments ayant chacune un débit binaire de codage différent, et à utiliser du code FEC avec chaque segment, le débit binaire de transmission effectif peut être très élevé, même lorsqu'il y a une latence relativement élevée et variable dans le réseau, et/ou un taux de perte de paquets relativement 10 élevé et variable dans le réseau. Avec la description ainsi faite d'au moins un mode de réalisation illustratif, diverses altérations, modifications et améliorations apparaîtront facilement à l'homme de l'art.The segment receiving module 502 for example provides segment reception information to a request generation module 512, and in particular to a memory 514 (HISTORY) 'storing a reception information history. This segment receive information includes, for example, one or more of an upload time, latency, the number of packets lost, and so on. for each segment received. For example, download time and latency could be calculated using time stamping of packets by encoder 102. The reception information history also indicates, for example, whether a segment has not been received. successfully because of the number of packets lost. This information stored in the memory 514 is used by a request generator 516 (REQUEST GEN) to request one or more future segments. In particular, the request identifies for example the time period of the segment that is requested, as well as the segment encoding bit rate, and one or more of the FEC coding level and the transmission bit rate to be used for the segment. This request is then transmitted via the intermediate networks to the input 232 of the segment transmission module 204 as previously described. For example, if one or more past segments have been lost and / or are close to being lost due to the packet loss rate, the request generator 516 may request a segment having a lower coding bit rate and / or a higher FEC coding level. In some cases, for example in the case of transmission by a satellite or other wireless interface, the packet loss rate may be a percentage of transmitted packets that will depend on transmission conditions such as cloud cover. Therefore, increasing the FEC coding level without reducing the coding bit rate may be the preferred solution for maintaining video quality and maintaining low latency. Alternatively, in the case of transmission via a packet-switched network, the packet loss rate can be very high if the bandwidth capacity is exceeded, and in such a case a reduction in the coding bit rate may be the preferred solution. Further, as shown by an arrow 518 in FIG. 5, the request veneration module 512 also receives B13020, for example, an indication of the number of segments in the buffer 506, and if this number falls below a lower threshold or comes above an upper threshold, the request may indicate a corresponding increase or decrease in the transmission bit rate for a future segment. It will be clear to those skilled in the art that certain elements of the encoder and decoder may be implemented by a specific hardware circuit, such as an ASIC (application specific integrated circuit) or an FPGA, while other functionalities may be implemented by software executed by a suitable processor. FIG. 6 illustrates an exemplary processing device 600 adapted to a software-based implementation of at least some of the functions of the video encoder 102, or at least some of the functions of the decoder 104. For example the processing device 600 may be used to at least partially implement the functions of the request server 234 and / or the FEC code generation module 226 of the encoder 102, or the request generation module 512 of the decoder 104. The processing device 600 comprises a processing device 602 (P) comprising one or more software instruction control processors stored in an instruction 604 (MEM INSTR). The processing device 602 is also coupled to a memory 604 (M), which, in the case of the video encoder 102, can store, for example, the file system 220, and in the case of the decoder 104, can store, for example the historical data 514. A user interface 606 (USER INTERFACE) is also for example provided, which allows an operator to adapt certain parameters, such as the algorithm applied by the request generator 516 to determine the segment query parameters. In addition, a communication interface 608 (COMS INTERFACE) may be coupled to the processing device 602 which allows the reception and / or transmission of data. An advantage of the embodiments described herein is that a video stream can be transmitted at a relatively high effective bit rate. In particular, because of the combined functionality of providing a plurality of segment sequences each having a different coding bit rate, and of using FEC code with each segment, the actual transmission bit rate can be very high, even when there is relatively high and variable latency in the network, and / or a relatively high and variable packet loss rate in the network. With the description thus made of at least one illustrative embodiment, various alterations, modifications and improvements will readily occur to those skilled in the art.

Claims (15)

REVENDICATIONS1. Codeur de vidéo comprenant un module de génération de segments (202) agencé pour générer une première séquence de segments de vidéo (SEQ(1)) sur la base d'un premier flux de vidéo (EVS(1)) codé à un premier débit binaire et une deuxième séquence de segments de vidéo (SEQ(2)) sur la base d'un deuxième flux de vidéo (EVS(2)) codé à un deuxième débit binaire différent du premier débit binaire ; et un module de transmission de segments (204) agencé pour : recevoir, à partir d'un décodeur de vidéo, un signal de requête de segment (REQ) identifiant un segment de vidéo (SEG) sélectionné de la première ou de la deuxième séquence de segments ; générer du code de correction d'erreur directe pour le segment de vidéo sélectionné ; et transmettre le segment de vidéo sélectionné et le code de correction d'erreur directe généré.REVENDICATIONS1. A video encoder comprising a segment generation module (202) arranged to generate a first sequence of video segments (SEQ (1)) based on a first video stream (EVS (1)) encoded at a first rate binary and a second sequence of video segments (SEQ (2)) based on a second video stream (EVS (2)) encoded at a second bit rate different from the first bit rate; and a segment transmission module (204) arranged to receive, from a video decoder, a segment request signal (REQ) identifying a selected video segment (SEG) of the first or second sequence segments; generate forward error correction code for the selected video segment; and transmit the selected video segment and the generated forward error correction code. 2. Codeur de vidéo selon la revendication 1, dans 20 lequel le signal de requête de segment (REQ) indique un niveau de décodage de correction d'erreur directe à utiliser pour le segment de vidéo sélectionné, et dans lequel le module de transmission de segments (204) est agencé pour générer le code de correction d'erreur directe sur la base dudit niveau. 25The video encoder of claim 1, wherein the segment request signal (REQ) indicates a forward error correction decoding level to be used for the selected video segment, and wherein the transmission module segments (204) is arranged to generate the forward error correction code based on said level. 25 3. Codeur de vidéo selon la revendication 2, dahS lequel le module de transmission de segments (204) est agencé pour générer le code de correction d'erreur directe avec un nombre de bits basé sur ledit niveau.The video encoder of claim 2, wherein the segment transmission module (204) is arranged to generate the forward error correction code with a number of bits based on said level. 4. Codeur de vidéo selon l'une quelconque des revendi30 cations 1 à 3, dans lequel le signal de requête de segment (REQ) indique un débit binaire de transmission à utiliser pour la 'transmission du segment de vidéo sélectionné, et dans lequel le module de transmission de segments (204) est agencé pour B13020 18 transmettre le segment de vidéo sélectionné au débit binaire de transmission indiqué.A video encoder according to any one of claims 1 to 3, wherein the segment request signal (REQ) indicates a transmission bit rate to be used for the transmission of the selected video segment, and wherein the Segment transmission module (204) is arranged to transmit the selected video segment to the indicated transmission bit rate. 5. Codeur de vidéo selon la revendication 4, dans lequel le module de transmission de segments (204) est agencé 5 pour séparer le segment de vidéo sélectionné en une pluralité de paquets de données, et dans lequel la transmission du segment de vidéo sélectionné audit débit binaire de transmission comprend une transmission de chaque paquet de la pluralité de paquets de données audit débit binaire de transmission. 10The video encoder according to claim 4, wherein the segment transmission module (204) is arranged to separate the selected video segment into a plurality of data packets, and wherein the transmission of the selected video segment to said transmission bit rate comprises transmitting each packet of the plurality of data packets to said transmission bit rate. 10 6. Codeur de vidéo selon l'une quelconque des revendications 1 à 5, dans lequel les premier et deuxième flux de vidéo codés sont générés sur la base d'un même flux de vidéo initial.The video encoder of any one of claims 1 to 5, wherein the first and second encoded video streams are generated based on the same initial video stream. 7. Codeur de vidéo selon la revendication 6, dans 15 lequel les segments de vidéo de la première séquence de segments de vidéo (SEQ(1)) correspondent à des périodes temporelles (tpl à tp(m)) du flux de vidéo initial, et les segments de vidéo de la deuxième séquence de segments de vidéo (SEQ(2)) correspondent aux mêmes périodes temporelles du flux de vidéo initial.The video encoder of claim 6, wherein the video segments of the first video segment sequence (SEQ (1)) correspond to time periods (tp1 to tp (m)) of the initial video stream, and the video segments of the second sequence of video segments (SEQ (2)) correspond to the same time periods of the initial video stream. 8. Décodeur de vidéo comprenant : un module de réception de segments (502) agencé pour reconstruire au moins partiellement un segment ,de vidéo sur la base d'un bloc de données reçu comprenant des données de segment codées à un premier débit binaire et du code de correction d'erreur directe ; et un module de requête de segments (512) agencé pour générer, sur la base de la reconstruction d'un ou plusieurs segments de vidéo précédents, une requête pour un autre segment de vidéo codé à un deuxième débit binaire sélectionné différent du premier débit binaire.A video decoder comprising: a segment receiving module (502) arranged to at least partially reconstruct a segment of video based on a received data block comprising segment data encoded at a first bit rate and the direct error correction code; and a segment request module (512) arranged to generate, based on the reconstruction of one or more previous video segments, a request for another video segment encoded at a second selected bit rate different from the first bit rate . 9. Décodeur de vidéo selon la revendication 8, dans lequel les données de segments comprennent une pluralité de paquets de données, et le deuxième débit binaire est sélectionné sur la base d'un taux de perte des paquets de données.B13020 19The video decoder of claim 8, wherein the segment data comprises a plurality of data packets, and the second bit rate is selected based on a loss rate of the data packets. 10. Décodeur de vidéo selon la revendication 8 ou 9, dans lequel la requête indique en outre un niveau de correction d'erreur directe à utiliser pour l'autre segment de vidéo.The video decoder of claim 8 or 9, wherein the request further indicates a forward error correction level to be used for the other video segment. 11. Décodeur de vidéo selon la revendication 10, dans 5 lequel les données de segments comprennent une pluralité de paquets de données, et ledit niveau> de correction d'erreur directe est sélectionné sur la base d'un taux de perte des paquets de données.The video decoder of claim 10, wherein the segment data comprises a plurality of data packets, and said forward error correction level is selected based on a loss rate of the data packets. . 12. Décodeur de vidéo selon l'une quelconque des 10 revendications 8 à 11, comprenant en outre : un tampon de segments de vidéo (506) agencé pour mémoriser des segments reçus avec succès par le module de réception de segments (502), la requête indiquant en outre un débit binaire de transmission à utiliser pour la transmission de 15 l'autre segment vidéo, le débit binaire de transmission étant sélectionné sur la base de la quantité de données mémorisée dans le tampon de segments de vidéo.The video decoder of any one of claims 8 to 11, further comprising: a video segment buffer (506) arranged to store segments successfully received by the segment receiving module (502), the further indicating a transmission bit rate to be used for transmission of the other video segment, the transmission bit rate being selected on the basis of the amount of data stored in the video segment buffer. 13. Système de transmission de vidéo comprenant : le codeur de vidéo selon l'une quelconque des 20 revendications 1 à 7 ; le décodeur de vidéo selon l'une quelconque des revendications 8 à 12 ; et un ou plusieurs réseaux intermédiy.ires (106), interconnectant le codeur de vidéo et le décodeur de vidéo, par 25 l'intermédiaire desquels le segment de vidéo sélectionné est transmis par le codeur de vidéo etile bloc de données est reçu par le décodeur de vidéo.A video transmission system comprising: the video encoder according to any one of claims 1 to 7; the video decoder according to any one of claims 8 to 12; and one or more intermediate networks (106), interconnecting the video encoder and the video decoder, through which the selected video segment is transmitted by the video encoder and the data block is received by the decoder of video. 14. Procédé de codage de vidéo comprenant : générer, par un module de génération de segments 30 (202), une première séquence de segments de vidéo (SEQ(1)) sur la base d'un premier flux de vidéo (EVS(1)) codé à un premier débit binaire et une deuxième séquence de segments de vidéo (SEQ(2)) sur la base d'un deuxième flux de vidéo (EVS(2)) codé à un deuxième débit binaire différent du premier débit binaire ;B13020 20 recevoir, par un module de transmission de segments (204) à partir d'un décodeur de vidéo, un signal de requête de segment (REQ) identifiant un segment de vidéo (SEG) sélectionné dë la première ou de la deuxième séquence de segments ; ti générer, par le module de transmission de segments (204), du code de correction d'erreur directe pour le segment de - vidéo sélectionné ; et transmettre, par le module de transmission de segments (204), le segment de vidéo sélectionné et le code de correction 10 d'erreur directe généré.A video coding method comprising: generating, by a segment generation module (202), a first video segment sequence (SEQ (1)) based on a first video stream (EVS (1); )) encoded at a first bit rate and a second video segment sequence (SEQ (2)) based on a second video stream (EVS (2)) encoded at a second bit rate different from the first bit rate; B13020 receive, by a segment transmission module (204) from a video decoder, a segment request signal (REQ) identifying a selected video segment (SEG) of the first or the second sequence of segments; generating, by the segment transmission module (204), forward error correction code for the selected video segment; and transmitting, by the segment transmission module (204), the selected video segment and the forward error correction code generated. 15. Procédé de décodage de vidéo comprenant : reconstruire au moins partiellement, par un module de réception de segments (502), un segment de vidéo sur la base d'un bloc de données reçu comprenant des données de segment 15 codées à un premier débit binaire et du code de correction d'erreur directe ; et générer, par un module de requête de segments (512) sur la base de la reconstruction d'un ou plusieùrs segments de vidéo précédents, une requête pour un autre segment de vidéo 20 codé à un deuxième débit binaire sélectionné différent du premier débit binaire.A video decoding method comprising: at least partially reconstructing, by a segment receiving module (502), a video segment based on a received data block including segment data encoded at a first rate binary and direct error correction code; and generating, by a segment request module (512) based on the reconstruction of one or more previous video segments, a request for another video segment encoded at a second selected bit rate different from the first bit rate .
FR1361568A 2013-11-25 2013-11-25 VIDEO TRANSMISSION SYSTEM Active FR3013932B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1361568A FR3013932B1 (en) 2013-11-25 2013-11-25 VIDEO TRANSMISSION SYSTEM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1361568A FR3013932B1 (en) 2013-11-25 2013-11-25 VIDEO TRANSMISSION SYSTEM

Publications (2)

Publication Number Publication Date
FR3013932A1 true FR3013932A1 (en) 2015-05-29
FR3013932B1 FR3013932B1 (en) 2017-06-09

Family

ID=50639600

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1361568A Active FR3013932B1 (en) 2013-11-25 2013-11-25 VIDEO TRANSMISSION SYSTEM

Country Status (1)

Country Link
FR (1) FR3013932B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0713302A2 (en) * 1994-11-16 1996-05-22 AT&T Corp. Adaptive forward error correction system using block codes
EP1271830A2 (en) * 2001-06-28 2003-01-02 Microsoft Corporation Negotiated/dynamic error correction for streamed media
US20100166064A1 (en) * 2002-12-10 2010-07-01 Perlman Steve G System and Method for Utilizing Forward Error Correction with Video Compression
EP2490447A1 (en) * 2011-02-16 2012-08-22 British Telecommunications Public Limited Company Compact cumulative bit curves
US20120254457A1 (en) * 2011-04-03 2012-10-04 Jeremiah Condon System and method of adaptive transport of multimedia data
US8433969B1 (en) * 2010-11-18 2013-04-30 Applied Micro Circuits Corporation Forward error correction (FEC) auto negotiation for an optical transport network (OTN)

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0713302A2 (en) * 1994-11-16 1996-05-22 AT&T Corp. Adaptive forward error correction system using block codes
EP1271830A2 (en) * 2001-06-28 2003-01-02 Microsoft Corporation Negotiated/dynamic error correction for streamed media
US20100166064A1 (en) * 2002-12-10 2010-07-01 Perlman Steve G System and Method for Utilizing Forward Error Correction with Video Compression
US8433969B1 (en) * 2010-11-18 2013-04-30 Applied Micro Circuits Corporation Forward error correction (FEC) auto negotiation for an optical transport network (OTN)
EP2490447A1 (en) * 2011-02-16 2012-08-22 British Telecommunications Public Limited Company Compact cumulative bit curves
US20120254457A1 (en) * 2011-04-03 2012-10-04 Jeremiah Condon System and method of adaptive transport of multimedia data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AYANOGLU E: "Adaptive ARQ/FEC for multitone transmission in wireless networks", GLOBAL TELECOMMUNICATIONS CONFERENCE, 1995. CONFERENCE RECORD. COMMUNI CATION THEORY MINI-CONFERENCE, GLOBECOM '95., IEEE SINGAPORE 13-17 NOV. 1995, NEW YORK, NY, USA,IEEE, US, vol. 3, 13 November 1995 (1995-11-13), pages 2278 - 2283, XP010164657, ISBN: 978-0-7803-2509-8, DOI: 10.1109/GLOCOM.1995.502807 *

Also Published As

Publication number Publication date
FR3013932B1 (en) 2017-06-09

Similar Documents

Publication Publication Date Title
CN109729439B (en) Real-time video transmission method
US7957465B2 (en) Moving picture data code conversion/transmission method and device, code conversion/reception method and device
EP2036359B1 (en) Method for determining protection and compression parameters for the transmission of multimedia data over a wireless channel
US9009346B2 (en) Systems and methods of communication using a message header that includes header flags
US10778257B2 (en) Of invention. fees transmitted by check or draft are
FR2936926A1 (en) SYSTEM AND METHOD FOR DETERMINING ENCODING PARAMETERS
US9516390B2 (en) Scaling video delivery
RU2009116472A (en) DYNAMIC MODIFICATION OF VIDEO PROPERTIES
FR2908585A1 (en) Coded data i.e. video, transmitting method for telecommunication system, involves determining subset of data of parameters of buffer memory relative to flow measurement of network card representing bandwidth useable for network
FR2977101A1 (en) RETRANSMISSION OF DATA LOST BETWEEN A TRANSMITTER AND A RECEIVER
CN106993197B (en) A kind of frame losing method based on encoder
EP1172958A1 (en) Communication system, transmitter and method against transmission errors
FR2940491A1 (en) INTERACTIVE METHOD SYSTEM FOR THE TRANSMISSION ON A LOW-RATE NETWORK OF KEY IMAGES SENSITIZED IN A VIDEO STREAM
CN105409151A (en) Information processing device, information processing method, and program
FR2922401A1 (en) DEVICE FOR CONTINUOUSLY RECEIVING AUDIO AND / OR VIDEO DATA PACKETS
FR3013932A1 (en)
JP2011172153A (en) Media encoding and transmitting apparatus
CN116800371A (en) Data processing method, device, equipment and readable storage medium
US20110242276A1 (en) Video Content Distribution
FR2923970A1 (en) METHOD AND DEVICE FOR FORMING, TRANSFERING AND RECEIVING TRANSPORT PACKETS ENCAPSULATING DATA REPRESENTATIVE OF A SEQUENCE OF IMAGES
FR2903272A1 (en) Operating parameter e.g. compression rate, determining method for transmitting e.g. multimedia data, involves selecting optimal sensitivity value that is defined by taking into account of desired source flow and compression rate
US10880554B2 (en) Bit stream management in video communication
EP3843409A1 (en) Allocation method for low-speed link
Zhao Design and implementation of video surveillance system based on CDMA cellular wireless networks
Smirnov et al. Exploring the Dynamics of Data Transmission in 5G Networks: A Conceptual Analysis

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

CD Change of name or company name

Owner name: KEEPIXO, FR

Effective date: 20180525

TP Transmission of property

Owner name: KEEPIXO, FR

Effective date: 20180525

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

TP Transmission of property

Owner name: ATEME, FR

Effective date: 20220601

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11