FR2923124A1 - Procede et dispositif de determination de la valeur d'un delai a appliquer entre l'envoi d'un premier ensemble de donnees et l'envoi d'un second ensemble de donnees - Google Patents

Procede et dispositif de determination de la valeur d'un delai a appliquer entre l'envoi d'un premier ensemble de donnees et l'envoi d'un second ensemble de donnees Download PDF

Info

Publication number
FR2923124A1
FR2923124A1 FR0707545A FR0707545A FR2923124A1 FR 2923124 A1 FR2923124 A1 FR 2923124A1 FR 0707545 A FR0707545 A FR 0707545A FR 0707545 A FR0707545 A FR 0707545A FR 2923124 A1 FR2923124 A1 FR 2923124A1
Authority
FR
France
Prior art keywords
data
resolution
delay
value
level
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.)
Pending
Application number
FR0707545A
Other languages
English (en)
Inventor
Leannec Fabrice Le
Patrice Onno
Xavier Henocq
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0707545A priority Critical patent/FR2923124A1/fr
Priority to PCT/EP2008/064478 priority patent/WO2009053475A1/fr
Priority to US12/674,415 priority patent/US8347342B2/en
Publication of FR2923124A1 publication Critical patent/FR2923124A1/fr
Priority to US13/684,940 priority patent/US8813157B2/en
Pending legal-status Critical Current

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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/2625Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for delaying content or additional data distribution, e.g. because of an extended sport event
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne un procédé et un dispositif de détermination de la valeur d'un délai à appliquer entre l'envoi d'un premier ensemble de données et l'envoi d'un second ensemble de données, les données étant représentatives d'une séquence d'images codées, les ensembles de données étant constitués de sous ensembles de données, les images codées étant codées selon un premier niveau de résolution et au moins un second niveau de résolution supérieure au premier niveau de résolution, les sous ensembles de données comprenant des données d'un niveau de résolution. Selon l'invention, on :- obtient (E506) des premier et second ensembles de données,- détermine (E507) la valeur du délai, la valeur du délai étant dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données du premier ensemble de données qui comprennent des données du second ou d'un second niveau de résolution.

Description

1 La présente invention concerne un procédé de détermination de la valeur d'un délai à appliquer entre l'envoi d'un premier ensemble de données et l'envoi d'un second ensemble de données. Dans les systèmes de transmission de flux vidéo, il est nécessaire, pour un serveur vidéo, de cadencer l'envoi des données vers un dispositif de réception de manière à ce que le terminal de réception dispose des données au moment où celles- ci doivent être décodées ou reproduites. Si le serveur vidéo envoie les données bien avant que celles-ci doivent être reproduites, le dispositif de réception doit disposer d'une mémoire importante pour mémoriser les données avant leur reproduction. Le format de fichier ISO MPEG-4 dédié à SVC fournit des informations temporelles aidant à déterminer les moments auxquels les données doivent êtres envoyées. Ce format de fichier est actuellement en cours de standardisation: ISO/IEC 14496-15/FPDAM 2 (SVC File Format) , D. Singer, M. Z. Visharam, Y.- K. Wang, T. Rathgen, MPEG-4/Systems, MPEG document number N9283. Lorsque le format de fichier ne fournit pas les informations temporelles, il est difficile de cadencer l'envoi des données. De plus, de nouveaux formats de codage permettent de coder des séquences d'images selon différents niveaux de résolution. Ceci est par exemple le cas du format de codage appelé codage SVC et décrit dans le document de T. Wiegand, G. Sullivan, J. Reichel, H. Schwarz, and M. Wien. Scalable Video Coding - Joint Draft 10 of SVC Amendment (revision 2). Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, San Jose, California, April 2007. Document JVT-W201. Ces différents niveaux de résolution complexifient le cadencement l'envoi des données. L'invention a pour but de résoudre les inconvénients de l'art antérieur en proposant un procédé et un dispositif de qui soit apte à déterminer à quel instant doivent être envoyées des données d'une séquence vidéo codée selon différents niveaux de résolution sans que le format de codage de la séquence vidéo codée comprenne nécessairement des marqueurs temporels qui permettent de cadencer l'envoi des données. A cette fin, selon un premier aspect, l'invention propose un procédé de détermination de la valeur d'un délai à appliquer entre l'envoi d'un premier ensemble de données et l'envoi d'un second ensemble de données, les données étant représentatives d'une séquence d'images codées, les ensembles de données étant constitués de sous ensembles de données, les images codées étant codées selon un premier niveau de résolution et au moins un second niveau de résolution supérieure au premier niveau de résolution, les sous ensembles de données comprenant des données d'un niveau de résolution, caractérisé en ce que le procédé comporte les étapes de : - obtention des premier et second ensembles de données, - détermination de la valeur du délai, la valeur du délai étant dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données du premier ensemble de données qui comprennent des données du second ou d'un second niveau de résolution. Corrélativement, la présente invention concerne un dispositif de détermination de la valeur d'un délai à appliquer entre l'envoi d'un premier ensemble de données et l'envoi d'un second ensemble de données, les données étant représentatives d'une séquence d'images codées, les ensembles de données étant constitués de sous ensembles de données, les images codées étant codées selon un premier niveau de résolution et au moins un second niveau de résolution supérieure au premier niveau de résolution, les sous ensembles de données comprenant des données d'un niveau de résolution, caractérisé en ce que le dispositif comporte : - des moyens d'obtention des premier et second ensembles de données, - des moyens de détermination de la valeur du délai, la valeur du délai étant dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données du premier ensemble de données qui comprennent des données du second ou d'un second niveau de résolution. Ainsi, il est possible de déterminer à quel instant doivent être envoyés les ensembles de données d'une séquence d'images codées sans que le format de codage de la séquence d'images codées comprenne des marqueurs temporels qui permettent de cadencer l'envoi des données. De plus, comme la valeur du délai est dépendante du nombre d'images décodées, il est possible de cadencer la transmission des ensembles de données pour une séquence d'images codées selon plusieurs niveaux de résolution. Selon un mode particulier de l'invention, la valeur du délai est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données du premier ensemble de données qui comprennent des données du premier niveau de résolution.
Ainsi, il est possible de déterminer à quel instant doivent être envoyés les ensembles de données d'une séquence d'images codées selon différents niveaux de résolution sans que le format de codage de la séquence d'images codées comprenne des marqueurs temporels qui permettent de cadencer l'envoi des données.
Selon un mode particulier de l'invention, la valeur du délai est en outre dépendante de la fréquence maximale de reproduction des images décodées sur un moyen d'affichage. Ainsi, le cadencement de l'envoi des ensembles données étant adapté à la fréquence de reproduction des images décodées, le dispositif qui reçoit les ensembles de données ne doit pas impérativement disposer d'une importante mémoire allouée au stockage des données. Selon un mode particulier de l'invention, les niveaux de résolution sont des niveaux de résolution spatiale ou qualitative et la valeur du délai est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données du premier ensemble de données qui comprennent des données du second ou d'un second niveau de résolution spatiale ou qualitative. Ainsi, il est possible de déterminer à quel instant doivent être envoyés les ensembles de données d'une séquence d'images codées selon différents niveaux de résolution sans que le format de codage de la séquence d'images codées comprenne des marqueurs temporels qui permettent de cadencer l'envoi des données. Selon un mode particulier de l'invention, les sous ensembles de données de chaque ensemble de données sont ordonnés et la valeur du délai est minimale si le premier sous ensemble de données compris dans le second ensemble de données contribue à la formation d'une même image décodée que le premier sous ensemble de données compris dans le premier ensemble de données. Ainsi, lorsque différents ensembles de données comprennent des données qui contribuent à la formation d'une même image décodée, le destinataire des ensembles de données dispose rapidement de l'ensemble des données nécessaire à la formation de l'image décodée.
Selon un mode particulier de l'invention, le dispositif de détermination de la valeur d'un délai à appliquer entre l'envoi d'un premier ensemble de données et l'envoi d'un second ensemble de données : 4 - détecte chaque sous ensemble de données du premier ensemble de données comprenant des données contribuant à la formation d'une image pour laquelle les précédents sous ensembles de données ne contribuent pas à la formation, -pour chaque sous ensemble de données détecté, incrémente la valeur d'un compteur associé au niveau de résolution des données comprises dans le sous ensemble détecté, et la valeur du délai est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles du premier ensemble de données qui comprennent des données du niveau de résolution dont le compteur associé a la valeur maximale.
Ainsi, la présente invention est simple à implémenter. Selon un mode particulier de l'invention, la séquence d'images codées est décomposée en un premier et un second groupe d'images codées, le premier et second ensembles de données comprennent des données représentatives du premier groupe d'images codées et le dispositif de détermination de la valeur d'un délai à appliquer entre l'envoi d'un premier ensemble de données et l'envoi d'un second ensemble de données : - obtient un troisième ensemble de données, - détermine, si les données comprises dans le troisième ensemble de données sont représentatives du premier groupe d'images, la valeur du délai à appliquer entre l'envoi du second ensemble de données et l'envoi du troisième ensemble de données ou détermine, si les données comprises dans le troisième ensemble de données sont représentatives du second groupe d'images, la valeur du délai à appliquer entre l'envoi du premier ensemble de données et l'envoi du troisième ensemble de données. Ainsi, la présente invention est particulièrement bien adaptée aux formats de codage vidéo dans lesquels les images sont codées par groupes d'images. Selon un mode particulier de l'invention, la séquence d'images codées est en outre codée selon un premier niveau de résolution temporelle et au moins un second niveau de résolution temporelle supérieure au premier niveau de résolution temporelle et si les données comprises dans le troisième ensemble de données sont représentatives du second groupe d'images, la valeur du délai à appliquer entre l'envoi du premier ensemble de données et l'envoi du troisième ensemble de données est fonction du premier niveau de résolution temporelle.
Ainsi, la présente invention s'adapte aux situations dans lesquelles les niveaux de résolution sont modifiés entre deux groupes d'images transférées. L'invention concerne aussi un programme d'ordinateur stocké sur un support d'informations, ledit programme comportant des instructions permettant de mettre en oeuvre le procédé précédemment décrit, lorsqu'il est chargé et exécuté par un système informatique. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels : la Fig. 1 représente un système de télécommunication dans lequel la présente invention est implémentée ; la Fig. 2 représente un dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données selon la présente invention ; la Fig. 3 représente l'ordre d'affichage d'images d'une séquence d'images codées au niveau du dispositif de réception ; la Fig. 4 représente l'ordre d'émission des images d'une séquence d'images codées par un serveur vidéo ; la Fig. 5 représente un algorithme d'émission d'ensembles de données selon la présente invention ; la Fig. 6 représente un algorithme de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données selon un premier mode de réalisation de la présente invention ; la Fig. 7 est une tableau représentant un exemple d'ensembles de données 25 composés respectivement d'au moins un sous ensemble de données ainsi que des compteurs d'images utilisés par la présente invention ; les Figs. 8a et 8b représentent un algorithme de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données selon un second mode de réalisation de la présente invention. 30 La Fig. 1 représente un système de télécommunication dans lequel la présente invention est implémentée. Dans la Fig. 1, un serveur de vidéo 10 émet des données à un dispositif de réception 20 par l'intermédiaire d'un réseau de télécommunication 50. Le réseau de télécommunication 50 est par exemple un réseau sans fil 802.1la ou b ou g, ou un réseau Ethernet, ou un réseau Internet. Le serveur de vidéo 10 émet des ensembles de données consécutifs avec un délai déterminé par un dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100.
Le dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100 est préférentiellement inclus dans le serveur de vidéo 10. Le dispositif de réception 20 est un client 20 du serveur de vidéo 10. Dans une variante de réalisation, le dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100 est distinct du serveur de vidéo 10.
Sur réception d'un requête émise par le dispositif de réception 20 et déduite d'une opération de l'utilisateur du dispositif de réception 20, le dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100 détermine des paramètres d'extraction d'au moins une partie d'une séquence vidéo à transmettre.
La requête est par exemple une requête confoilne au protocole RTSP, acronyme de Real-Time Streaming Protocol. La séquence vidéo est par exemple une séquence vidéo codée selon la méthode de codage telle que proposée dans le document T. Wiegand, G. Sullivan, J. Reichel, H. Schwarz, and M. Wien. Scalable Video Coding - Joint Draft 10 of SVC Amendment (revision 2). Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, San Jose, California, April 2007. Document JVT-W201. La séquence vidéo codée selon cette méthode prend la forme d'un flux binaire appelé par la suite train binaire SVC. Selon un mode de réalisation, le dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100 extrait des sous ensembles de données correspondants à la requête, encapsule les sous ensembles de données dans des ensembles de données, détermine le délai à appliquer entre le transfert de chaque ensemble de données et envoie les ensembles de données au dispositif de réception 20 en fonction des délais déterminés.
Dans le cas du codage SVC, un sous ensemble de données est appelé un NAL, acronyme de Network Abstract Layer. Un NAL est l'élément élémentaire du train binaire SVC. Un NAL comporte un entête et un champ comprenant soit des paramètres de codage de la séquence vidéo codée ou des données représentatives d'une image de la séquence vidéo codée ou des données représentatives d'une partie d'une image de la séquence vidéo codée. Un NAL est différent des données de type MPEG 4 en ce sens qu'il ne comprend pas de méta données comprises dans le format de fichier MPEG4 dédié à contenir des flux vidéos SVC tel que décrit dans le document ISO/IEC 14496-15/FPDAM 2 (SVC File Format) D. Singer, M. Z. Visharam, Y.-K. Wang, T. Rathgen, MPEG-4/Systems, MPEG document number N9283. Dans le cas du codage SVC, un ensemble de données est un ensemble comprenant au moins un NAL. La taille, en nombre d'octets, de chaque ensemble de données est ajustée de manière à ce que celle-ci soit inférieure à une valeur prédéterminée. Cette valeur prédéterminée est par exemple fonction d'une grandeur représentative du réseau de télécommunication 50. Cette grandeur est par exemple la grandeur MTU, acronyme de Maximum Transfer Unit , qui est définie comme la grandeur maximale d'un paquet avant fractionnement dudit paquet par les dispositifs constituant le réseau de télécommunication 50. Les ensembles de données sont préférentiellement transférés sous la forme de paquets conforme au protocole RTP, acronyme de Real time Transport Protocol . Le codage SVC prévoit de fournir une représentation vidéo sur plusieurs 20 niveaux de résolution ou scalable en anglais selon une dimension qualitative, une dimension temporelle et une dimension spatiale. Un niveau de résolution qualitative correspond à une qualité donnée, par exemple obtenue à partir d'un pas de quantification des données. Le plus bas niveau de résolution qualitative correspond à la qualité la plus basse, 25 le plus haut niveau de résolution qualitative correspond à la qualité la plus élevée. Un niveau de résolution spatiale correspond à un nombre donné de pixels reproduits après décodage. Le plus bas niveau de résolution spatiale correspond au plus petit nombre de pixels reproduits après décodage, le plus haut niveau de résolution spatiale correspond 30 au plus grand nombre de pixels reproduits après décodage. Un niveau de résolution temporelle correspond à un nombre donné d'images décodées reproduites par seconde. Le plus bas niveau de résolution temporelle correspond au plus petit nombre d'images décodées reproduites par seconde, le plus haut niveau de résolution 8 temporelle correspond au plus grand nombre d'images décodées reproduites par seconde. Un niveau de résolution temporelle donné supérieur à 0 est formé en intercalant des images à des instants temporels situés entre ceux des images du niveau de résolution temporelle inférieur.
Un train binaire SVC vidéo conforme au codage SVC comprend une couche de base ou niveau de résolution le plus bas compatible au format H.264, au-dessus de laquelle peuvent être codées une ou plusieurs couches de raffinement ou niveaux de résolution supérieurs, selon l'une des trois dimensions. Ces couches de raffinement correspondent à des niveaux de résolution qualitative ou temporelle ou spatiale. La Fig. 2 représente un dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données selon un mode de réalisation de la présente invention. Le dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100 est par exemple un ordinateur comportant un bus de communication 201 auquel sont reliés une unité centrale UC 200, une mémoire morte ROM 202, une mémoire vive RAM 203, un écran 204, un clavier 205, une interface réseau 206 avec le réseau de télécommunication 50, un disque dur DD 208 et un lecteur enregistreur de données CD lect/enr 209 sur un support amovible.
Il est à remarquer ici qu'en variante, le dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100 peut être constitué d'un ou plusieurs circuits intégrés dédiés qui sont aptes à mettre en oeuvre le procédé tel que décrit en référence à la Fig. 6 ou aux Figs. 8a et 8b. Ces circuits intégrés sont par exemple et de manière non limitative, intégrés dans un appareil de capture de séquences vidéo ou le serveur de vidéo 10. La mémoire morte ROM 202 mémorise entre autres le programme mettant en oeuvre le procédé de réalisation de l'invention qui sera décrit ultérieurement en référence à la Fig. 6 ou aux Figs. 8a et 8b. De manière plus générale, le programme selon la présente invention peut être mémorisé dans un moyen de stockage. Ce moyen de stockage est lisible par un ordinateur ou un microprocesseur 200. Ce moyen de stockage est intégré ou non au dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100, et peut être amovible.
Lors de la mise sous tension du dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100, ou lors du lancement du logiciel de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données, le programme est transféré de la mémoire morte ROM 202 vers la mémoire vive RAM 203 qui contient alors le code exécutable de l'invention ainsi que les données nécessaires à la mise en oeuvre dans un mode de réalisation de l'invention. Le dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100 comporte également un écran 204. L'interface réseau 206 permet la réception de requêtes du dispositif de réception 20 par l'intermédiaire du réseau de télécommunication 50. L'interface réseau 206 permet la transmission des ensembles de données par l'intermédiaire du réseau de télécommunication 50 au dispositif de réception 20. Le disque dur 208 mémorise les ensembles de données à transmettre. Le disque dur 208 mémorise aussi en variante le programme qui sera décrit ultérieurement en référence à la Fig. 6 ou aux Figs. 8a et 8b. Le lecteur/enregistreur de données 209 sur un moyen de mémorisation amovible est par exemple un lecteur/enregistreur de disques compacts. Le lecteur/enregistreur de données 209 est apte à lire le programme pour le transfert de celui-ci sur le disque dur 208. Le lecteur enregistreur de données 209 est aussi apte à lire les ensembles de données à transférer. La Fig. 3 représente l'ordre d'affichage d'images d'une séquence d'images codées au niveau du dispositif de réception. Dans la Fig. 3, deux niveaux de résolution spatiale ou qualitative niveau 0 et niveau 1 sont représentés.
Le niveau de résolution spatiale ou qualitative 0, appelé aussi niveau de base, représente une séquence d'images codées à son plus bas niveau de résolution spatiale ou qualitative et est compressé de façon compatible à la norme H264/AVC telle que décrite dans le document de G. Sullivan, T. Wiegand, and A. Luthra intitulé Text of ISO/IEC 14496 10 Advanced Video Coding 3rd Edition. ISO/IEC JTC 1/SC 29/WG 11, Redmond, WA, USA, July 2004. Le niveau de résolution spatiale ou qualitative 0 est composé d'images de type I, P et B. Les images B sont notées B(ti, 10). Une image B(ti, 10) est prédite temporellement à partir des images d'ancrage I(t0, 10) ou P(t0, 10) l'entourant, ainsi que des images B(tj, 10) avec j < i, localisées dans le même intervalle d'images d'ancrage I(t0, 10) ou P(t0, 10). Le niveau de résolution spatiale ou qualitative 0 est ainsi constitué des images I(t0, 10), B(t2, 10) B(tl, 10), B(t2, 10) et P(t0, 10) où 10 représente le niveau de résolution spatiale ou qualitative 0, ti, avec i=0 à 2 le niveau de résolution temporelle.
Le niveau de résolution spatiale ou qualitative 1 est un niveau de résolution spatiale ou qualitative supérieur au niveau de résolution spatiale ou qualitative O. Le niveau de résolution spatiale ou qualitative 1 est codé de façon prédictive par rapport au niveau de résolution spatiale ou qualitative O. En particulier, dans le cas d'un niveau de résolution spatiale 1, une étape de sur-échantillonage spatial intervient au cours de ces prédictions entre niveaux de résolution, aussi nommée prédiction inter layer. Le niveau de résolution spatiale ou qualitative 1 est ainsi constitué des images I(t0, 11), B(t2, 11) B(tl, 11), B(t2, 11) et P(t0, 11) où 11 représente le niveau de résolution spatiale ou qualitative 1, ti, avec i=0 à 3 le niveau de résolution temporelle. Le niveau de résolution spatiale ou qualitative 1 comporte en outre les images du niveau de résolution temporelle 3 notées B(t3,11). Les flèches notées 31 à 38 représentent l'ordre de visualisation de cette séquence d'images codées par le dispositif de réception 20. La Fig. 4 représente l'ordre d'émission des images d'une séquence d'images codées par un serveur vidéo.
La Fig. 4 représente les images d'un groupe d'images, classiquement appelé GOP, acronyme de Group Of Pictures , d'une séquence d'images codées SVC. La séquence d'images codées SVC contient deux niveaux de résolution spatiale ou qualitative niveau 0 et niveau 1. La séquence d'images codées est identique à celle présentée à la Fig. 3.
Comme cela a été précédemment mentionné en référence à la Fig. 3, une image est désignée par son type, son niveau de résolution temporelle et son niveau de résolution spatiale ou qualitative à laquelle elle appartient. Ainsi, Bk(t2, 11) représente une image de type B, de niveau de résolution temporelle 2 et appartenant au niveau de résolution spatiale ou qualitative 1. k est un indice qui identifie les images d'un même niveau de résolution spatiale ou qualitative. Au sein du niveau de résolution spatiale ou qualitative 0 et/ou du niveau de résolution spatiale ou qualitative 1, apparait l'ordre de transmission des images d'un GOP.
Cet ordre est fonction des dépendances existant entre les images d'un GOP d'une séquence d'images codées qui sont telles que l'ordre des images dans la séquence d'images avant codage est différent de l'ordre dans lequel les images doivent être décodées pour restituer la séquence d'images dans sa version reconstruite.
Dans ce mode de mise en oeuvre, l'ordre dans lequel sont transmis les sous ensembles de données correspond à l'ordre de décodage des sous ensembles de données transmis. De plus, pour qu'une image puisse être décodée, il faut que tous les sous ensembles de données servant à la prédiction des données de l'image soient reçus et décodés préalablement.
Ainsi, les images de la séquence d'images codées sont transmises dans l'ordre suivant : I°(t0,10), I°(t0,11), P1(t0,10), P'(t0,11), B2(tl,10), B2(tl,ll), B3(t2,10), B3(t2,11), B4(t2,10), B4(t2,11), B5(t3,11), B6(t3,11), B7(t3,11) et B8(t3,11). Dans la Fig. 4, chaque cercle comprenant un numéro indique l'ordre de transmission de l'image.
Il est à remarquer ici que le marquage temporel classique ou timestamp en anglais, présent dans les entêtes des paquets RTP ne reflète pas l'ordre de transmission des images selon la présente invention. La Fig. 5 représente un algorithme d'émission d'ensembles de données. Le présent algorithme est exécuté par le processeur 200 du dispositif de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données 100. A l'étape E500, le processeur 200 détecte la réception, par l'interface réseau 50, d'une requête RTSP émise par le dispositif client 20. A l'étape suivante E501, le processeur 200 détermine quelle est la séquence d'images codées demandée.
A l'étape suivante E502, le processeur 200 détermine le niveau de résolution spatiale et/ou qualitative ainsi que la résolution temporelle demandée dans la requête RTSP. A l'étape suivante E503, le processeur 200 se positionne au début du le train binaire SVC correspondant à la séquence d'images codées déterminée.
A l'étape suivante E504, le processeur 200 initialise des compteurs d'images à la valeur nulle. Un compteur d'image est associé à chaque niveau de résolution spatiale ou qualitative qui est inférieur ou égal au niveau correspondant à la requête RTSP. A l'étape suivante E505, le processeur 200 extrait les sous ensembles de données ou NALs du train binaire SVC qui correspondent à la requête RTSP.
A l'étape suivante E506, le processeur 200 forme des ensembles de données comprenant les sous ensembles de données. La taille des ensembles de données est ajustée de manière à ce que celle-ci soit inférieure à une valeur prédéterminée. Cette valeur prédéterminée est par exemple la grandeur MTU.
A l'étape suivante E507, le processeur 200 détermine la valeur du délai à appliquer entre l'envoi de deux ensembles de données consécutifs. Cette étape sera explicitée plus en détail en référence à la Fig. 6 ou en référence aux Figs. 8.a et 8.b. A l'étape suivante E508, le processeur 200 forme, à partir des ensembles de données, des paquets RTP. Ces paquets sont conformes à ceux décrits dans le document de l'IETF RTP Payload Format for SVC video - draft-ietf-avt-rtp-svc-01.txt . A l'étape suivante E509, le processeur 200 commande le transfert des paquets formés à partir des ensembles de données en respectant les délais déterminés. A l'étape suivante E510, le processeur 200 vérifie si d'autres sous ensembles de données sont à transférer. Si d'autres sous ensembles de données sont à transférer, le processeur 200 retourne à l'étape E505. Si tous les sous ensembles de données correspondant à la requête reçue à l'étape E500 ont été transférés, le processeur 200 arrête le présent algorithme et retourne à l'étape E500 en attente d'une nouvelle requête RTSP.
Il est à remarquer ici que le présent algorithme est interrompu lorsqu'une nouvelle requête est reçue du même dispositif de réception 20 et qui provoque l'interruption du traitement de la requête en cours. Une telle interruption se produit par exemple lorsqu'une requête RTSP de pause ou d'arrêt est reçue par le serveur de vidéo 10 concernant la séquence d'images codées précédemment demandée.
La Fig. 6 représente un algorithme de détermination d'un délai à appliquer entre l'envoi de deux ensembles de données selon un premier mode de réalisation de la présente invention. L'algorithme de la Fig. 6 décrit plus en détail les étapes E505 et E506 de l'algorithme de la Fig. 5.
A l'étape E600, le processeur 200 initialise la taille de l'ensemble de données en cours de formation à la valeur nulle. A l'étape suivante E601, le processeur 200 extrait le sous ensemble de données situé à la position courante dans le train binaire SVC en cours de traitement, i.e. la séquence d'images codées en cours de traitement. 13 A l'étape suivante E602, le processeur 200 vérifie si l'ensemble de données en cours de formation est non vide et si la somme de la taille de l'ensemble de données en cours de formation et de la taille du sous ensemble de données extrait est strictement supérieure à une valeur prédéterminée. La valeur prédéterminée est par exemple le paramètre MTU du réseau de télécommunication 50. Si l'ensemble de données en cours de formation est non vide et si la somme de la taille de l'ensemble de données en cours de formation et de la taille du sous ensemble de données extrait est strictement supérieure à la valeur prédéterminée, il n'est pas possible d'ajouter le sous ensemble de données extrait à l'ensemble de données en cours de formation. Le processeur 200 interrompt l'algorithme de la Fig. 6 et retourne à l'étape E507 de la Fig. 5. Si la somme de la taille de l'ensemble de données en cours de formation et de la taille du sous ensemble de données extrait est inférieure ou égale à la valeur prédéterminée, ou si l'ensemble de données en cours de formation est vide, le processeur 200 passe à l'étape E603. A l'étape E603, le processeur 200 analyse l'entête du sous ensemble de données extrait. Lorsque le sous ensemble de données est un élément élémentaire d'un train binaire SVC, le processeur 200, à l'étape E604, recherche si l'entête indique un message de type SEI, acronyme de Supplemental Enhancement Information , et si le message de type SEI contenu dans le sous-ensemble correspond au message appelé Scalability information SEI message dans le document de T. Wiegand, G. Sullivan, J. Reichel, H. Schwarz, and M. Wien. Scalable Video Coding -Joint Draft 10 of SVC Amendment (revision 2). Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, San Jose, California, April 2007.
Si le sous-ensemble contient un message SEI Scalability information , le processeur 200 passe à l'étape E605. Sinon, le processeur 200 passe à l'étape E606. A l'étape E605, le processeur 200 décode le message de type SEI appelé Scalability Information , destiné à décrire l'organisation de la séquence d'images codées demandée.
Le message Scalability Information de type SEI contient entre autres des informations qui indiquent les fréquences d'images de chaque niveau de résolution spatiale ou qualitative contenu dans la séquence d'images codées demandée par le dispositif de réception 20 ou en d'autres termes les niveaux de résolution temporelles contenus dans la séquence d'images codées demandée.
Le décodage de ce message fournit un tableau de valeurs de fréquences d'images pour chaque niveau li de résolution spatiale ou qualitative noté frameRate[li]. A l'étape E606, le processeur 200 vérifie si le sous ensemble de données extrait comprend des données d'un niveau de résolution qui contribue à la formation d'une nouvelle image lors du décodage de la séquence d'images codées. Si le sous ensemble de données extrait comprend des données d'un niveau de résolution qui contribue à formation d'une nouvelle image lors du décodage de la séquence d'images codées, le processeur 200 passe à l'étape E607. Sinon, le processeur 200 passe à l'étape E608.
En d'autres termes, le processeur 200 détecte si le sous ensemble de données extrait comprend des données contribuant à la formation d'une image pour laquelle les précédents sous ensembles de données extraits ne contribuent pas à la formation. Lorsque le sous ensemble de données est un élément élémentaire d'un train binaire SVC le processeur 200 vérifie : - si le sous ensemble de données ne contient pas de paramètres de séquence, Sequence Paramater Set et - si le sous ensemble de données ne contient pas de paramètres d'image Picture Parameter Set et - si le sous ensemble de données ne contient pas de message de type SEI 20 fournissant des informations sur le prochain sous ensemble de données dans le train binaire et - si le sous ensemble de données est différent du message de type SEI Scalability Information et - si le type de sous ensemble de données est différent de prefix NAL unit et 25 - si l'indice de qualité du sous ensemble de données est égal à zéro. Les paramètres et messages susmentionnés sont décrits dans le document de T. Wiegand, G. Sullivan, J. Reichel, H. Schwarz, and M. Wien. Scalable Video Coding -Joint Draft 10 of SVC Amendment (revision 2). Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, San Jose, California, April 2007. 30 A l'étape E607, le processeur 200 incrémente la valeur d'un compteur Cpt_im(li) associé au niveau de résolution spatiale ou qualitative li des données comprises dans le sous ensemble de données extrait.
A l'étape E608, le processeur 200 vérifie si le sous ensemble de données extrait comprend des données d'un des niveaux de résolution requis par le dispositif de réception 20. Si le sous ensemble de données extrait ne comprend pas des données d'un des niveaux de résolution requis par le dispositif de réception 20, le processeur 200 passe à l'étape E613. Sinon, le processeur 200 passe à l'étape E609. A l'étape E609, le processeur 200 insère le sous ensemble de données extrait dans l'ensemble de données en cours de formation et passe ensuite à l'étape E610. A l'étape E610, le processeur 200 vérifie si le sous ensemble de données précédemment inséré est le premier sous ensemble de données inséré dans l'ensemble de données. Si le sous ensemble de données précédemment inséré n'est pas le premier sous ensemble de données inséré dans l'ensemble de données, le processeur 200 passe à l'étape E613.
Si le sous ensemble de données précédemment inséré est le premier sous ensemble de données inséré dans l'ensemble de données, le processeur 200 passe à l'étape E611. A l'étape E611, le processeur 200 détermine la valeur du délai à appliquer entre l'instant de transfert de l'ensemble de données précédemment formé et l'ensemble de 20 données en cours de formation. Selon ce mode de mise en oeuvre, la valeur du délai est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données comprises dans l'ensemble de données précédemment formé qui comprennent des données du ou d'un niveau de résolution supérieur au plus bas niveau de résolution. 25 Selon ce mode de mise en oeuvre, la valeur du délai est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données comprises dans l'ensemble de données précédemment formé qui comprennent des données du plus bas niveau de résolution. Selon ce mode de mise en oeuvre, la valeur du délai est en outre dépendante de 30 la fréquence maximale de reproduction des images décodées sur un moyen d'affichage. Selon ce mode de mise en oeuvre, les sous ensembles de données de chaque ensemble de données sont ordonnés et la valeur du délai est minimale si le premier sous ensemble de données compris dans l'ensemble de données en cours de formation contribue à la formation d'une même image décodée que le premier sous ensemble de données compris dans l'ensemble de données précédemment formé. La valeur est minimale lorsque le second ensemble de données est transféré le plus rapidement possible après la fin du transfert du premier sous ensemble de données. Pour cela le délai est calculé selon la formule suivante : max{Cpt ù im[li]courant} ù max {Cpt ù im[li'précédent } Délai = dans lequel max{frameRate[li]} max{Cpt ùim{li}courant} est la valeur maximale des compteurs d'image Cpt_im[li] de chaque niveau de résolution li de l'ensemble de données en cours de formation, max{Cpt ùim[li] précédent} est la valeur maximale des compteurs d'image Cpt_im[li] de chaque niveau de résolution li dont la valeur est prise au premier sous ensemble de données de l'ensemble de données précédemment formé et max{frameRate[li]} est la fréquence maximale des fréquences d'images des niveaux de résolution spatiale ou qualitative requis par le client.
L'instant d'envoi est égal à la somme du délai et de l'instant d'envoi du précédent ensemble de données. A l'étape suivante E612, le processeur 200 mémorise l'instant d'envoi calculé comme étant le précédent instant d'envoi. A l'étape suivante E613, le processeur 200 vérifie si l'ensemble du flux vidéo a été traité. Si l'ensemble du flux vidéo a été traité, le processeur 200 arrête le présent algorithme. Sinon, le processeur 200 retourne à l'étape E601. La Fig. 7 est un tableau représentant un exemple d'ensembles de données composés respectivement d'au moins un sous ensemble de données ainsi que des compteurs d'images utilisés.
La ligne 720 représente un premier ensemble de données composé d'un sous ensemble de données NAL°I°(tO,10) ainsi que les valeurs des compteurs d'images notés Cpt_im(10) et Cpt_im(11) pour chaque niveau de résolution spatiale ou qualitative. Le sous ensemble de données NAL°I°(tO,10) comprend les données de l'image I°(t0,10) de la Fig. 4.
Les lignes 722 et 724 représentent un second ensemble de données composé de sous ensembles de données NAL°I°(tO,11) et NAL I I°(tO,11) et ainsi que les valeurs des compteurs d'images Cpt_im(10) et Cpt_im(11). Les sous ensembles de données NAL°I°(tO,11) et NALII°(tO,11) comprennent les données de l'image I°(tO,11) de la Fig. 4.
La présence dans un train binaire SVC de plusieurs NALs contenant des données d'une même image survient par exemple lorsqu'on décide de découper cette image en plusieurs tranches ou slices en anglais lors du codage de cette image. Une tranche consiste en un sous-ensemble de macroblocs successifs des macroblocs d'une image codée (voir document T. Wiegand, G. Sullivan, J. Reichel, H. Schwarz, and M. Wien. Scalable Video Coding -Joint Draft 10 of SVC Amendment (revision 2). Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, San Jose, California, April 2007). La ligne 726 représente un troisième ensemble de données composé d'un sous ensemble de données NAL°P'(t0,10) ainsi que les valeurs des compteurs d'images Cpt_im(10) et Cpt_im(ll). Le sous ensemble de données NAL°P'(t0,10) comprend les données de l'image P'(t0,10) de la Fig. 4. Les lignes 728 et 730 représentent un quatrième ensemble de données composé de sous ensembles de données NAL°P'(t0,11) et NAL°B2(t0,10) et ainsi que les valeurs des compteurs d'images Cpt_im(10) et Cpt_im(11). Les sous ensembles de données NAL°P'(t0,11) et NAL°B2(t0,10) comprennent respectivement les données des image P' (t0,11) et B2(t0,10) de la Fig. 4. La colonne 710 comprend les indices des sous ensembles de données susmentionnés, la colonne 712 comprend les différentes valeurs prises par le compteur Cpt_im(10), la colonne 714 comprend les différentes valeurs prises par le compteur Cpt_im(ll) et la colonne 715 comprend les différents facteurs multiplicatifs de l'inverse de la fréquence maximale des fréquences d'images des niveaux de résolution spatiale ou qualitative requis par le client calculés pour la détermination des délais. Lors de la formation du premier ensemble de données, le compteur Cpt_im(10) est incrémenté car l'image I°(t0,10) est du niveau de résolution O. Lors de la formation du second ensemble de données, le compteur Cpt_im(l 1) est incrémenté d'une unité car le sous ensemble de données NAL°I°(t0,11) est le premier sous ensemble de données comprenant des données de l'image I°(t0,11) du niveau de résolution 1. Le compteur Cpt_im(ll) n'est pas incrémenté d'une unité une seconde fois car le sous ensemble de données NAL'I°(t0,11) n'est pas le premier sous ensemble de données comprenant des données de l'image I°(t0,11). La valeur du délai entre l'émission du premier et du second ensembles de données est nulle car le sous ensemble de données NAL°I°(t0,11) compris dans le second ensemble de données contribue à la formation d'une même image décodée I° que le sous ensemble de données NAL°I°(tO,10) compris dans le premier ensemble de données. En effet, les valeurs maximales des compteurs prises à chaque premier sous ensemble de données compris dans les premier et second ensembles de données sont identiques. Le facteur multiplicatif de l'inverse de la fréquence maximale des fréquences d'images des niveaux de résolution spatiale ou qualitative requis par le client est ainsi nul. Lors de la formation du troisième ensemble de données, le compteur Cpt_im(10) est incrémenté d'une unité car le sous ensemble de données NAL°P'(tO,10) est le premier sous ensemble de données comprenant des données de l'image Pt(tO,10) du niveau de résolution O. La valeur du délai entre l'émission du second et du troisième ensembles de données est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles du second ensemble de données qui comprennent des données d'un des niveaux de résolutions, en l'occurrence le niveau de résolution 0. Le facteur multiplicatif de la fréquence maximale des fréquences d'images des niveaux de résolution spatiale ou qualitative requis par le client est ainsi égal à l'unité. Lors de la formation du quatrième ensemble de données, le compteur Cpt_im(11) est incrémenté d'une unité car le sous ensemble de données NAL°P I (t0,11) est le premier sous ensemble de données comprenant des données de l'image P'(tO,11) du niveau de résolution 1. Le compteur Cpt_im(10) est incrémenté d'une unité car le sous ensemble de données NAL°B2(tO,10) est le premier sous ensemble de données comprenant des données de l'image B2(tO,10). La valeur du délai entre l'émission du troisième et du quatrième ensembles de données est nulle car le sous ensemble de données NAL°P 1(tO,11) compris dans le quatrième ensemble de données contribue à la formation d'une même image décodée P1 que le sous ensemble de données NAL°P'(tO,10) compris dans le premier ensemble de données. En effet, les valeurs maximales des compteurs prises à chaque premier sous ensemble de données, compris dans les premier et second ensembles de données sont identiques. Le facteur multiplicatif de la fréquence maximale des fréquences d'images des niveaux de résolution spatiale ou qualitative requis par le client est ainsi nul. Les Figs. 8a et 8b représentent un algorithme de déteitriination d'un délai à appliquer entre l'envoi de deux ensembles de données selon un second mode de réalisation de la présente invention.
L'algorithme des Figs. 8a et 8b décrivent plus en détail les étapes E505 à E506 de l'algorithme de la Fig. 5 selon le second mode de réalisation. L'algorithme des Figs. 8a et 8b est particulièrement utile lorsque les paramètres d'extraction de la séquence d'images codées varient au cours du processus de transmission. Ceci est par exemple le cas lorsque le dispositif de réception 20, suite à une opération utilisateur, modifie les paramètres de la séquence d'images codées requise, ou lorsque les différents niveaux de résolution sont utilisés à des fins de régulation du débit du serveur de vidéo 10. Dans ce dernier cas, il est nécessaire de déterminer, pour chaque GOP du train binaire SVC, les sous ensembles de données qui permettent de respecter le débit correspondant à la bande passante requise. Les paramètres d'extraction tels que le niveau de résolution spatiale et/ou qualitative et/ou le niveau de résolution temporelle sont susceptibles de varier au cours de la transmission de la séquence d'images codées.
A l'étape E800, le processeur 200 initialise la taille de l'ensemble de données en cours de formation à la valeur nulle. A l'étape suivante E801, le processeur 200 extrait le sous ensemble de données situé à la position courante dans le flux de données en cours de traitement, i.e. la séquence d'images codées en cours de traitement.
A l'étape suivante E802, le processeur 200 vérifie si l'ensemble de données en cours de formation est non vide et si la somme de la taille de l'ensemble de données en cours de formation et de la taille du sous ensemble de données extrait est strictement supérieure à une valeur prédéterminée. La valeur prédéterminée est par exemple le paramètre MTU du réseau de télécommunication 50.
Si l'ensemble de données en cours de formation est non vide et si la somme de la taille de l'ensemble de données en cours de formation et de la taille du sous ensemble de données extrait est strictement supérieure à la valeur prédéterminée, il n'est pas possible d'ajouter le sous ensemble de données extrait à l'ensemble de données en cours de formation. Le processeur 200 interrompt l'algorithme de la Fig. 8 et retourne à l'étape E507 de la Fig. 5. Si la somme de la taille de l'ensemble de données en cours de formation et de la taille du sous ensemble de données extrait est inférieure ou égale à la valeur prédéterminée, ou si l'ensemble de données en cours de formation est vide, le processeur 200 passe à l'étape E803.
A l'étape E803, le processeur 200 analyse l'entête du sous ensemble de données extrait. Lorsque le sous ensemble de données est un élément élémentaire d'un train binaire SVC, le processeur 200, à l'étape E804, recherche si l'entête indique un message de type SEI, acronyme de Supplemental Enhancement Information , et si le message de type SEI contenu dans le sous-ensemble correspond au message appelé Scalability information SEI messsage dans le document de T. Wiegand, G. Sullivan, J. Reichel, H. Schwarz, and M. Wien. Scalable Video Coding - Joint Draft 10 of SVC Amendment (revision 2). Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, San Jose, California, April 2007.
Si le sous-ensemble de données contient un message SEI Scalability information , le processeur 200 passe à l'étape E805. Sinon, le processeur 200 passe à l'étape E806. A l'étape E805, le processeur 200 décode le message de type SEI appelé Scalability Information , destiné à décrire l'organisation de la séquence d'images 15 codées demandée. Le message Scalability Information de type SEI contient entre autres des informations qui indiquent les fréquences d'images de chaque niveau de résolution spatiale ou qualitative contenu dans la séquence d'images codées demandée par le dispositif de réception 20 ou en d'autres termes les niveaux de résolution temporelle 20 contenus dans la séquence d'images codées demandée. Le décodage de ce message fournit un tableau de valeurs de fréquences d'images pour chaque niveau li de résolution spatiale ou qualitative noté frameRate[li]. A l'étape suivante E806, le processeur 200 vérifie si le sous ensemble de données extrait appartient à un nouveau groupe d'images GOP. Le processeur 200 25 vérifie si le sous ensemble de données extrait appartient à un nouveau groupe d'images GOP en regardant si le sous ensemble de données comprend des données du niveau de résolution temporelle 0 et a un indice de qualité égal à 0. Si le sous ensemble de données extrait n'appartient pas à un nouveau groupe d'images GOP, le processeur 200 passe à l'étape E809. Sinon, le processeur 200 passe 30 à l'étape E807. A l'étape E807, le processeur 200 met à jour des paramètres d'extraction des sous ensembles de données. En d'autres termes, le processeur 200 détermine le niveau de résolution spatiale et/ou qualitative ainsi que la résolution temporelle demandée dans la dernière requête RTSP reçue. 21 A l'étape suivante E808, le processeur 200 détermine quels sous ensembles de données doivent être extraits dans le nouveau groupe d'images GOP en fonction des nouveaux paramètres d'extraction ou, dans le cas d'une régulation de débit en sortie du serveur de vidéo 10, le processeur 200 analyse les entêtes des sous ensembles de données présents dans le nouveau GOP et détermine les sous ensembles de données qui vont produire, lors de la reproduction ou du décodage, la séquence d'images vidéo de meilleure qualité sous la contrainte de débit courante. Lorsque les sous ensembles de données sont des unités élémentaires NAL, le processeur 200 analyse les champs priority_id présents dans les entêtes des NAL et tels que décrits aux sections G.7.3.1 et G.7.4.1 du document de T. Wiegand, Scalable Video Coding - Joint Draft 10 of SVC Amendment (revision 2). Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, San Jose, California, April 2007. A l'étape E809, le processeur 200 vérifie si le sous ensemble de données extrait comprend des données d'un niveau de résolution qui contribue à la formation d'une nouvelle image lors du décodage de la séquence d'images codées. Si le sous ensemble de données extrait comprend des données d'un niveau de résolution qui contribue à formation d'une nouvelle image lors du décodage de la séquence d'images codées, le processeur 200 passe à l'étape E810. Sinon, le processeur 200 passe à l'étape E811.
En d'autres termes, le processeur 200 détecte si le sous ensemble de données extrait comprend des données contribuant à la formation d'une image pour laquelle les précédents sous ensembles de données extraits ne contribuent pas à la formation. Lorsque le sous ensemble de données est un élément élémentaire d'un train binaire SVC le processeur 200 vérifie : - si l'entête du sous ensemble de données ne contient pas de paramètres de séquence, Sequence Paramater Set et - si le sous ensemble de données ne contient pas de paramètres d'image Picture Parameter Set et - si le sous ensemble de données ne contient pas de message de type SEI 30 fournissant des informations sur le prochain sous ensemble de données dans le train binaire et - si le sous ensemble de données est différent du message de type SEI Scalability Information et - si le type de sous ensemble de données est différent de prefix NAL unit et 22 - si l'indice de qualité du sous ensemble de données est égal à zéro. Les paramètres et messages susmentionnés sont décrits dans le document de T. Wiegand, G. Sullivan, J. Reichel, H. Schwarz, and M. Wien. Scalable Video Coding - Joint Draft 10 of SVC Amendment (revision 2). Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, San Jose, California, April 2007. A l'étape E810, le processeur 200 incrémente la valeur d'un compteur Cpt_im(li) associé au niveau de résolution spatiale ou qualitative li des données comprises dans le sous ensemble de données extrait. A l'étape E811, le processeur 200 vérifie si le sous ensemble de données extrait 10 appartient à l'ensemble des niveaux de résolutions requis par le dispositif de réception 20. Si le sous ensemble de données extrait n'appartient pas à l'ensemble des niveaux de résolutions requis par le dispositif de réception 20, le processeur 200 passe à l'étape E816. Sinon, le processeur 200 passe à l'étape E812. 15 A l'étape E812, le processeur 200 insère le sous ensemble de données extrait à l'ensemble de données en cours de folmation et passe ensuite à l'étape E813. A l'étape E813, le processeur 200 vérifie si le sous ensemble de données précédemment inséré est le premier sous ensemble de données inséré dans l'ensemble de données ou si le sous ensemble de données extrait appartient à un nouveau groupe 20 d'images GOP. Si le sous ensemble de données précédemment inséré n'est pas le premier sous ensemble de données inséré dans l'ensemble de données et n'appartient pas à un nouveau groupe d'images GOP, le processeur 200 passe à l'étape E816. Si le sous ensemble de données précédemment inséré est le premier sous 25 ensemble de données inséré dans l'ensemble de données ou si le sous ensemble de données extrait appartient à un nouveau groupe d'images GOP, le processeur 200 passe à l'étape E814. A l'étape E814, le processeur 200 détermine la valeur du délai à appliquer entre l'instant de transfert de l'ensemble de données précédemment formé et l'ensemble de 30 données en cours de formation. Cette étape sera décrite plus en détail en référence à la Fig. 8b. Selon ce mode de mise en oeuvre, la valeur du délai est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données comprises dans l'ensemble de données précédemment formé qui comprennent des données du ou d'un niveau de résolution supérieur au plus bas niveau de résolution. Selon ce mode de mise en oeuvre, la valeur du délai est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données comprises dans l'ensemble de données précédemment formé qui comprennent des données du plus bas niveau de résolution. Selon ce mode de mise en oeuvre, la valeur du délai est en outre dépendante de la fréquence maximale de reproduction des images décodées sur un moyen d'affichage.
Selon ce mode de mise en oeuvre, les sous ensembles de données de chaque ensemble de données sont ordonnés et la valeur du délai est minimale si le premier sous ensemble de données compris dans l'ensemble de données en cours de formation contribue à la formation d'une même image décodée que le premier sous ensemble de données compris dans l'ensemble de données précédemment formé.
Selon ce mode de mise en oeuvre, lorsque la séquence d'images codées est décomposée en un premier et un second GOP, au moins un premier et un second ensembles de données ont précédemment été formés, les premier et second ensembles de données comprennent des données représentatives du premier groupe d'images codées et on détermine, si les données comprises dans l'ensemble de données en cours de formation sont représentatives du premier groupe d'images, la valeur du délai à appliquer entre l'envoi du second ensemble de données et l'envoi de l'ensemble de données en cours de formation ou on détermine, si les données comprises dans l'ensemble de données en cours de formation sont représentatives du second groupe d'images, la valeur du délai à appliquer entre l'envoi du premier ensemble de données et l'envoi de l'ensemble de données en cours de formation. Selon ce mode de mise en oeuvre, la séquence d'images codées est en outre codée selon un premier niveau de résolution temporelle et au moins un second niveau de résolution temporelle supérieur au premier niveau de résolution temporelle et si les données comprises dans l'ensemble de données en cours de formation sont représentatives du second groupe d'images, la valeur du délai à appliquer entre l'envoi du premier ensemble de données et l'envoi de l'ensemble de données en cours de formation est fonction du premier niveau de résolution temporelle. A l'étape suivante E815, le processeur 200 mémorise l'instant d'envoi calculé comme étant le précédent instant d'envoi.
A l'étape suivante E816, le processeur 200 vérifie si l'ensemble du flux vidéo a été traité. Si l'ensemble du flux vidéo a été traité, le processeur 200 arrête le présent algorithme. Sinon, le processeur 200 retourne à l'étape E801.
A l'étape E820 de la Fig. 8b, le processeur 200 vérifie si le sous ensemble de données extrait appartient à un nouveau groupe d'images GOP et si le compteur Cpt_im_t0[li] est supérieur ou égal à deux. Le compteur Cpt_im_t0[li] compte le nombre d'images de résolution temporelle 0 comptées dans les sous ensembles de données NAL extraits.
Si le sous ensemble de données extrait appartient à un nouveau groupe d'images 10 GOP et si le compteur Cpt_im_t0[li] est supérieur ou égal à deux, le processeur 200 passe à l'étape E823.
Si le sous ensemble de données extrait n'appartient pas à un nouveau groupe d'images GOP ou si le compteur Cpt_im_t0[li] est inférieur à deux, le processeur 200 passe à l'étape E821.
15 A l'étape E821, le processeur 200 calcule le délai selon la formule suivante : max{Cpt _ im[li]courant} ù max{Cpt _ im[li]précédent} Délai = dans lequel max{frameRate[li]}
max {Cpt _im[li'courant } est la valeur maximale des compteurs d'image Cpt_im[li] de chaque niveau de résolution li de l'ensemble de données en cours de formation, max{Cpt _ im[li]précédent} est la valeur maximale des compteurs d'image Cpt _ im[li] 20 de chaque niveau de résolution li dont la valeur est prise au premier sous ensemble de données de l'ensemble de données précédemment formé et max{frameRate[li]} est la fréquence maximale des fréquences d'images des niveaux de résolution spatiale ou qualitative requis par le client.
A l'étape suivante E822, le processeur 200 vérifie si le sous ensemble de 25 données extrait appartient à un nouveau groupe d'images GOP.
Si le sous ensemble de données extrait appartient à un nouveau groupe d'images GOP, le processeur 200 passe à l'étape E824. Sinon, le processeur 200 passe à l'étape E825.
A l'étape E823, le processeur 200 calcule le délai selon la formule suivante : 30 Délai = 1 dans laquelle frameRatetl0[li] est la fréquence d'image frameRatetl0 [h] du niveau de résolution temporelle le plus bas.
L'instant d'envoi est égal à la somme du délai et de l'instant d'envoi du précédent ensemble de données qui comprenait un sous ensemble de données du plus bas niveau de résolution temporelle. Cette opération effectuée, le processeur 200 passe à l'étape E824.
A l'étape E824, le processeur 200 mémorise l'instant d'envoi calculé comme étant l'instant d'envoi du précédent ensemble de données qui comprenait un sous ensemble de données du plus bas niveau de résolution temporelle. Cette opération effectuée, le processeur 200 passe à l'étape suivante E825. A l'étape suivant E825, le processeur 200 incrémente le compteur Cpt_im_tO[li] d'une unité. Cette opération effectuée, le processeur 200 retourne à l'étape E816 de l'algorithme de la Fig. 8a. Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits ici, mais englobe, bien au contraire, toute variante à la portée de l'homme du métier et particulièrement la combinaison de différents modes de réalisation de la présente invention.

Claims (11)

REVENDICATIONS
1) Procédé de détermination de la valeur d'un délai à appliquer entre l'envoi d'un premier ensemble de données et l'envoi d'un second ensemble de données, les données étant représentatives d'une séquence d'images codées, les ensembles de données étant constitués de sous ensembles de données, les images codées étant codées selon un premier niveau de résolution et au moins un second niveau de résolution supérieure au premier niveau de résolution, les sous ensembles de données comprenant des données d'un niveau de résolution, caractérisé en ce que le procédé comporte les étapes de : - obtention des premier et second ensembles de données, - détermination de la valeur du délai, la valeur du délai étant dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données du premier ensemble de données qui comprennent des données du second ou d'un second niveau de résolution.
2) Procédé selon la revendication 1, caractérisé en ce que la valeur du délai est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données du premier ensemble de données qui comprennent des données du premier niveau de résolution.
3) Procédé selon la revendication 2, caractérisé en ce que la valeur du délai est en outre dépendante de la fréquence maximale de reproduction des images décodées sur un moyen d'affichage.
4) Procédé selon la revendication 1, caractérisé en ce que les niveaux de résolution sont des niveaux de résolution spatiale ou qualitative et en ce que la valeur du délai est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données du premier ensemble de données qui comprennent des données du second ou d'un second niveau de résolution spatiale ou qualitative.
5) Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les sous ensembles de données de chaque ensemble de données sont ordonnés et en ce que la valeur du délai est minimale si le premier sous ensemble de données 27 compris dans le second ensemble de données contribue à la formation d'une même image décodée que le premier sous ensemble de données compris dans le premier ensemble de données.
6) Procédé selon la revendication 5, caractérisé en ce que le procédé comporte en outre les étapes de : - détection de chaque sous ensemble de données du premier ensemble de données comprenant des données contribuant à la formation d'une image pour laquelle les précédents sous ensembles de données ne contribuent pas à la formation, - pour chaque sous ensemble de données détecté, incrément de la valeur d'un compteur associé au niveau de résolution des données comprises dans le sous ensemble détecté, et en ce que la valeur du délai est dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles du premier ensemble de données qui comprennent des données du niveau de résolution dont le compteur associé a la valeur maximale.
7) Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la séquence d'images codées est décomposée en un premier et un second groupe d'images codées, le premier et second ensembles de données comprennent des données représentatives du premier groupe d'images codées et en ce que le procédé comporte les étapes de : - obtention d'un troisième ensemble de données représentatives, - détermination, si les données comprises dans le troisième ensemble de données sont représentatives du premier groupe d'images, de la valeur du délai à appliquer entre l'envoi du second ensemble de données et l'envoi du troisième ensemble de données ou détermination, si les données comprises dans le troisième ensemble de données sont représentatives du second groupe d'images, de la valeur du délai à appliquer entre l'envoi du premier ensemble de données et l'envoi du troisième ensemble de données.
8) Procédé selon la revendication 7, caractérisé en ce que la séquence d'images codées est en outre codée selon un premier niveau de résolution temporelle et au moins un second niveau de résolution temporelle supérieure au premier niveau de 28 résolution temporelle et en ce que si les données comprises dans le troisième ensemble de données sont représentatives du second groupe d'images, la valeur du délai à appliquer entre l'envoi du premier ensemble de données et l'envoi du troisième ensemble de données est fonction du premier niveau de résolution temporelle.
9) Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que les ensembles de données sont obtenus de manière à comprendre une quantité de données inférieure à un seuil prédéterminé. 10
10) Dispositif de détermination de la valeur d'un délai à appliquer entre l'envoi d'un premier ensemble de données et l'envoi d'un second ensemble de données, les données étant représentatives d'une séquence d'images codées, les ensembles de données étant constitués de sous ensembles de données, les images codées étant codées selon un premier niveau de résolution et au moins un second niveau de 15 résolution supérieure au premier niveau de résolution, les sous ensembles de données comprenant des données d'un niveau de résolution, caractérisé en ce que le dispositif comporte : - des moyens d'obtention des premier et second ensembles de données, - des moyens de détermination de la valeur du délai, la valeur du délai étant 20 dépendante du nombre d'images décodées pouvant être formées à partir des sous ensembles de données du premier ensemble de données qui comprennent des données du second ou d'un second niveau de résolution.
11) Programme d'ordinateur stocké sur un support d'informations qui, lorsqu'il 25 est chargé et exécuté par un ordinateur ou un processeur dans un dispositif, permet au dispositif de mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 9.5
FR0707545A 2007-10-26 2007-10-26 Procede et dispositif de determination de la valeur d'un delai a appliquer entre l'envoi d'un premier ensemble de donnees et l'envoi d'un second ensemble de donnees Pending FR2923124A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR0707545A FR2923124A1 (fr) 2007-10-26 2007-10-26 Procede et dispositif de determination de la valeur d'un delai a appliquer entre l'envoi d'un premier ensemble de donnees et l'envoi d'un second ensemble de donnees
PCT/EP2008/064478 WO2009053475A1 (fr) 2007-10-26 2008-10-24 Procédé et dispositif servant à déterminer la valeur d'un délai à appliquer entre l'envoi d'un premier ensemble de données et l'envoi d'un second ensemble de données
US12/674,415 US8347342B2 (en) 2007-10-26 2008-10-24 Method and device for determining the value of a delay to be applied between sending a first dataset and sending a second dataset
US13/684,940 US8813157B2 (en) 2007-10-26 2012-11-26 Method and device for determining the value of a delay to be applied between sending a first dataset and sending a second dataset

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0707545A FR2923124A1 (fr) 2007-10-26 2007-10-26 Procede et dispositif de determination de la valeur d'un delai a appliquer entre l'envoi d'un premier ensemble de donnees et l'envoi d'un second ensemble de donnees

Publications (1)

Publication Number Publication Date
FR2923124A1 true FR2923124A1 (fr) 2009-05-01

Family

ID=39730657

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0707545A Pending FR2923124A1 (fr) 2007-10-26 2007-10-26 Procede et dispositif de determination de la valeur d'un delai a appliquer entre l'envoi d'un premier ensemble de donnees et l'envoi d'un second ensemble de donnees

Country Status (3)

Country Link
US (2) US8347342B2 (fr)
FR (1) FR2923124A1 (fr)
WO (1) WO2009053475A1 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
USD847933S1 (en) 2017-06-09 2019-05-07 Maxim Defense Industries, LLC Stock for a gun
USD865898S1 (en) 2017-09-06 2019-11-05 Maxim Defense Industries, LLC Stock for a gun
USD883419S1 (en) 2017-09-06 2020-05-05 Maxim Defense Industries, LLC Stock for a gun
USD953470S1 (en) 2019-01-10 2022-05-31 Maxim Defense Industries, LLC Upper assembly, handguard, lower receiver, and stock for a gun
US11624583B2 (en) 2019-07-16 2023-04-11 Sagi Faifer Variably adjustable stock for a gun and apparatus and method for adjustment of same
USD907157S1 (en) 2019-07-16 2021-01-05 Sagi Faifer Stock for a gun

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005079070A1 (fr) * 2004-02-13 2005-08-25 Nokia Corporation Redimensionnement de tampon dans un codeur et un decodeur
US20060256851A1 (en) * 2005-04-13 2006-11-16 Nokia Corporation Coding, storage and signalling of scalability information

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095782B1 (en) 2000-03-01 2006-08-22 Koninklijke Philips Electronics N.V. Method and apparatus for streaming scalable video
FR2846181B1 (fr) 2002-10-16 2005-09-02 Canon Kk Procede et dispositif de selection de donnees dans un reseau de communication
FR2860935B1 (fr) 2003-10-09 2006-03-03 Canon Kk Procede et dispositif de traitement de donnees numeriques
FR2864407B1 (fr) 2003-12-22 2006-03-10 Canon Kk Procede et dispositif de transmission continue d'une video dans un reseau de communication
KR100834748B1 (ko) 2004-01-19 2008-06-05 삼성전자주식회사 스케일러블 비디오 스트림 재생 방법 및 장치
FR2866183B1 (fr) 2004-02-09 2006-08-04 Canon Kk Procedes d'emission et de reception d'une animation, et dispositifs associes
FR2870615B1 (fr) 2004-05-18 2006-11-24 Canon Kk Procedes et dispositifs de manipulation, transmission et affichage d'images numeriques
ITMI20041971A1 (it) * 2004-10-15 2005-01-15 Uni Degli Studi Brescia Metodo di codifica video scalabile
US20090060035A1 (en) * 2007-08-28 2009-03-05 Freescale Semiconductor, Inc. Temporal scalability for low delay scalable video coding
FR2922391B1 (fr) 2007-10-15 2009-12-04 Canon Kk Procede et dispositif de transmission de donnees
FR2923970B1 (fr) 2007-11-16 2013-01-04 Canon Kk Procede et dispositif de formation, de transfert et de reception de paquets de transport encapsulant des donnees representatives d'une sequence d'images
FR2927749B1 (fr) 2008-02-14 2010-12-17 Canon Kk Procede et dispositif de transmission de donnees, notamment video.
FR2942095A1 (fr) 2009-02-09 2010-08-13 Canon Kk Procede et dispositif d'identification de pertes de donnees video

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005079070A1 (fr) * 2004-02-13 2005-08-25 Nokia Corporation Redimensionnement de tampon dans un codeur et un decodeur
US20060256851A1 (en) * 2005-04-13 2006-11-16 Nokia Corporation Coding, storage and signalling of scalability information

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHUNG H ET AL: "SVC test conds for FGS apps and design simplif AHG", 27 June 2007, VIDEO STANDARDS AND DRAFTS, XX, XX, XP030007178 *
ELEFTHERIADIS A ET AL: "Improved error resilience using temporal level 0 picture index", 27 April 2007, VIDEO STANDARDS AND DRAFTS, XX, XX, XP030007022 *
PENG CHEN ET AL: "A network-adaptive SVC Streaming Architecture", 1 February 2007, ADVANCED COMMUNICATION TECHNOLOGY, THE 9TH INTERNATIONAL CONFERENCE ON, IEEE, PI, PAGE(S) 955 - 960, ISBN: 978-89-5519-131-8, XP031084935 *
Y-K WANG ET AL: "On SVC high-level syntax", 14 January 2007, VIDEO STANDARDS AND DRAFTS, XX, XX, XP030006850 *

Also Published As

Publication number Publication date
US20110228166A1 (en) 2011-09-22
WO2009053475A1 (fr) 2009-04-30
US8347342B2 (en) 2013-01-01
US20130086621A1 (en) 2013-04-04
US8813157B2 (en) 2014-08-19

Similar Documents

Publication Publication Date Title
US10595059B2 (en) Segmented parallel encoding with frame-aware, variable-size chunking
Begen et al. Watching video over the web: Part 1: Streaming protocols
US10368075B2 (en) Clip generation based on multiple encodings of a media stream
CN107968790B (zh) 自适应流创建和输送中的虚拟化
US8818021B2 (en) Watermarking of digital video
FR2923124A1 (fr) Procede et dispositif de determination de la valeur d&#39;un delai a appliquer entre l&#39;envoi d&#39;un premier ensemble de donnees et l&#39;envoi d&#39;un second ensemble de donnees
US9832492B2 (en) Distribution of adaptive bit rate video streaming via hyper-text transfer protocol
US11722711B2 (en) System and method for data stream fragmentation
SG187636A1 (en) Trick modes for network streaming of coded video data
CN111770390B (zh) 数据处理方法、装置、服务器及存储介质
CN115943631A (zh) 流式传输包括具有切换集的可寻址资源索引轨道的媒体数据
FR2946820A1 (fr) Procede de transmission de donnees et dispositif associe.
EP3378232B1 (fr) Procédé de traitement de données codées, procédé de réception de données codées, dispositifs, et programmes d&#39;ordinateurs associés
CN115244943A (zh) 确定数据组块的可用性以用于网络流式传输媒体数据
Tideström Investigation into low latency live video streaming performance of WebRTC
FR3004055A1 (fr) Transcodage et diffusion adaptative de contenus multimedia
EP4195626A1 (fr) Envoi d&#39;un contenu de média en tant que flux de média à un système client
FR3138020A1 (fr) Streaming vidéo adaptatif hybride amélioré
Ravi et al. A Survey of Adaptive Streaming over HTTP
FR2924561A1 (fr) Procede de memorisation d&#39;un objet multimedia, structure de donnee et terminal associe