FR2953675A1 - Method for controlling transfer of video sequence transmitted over set of broadcasting sessions in communication network, involves adapting subscription to sub assembly of broadcasting sessions based on importance of loss of data - Google Patents
Method for controlling transfer of video sequence transmitted over set of broadcasting sessions in communication network, involves adapting subscription to sub assembly of broadcasting sessions based on importance of loss of data Download PDFInfo
- Publication number
- FR2953675A1 FR2953675A1 FR0958767A FR0958767A FR2953675A1 FR 2953675 A1 FR2953675 A1 FR 2953675A1 FR 0958767 A FR0958767 A FR 0958767A FR 0958767 A FR0958767 A FR 0958767A FR 2953675 A1 FR2953675 A1 FR 2953675A1
- Authority
- FR
- France
- Prior art keywords
- images
- data
- client device
- video data
- video
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000004891 communication Methods 0.000 title claims abstract description 69
- 238000012546 transfer Methods 0.000 title claims abstract description 17
- 238000004590 computer program Methods 0.000 claims abstract description 6
- 230000006978 adaptation Effects 0.000 claims description 23
- 238000001514 detection method Methods 0.000 claims description 21
- 238000011156 evaluation Methods 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 claims description 7
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000004807 localization Effects 0.000 abstract description 3
- 238000012360 testing method Methods 0.000 description 126
- 239000010410 layer Substances 0.000 description 35
- 238000004458 analytical method Methods 0.000 description 21
- 230000005540 biological transmission Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 230000002123 temporal effect Effects 0.000 description 13
- 230000007774 longterm Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4621—Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/234327—Processing 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 by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4382—Demodulation or channel decoding, e.g. QPSK demodulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44209—Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/4425—Monitoring of client processing errors or hardware failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/64—Addressing
- H04N21/6405—Multicasting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
La présente invention concerne un procédé de contrôle par un dispositif client du transfert d'une séquence vidéo. Elle concerne également un dispositif de contrôle mis en oeuvre par un dispositif client lors du transfert d'une séquence vidéo. The present invention relates to a method of control by a client device of the transfer of a video sequence. It also relates to a control device implemented by a client device during the transfer of a video sequence.
De manière générale, l'invention concerne la transmission d'une séquence vidéo entre un serveur et au moins un dispositif client sur un réseau de communication non fiable, c'est-à-dire dans lequel les conditions de transmission ne sont pas stables et/ou des pertes de données peuvent se produire. In general, the invention relates to the transmission of a video sequence between a server and at least one client device over an unreliable communication network, that is to say in which the transmission conditions are not stable and / or data loss may occur.
Dans l'ensemble de la description qui suit, le terme "perte" se rapporte aussi bien à des données manquantes qu'à des données erronées détectées dans les données vidéo de la séquence vidéo transmise. L'invention s'intéresse plus particulièrement à la régulation par un dispositif client du débit des données vidéo qui lui sont destinées, à partir d'informations sur la détection et la localisation de données vidéo affectées par des pertes. On se place dans le cas où le codage de la séquence vidéo est de type hiérarchique ou "scalable", c'est-à-dire qu'il met en oeuvre un ou plusieurs niveaux hiérarchiques, appelés aussi niveaux ou couches de scalabilité. Un exemple non limitatif d'un tel format de codage scalable est la norme SVC ("Scalable Video Coding"). Trois types de scalabilité ont été définis dans la norme SVC : scalabilité spatiale, temporelle et en qualité, la scalabilité en qualité étant également connue sous le nom de scalabilité SNR (de l'anglais "Signal to Noise Ratio", rapport signal à bruit). La scalabilité temporelle permet de modifier la résolution temporelle d'une séquence (c'est-à-dire le nombre d'images par seconde représentées par les données codées) en supprimant certaines images, cette suppression prenant en compte les dépendances éventuelles entre les images. Throughout the following description, the term "loss" refers to both missing data and erroneous data detected in the video data of the transmitted video sequence. The invention is more particularly concerned with the regulation by a client device of the bit rate of the video data intended for it, based on information on the detection and localization of video data affected by losses. One places oneself in the case where the coding of the video sequence is of hierarchical or "scalable" type, that is to say that it implements one or several hierarchical levels, also called levels or layers of scalability. A non-limiting example of such a scalable encoding format is SVC ("Scalable Video Coding"). Three types of scalability have been defined in the SVC standard: spatial, temporal and quality scalability, quality scalability also being known as SNR (Signal to Noise Ratio) scalability, signal-to-noise ratio. . The temporal scalability makes it possible to modify the temporal resolution of a sequence (that is to say the number of images per second represented by the coded data) by suppressing certain images, this deletion taking into account the possible dependencies between the images. .
La scalabilité spatiale consiste à insérer plusieurs résolutions spatiales (correspondant à différents nombres de pixels représentés par les données codées) dans un flux vidéo, la résolution la plus basse étant utilisée pour la prédiction des résolutions supérieures. La scalabilité en qualité prend trois formes différentes : scalabilité à grains grossiers ou CGS (en anglais "Coarse Grain Scalability"), scalabilité à grains moyens ou MGS (en anglais "Medium Grain Scalability") et scalabilité à grains fins ou FGS (en anglais "Fine Grain Scalability"). La scalabilité CGS utilise les mêmes concepts que la scalabilité spatiale, à ceci près que pour CGS, les opérations de sur-échantillonnage de la prédiction inter-couche sont omises. La scalabilité FGS permet la création d'un flux binaire qui peut être tronqué en un point quelconque tout en restant décodable. La scalabilité MGS a été définie comme intermédiaire entre CGS et FGS : elle offre des points de décodage dans le flux binaire plus fins que CGS mais ne permet pas la troncature en n'importe quel point comme FGS. La scalabilité MGS est souvent considérée comme offrant une granularité suffisante pour des conditions réseau réalistes. La transmission d'une vidéo sur un réseau est facilitée par l'introduction de la notion d'entité NAL (en anglais "Network Abstraction Layer"). Une NAL est une unité élémentaire de transfert du flux binaire qui fournit dans son en-tête des éléments de description des données transportées dans la partie données de la NAL. A titre d'exemple non limitatif, pour la transmission d'un flux SVC, la NAL peut être vue comme un conteneur de données vidéo (en anglais "video data container") ; l'en-tête de NAL comporte en particulier les paramètres suivants : • Dependency_id (DId) : spécifie la couche spatiale des données vidéo contenues dans la NAL ; • Quality_id (QId) : spécifie la couche de qualité des données vidéo contenues dans la NAL ; • Temporal_id (TId) : spécifie la couche temporelle des données 30 vidéo contenues dans la NAL. Toutes les NALs correspondant à une même image codée forment une entité appelée AU (en anglais "Access Unit"). Spatial scalability involves inserting several spatial resolutions (corresponding to different numbers of pixels represented by the encoded data) into a video stream, the lowest resolution being used for prediction of higher resolutions. Scalability in quality takes three different forms: Coarse Grain Scalability (CGS), Medium Grain Scalability (MGS) and Fine Grain Scalability (FGS). "Fine Grain Scalability"). CGS scalability uses the same concepts as spatial scalability, except that for CGS, over-sampling operations of inter-layer prediction are omitted. The FGS scalability allows the creation of a bitstream that can be truncated at any point while remaining decodable. MGS scalability has been defined as intermediate between CGS and FGS: it offers decoding points in the bitstream finer than CGS but does not allow truncation at any point like FGS. MGS scalability is often considered to provide sufficient granularity for realistic network conditions. The transmission of a video on a network is facilitated by the introduction of the concept of NAL entity (in English "Network Abstraction Layer"). A NAL is an elementary bit-stream transfer unit that provides in its header elements for describing the data carried in the data portion of the NAL. By way of non-limiting example, for the transmission of an SVC stream, the NAL can be seen as a video data container (in English). the NAL header includes in particular the following parameters: • Dependency_id (DId): specifies the spatial layer of the video data contained in the NAL; • Quality_id (QId): specifies the quality layer of the video data contained in the NAL; • Temporal_id (TId): Specifies the temporal layer of the video data contained in the NAL. All the NALs corresponding to the same coded picture form an entity called AU (in English "Access Unit").
Dans le cadre d'une application de diffusion vidéo (souvent appelée "video streaming" en anglais) entre un système serveur et un dispositif client au travers d'un réseau, les données vidéo sont généralement transportées dans des paquets RTP (protocole de transport en temps réel, en anglais "Real-time Transport Protocof') car RTP offre un ensemble intéressant d'outils de résistance aux erreurs. L'en-tête de paquet RTP contient en particulier deux informations : • un numéro de séquence, et • un élément d'horodatage ou estampille temporelle (noté 10 Timestamp). Le numéro de séquence est choisi aléatoirement pour le premier paquet d'une session de diffusion vidéo. Il augmente ensuite de 1 chaque fois qu'un nouveau paquet est créé pour cette application. Le numéro de séquence offre une façon de détecter qu'une perte 15 s'est produite dans un ensemble de paquets. En effet, RTP empêche les sauts de numéro de séquence. Si un client détecte dans les numéros de séquence un saut supérieur à 1 entre deux paquets reçus consécutivement, il peut en déduire qu'au moins une perte s'est produite. L'estampille temporelle (en anglais "timestamp") représente l'instant 20 de création des données transportées. Par exemple, toutes les données SVC correspondant à un même instant doivent porter la même estampille temporelle si elles sont transportées par plusieurs paquets. L'ensemble de ces paramètres permet de suivre la transmission des paquets transportant les données vidéo codées sur un réseau de transmission. 25 En effet, les réseaux de communication utilisant la transmission par paquets sont confrontés régulièrement à des problèmes de pertes de données. Les applications vidéo sont particulièrement sensibles à ces pertes dès lors que le décodage en temps réel empêche la retransmission des données perdues et que les erreurs se propagent dans les données reçues du 30 fait des méthodes classiques de codage prédictif mises en oeuvre. Les erreurs ou pertes de données détectées dans les réseaux de communication peuvent avoir plusieurs causes telles que des collisions de paquets, des problèmes d'interférence, ou encore sont dues à une congestion du réseau de communication. La transmission de données vidéo est alors confrontée à des pertes isolées, lorsque les événements générant ces pertes sont de courte durée (interférence, collision de paquets) ou à des pertes se produisant sur une durée plus longue, lorsqu'elles sont dues par exemple à une congestion du réseau de communication. Lorsqu'un réseau de communication transporte des données vidéo scalables, chaque niveau hiérarchique des données vidéo codées est transporté dans une session de diffusion groupée ("multicast session") dédiée. Les dispositifs clients de cette application peuvent s'abonner (en anglais "to subscribe") à un sous-ensemble de ces sessions de diffusion groupée, recevant ainsi différents niveaux de hiérarchie en fonction de leur capacité de décodage. In the context of a video broadcast application (often called "video streaming" in English) between a server system and a client device over a network, the video data is generally transported in RTP packets (transport protocol). real-time Transport Protocol) because RTP offers an interesting set of error-resistance tools The RTP packet header contains in particular two pieces of information: • a sequence number, and • a timestamp element or Timestamp (Timestamp): The sequence number is chosen randomly for the first packet of a video broadcast session, and then increments by 1 each time a new package is created for that application. The sequence number provides a way of detecting that a loss has occurred in a set of packets, because RTP prevents sequence number hops if a client detects in the numbers. sequencing a jump greater than 1 between two packets received consecutively, it can deduce that at least one loss has occurred. The time stamp (in English "timestamp") represents the time of creation of the transported data. For example, all SVC data corresponding to the same instant must bear the same time stamp if they are carried by several packets. All of these parameters make it possible to track the transmission of packets carrying coded video data over a transmission network. Indeed, communication networks using packet transmission are regularly confronted with data loss problems. Video applications are particularly sensitive to these losses since real-time decoding prevents the retransmission of lost data and the errors propagate in the received data due to the conventional predictive coding methods implemented. The errors or losses of data detected in the communication networks can have several causes such as packet collisions, interference problems, or are due to congestion of the communication network. The video data transmission is then faced with isolated losses, when the events generating these losses are of short duration (interference, packet collision) or losses occurring over a longer period, when they are due for example to congestion of the communication network. When a communication network carries scalable video data, each hierarchical level of the encoded video data is carried in a dedicated multicast session. The client devices of this application can subscribe (in English "to subscribe") to a subset of these multicast sessions, thus receiving different levels of hierarchy according to their decoding capacity.
Dans un tel cas, il est particulièrement avantageux de pouvoir évaluer dans quelle mesure un niveau de hiérarchie est affecté par des pertes, afin d'éviter d'acheminer vers un dispositif client des niveaux de hiérarchie qui n'apporteront pas une amélioration suffisante de la qualité spatiale, SNR ou temporelle lors du décodage de la séquence vidéo. In such a case, it is particularly advantageous to be able to evaluate the extent to which a hierarchy level is affected by losses, in order to avoid routing hierarchy levels to a client device that will not provide sufficient improvement in the hierarchy. spatial, SNR or temporal quality when decoding the video sequence.
On connaît ainsi des techniques de détection d'erreurs mises en oeuvre au niveau d'un dispositif client d'un réseau de communication permettant de détecter les erreurs et de localiser l'image affectée cette erreur. Le document US-A-7 072 403 propose une coopération entre la couche réseau et le décodeur, dans un système ou les paquets transportent 25 des blocs de données correspondant à un ensemble de pixels. Le dispositif client détecte des erreurs dans les paquets au niveau réseau en utilisant des codes détecteurs d'erreurs et fournit l'information correspondante au décodeur. Le décodeur peut ainsi décider si les blocs contenus dans les 30 paquets sont effectivement affectés par une perte. Thus known error detection techniques implemented at a client device of a communication network for detecting errors and locate the image affected this error. US-A-7,072,403 proposes a cooperation between the network layer and the decoder in a system where the packets carry blocks of data corresponding to a set of pixels. The client device detects errors in the packets at the network level by using error detection codes and provides the corresponding information to the decoder. The decoder can thus decide whether the blocks contained in the packets are actually affected by a loss.
Il est alors possible de décider de ne pas décoder dans le flux de données vidéo reçu le niveau hiérarchique dont les données vidéo sont affectées de manière importante par des pertes de données. Dès lors qu'un niveau hiérarchique n'est pas décodé par le dispositif client, il est intéressant de proposer une méthode permettant d'éviter la transmission de ce niveau hiérarchique au dispositif client dans le cadre d'une transmission par sessions de diffusion groupée. On a illustré sur les figures 1 à 3 un contrôle classique par un dispositif client du transfert d'une séquence vidéo lorsque des pertes isolées se produisent sur le réseau de communication. Ici, un serveur S transmet une séquence vidéo sous forme de données vidéo codées selon un codage hiérarchique à un ensemble de six dispositifs clients Cl, C2, C3, C4, C5, C6. Le flux de données est ainsi scalable et transmis sur trois sessions de diffusion groupée, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée. Les flèches en tirets représentent une première session de diffusion groupée transportant le niveau hiérarchique inférieur. Les flèches en pointillées représentent une deuxième session de diffusion groupée transportant un deuxième niveau hiérarchique. Les flèches en trait plein représentent une troisième session de diffusion groupée transportant un troisième niveau hiérarchique, supérieur aux précédents. La séquence vidéo est transmise par trois routeurs R1, R2, R3. It is then possible to decide not to decode in the received video data stream the hierarchical level whose video data is significantly affected by data loss. Since a hierarchical level is not decoded by the client device, it is advantageous to propose a method for avoiding the transmission of this hierarchical level to the client device in the context of a multicast session transmission. FIGS. 1 to 3 show a conventional control by a client device of the transfer of a video sequence when isolated losses occur on the communication network. Here, an S server transmits a video sequence as hierarchically coded video data to a set of six client devices C1, C2, C3, C4, C5, C6. The data stream is thus scalable and transmitted over three multicast sessions, each hierarchical level being transmitted on the communication network respectively by a multicast session. The dashed arrows represent a first multicast session carrying the lower hierarchical level. The dashed arrows represent a second multicast session carrying a second hierarchical level. The solid arrows represent a third multicast session carrying a third hierarchical level, superior to the previous ones. The video sequence is transmitted by three routers R1, R2, R3.
Les deux premiers routeurs R1, R2 sont des routeurs à haut débit alors que le routeur R3 est un routeur à bas débit. Ainsi, le dispositif client Cl, connecté uniquement aux deux premiers routeurs R1, R2 reçoit un haut débit de données et peut ainsi recevoir les trois sessions de diffusion groupée. The first two routers R1, R2 are high speed routers whereas the router R3 is a low rate router. Thus, the client device C1, connected only to the first two routers R1, R2 receives a high data rate and can thus receive the three multicast sessions.
En revanche, les dispositifs clients C2 à C6, connectés au troisième routeur R3, sont uniquement capables de recevoir les deux premières sessions de diffusion groupée de la séquence vidéo. On the other hand, the client devices C2 to C6, connected to the third router R3, are only able to receive the first two multicast sessions of the video sequence.
Dans un tel cas de figure, comme illustré à la figure 2, lorsqu'un dispositif client C2 essaye de s'abonner à la troisième session de diffusion groupée, cette souscription provoque une congestion au niveau du réseau de communication, et notamment du troisième routeur R3. In such a case, as illustrated in FIG. 2, when a client device C2 tries to subscribe to the third multicast session, this subscription causes congestion at the level of the communication network, and in particular the third router. R3.
Cependant, cette congestion affecte le transfert des données vidéo à destination de l'ensemble des dispositifs clients C2 à C6 connectés au troisième routeur R3. On a illustré à la figure 3 la réaction classique des dispositifs clients C2 à C6 lors de la détection de pertes de données dues à la congestion du réseau au niveau du routeur R3. Dans un tel cas, lorsque des pertes de données sont détectées par les dispositifs clients C2 à C6, ils se désabonnent (en anglais "unsubscribe") de la session de diffusion groupée de plus haut niveau. Ainsi, dans l'exemple illustré à la figure 3, le dispositif client C2 à l'origine de la congestion se désabonne de la troisième session de diffusion groupée, alors que les dispositifs clients C3 à C6 se désabonnent de la deuxième session de diffusion groupée. Ce procédé classique de contrôle du transfert de la séquence vidéo présente ainsi l'inconvénient d'entraîner des réactions non souhaitées au niveau des dispositifs clients du réseau de communication. En effet, dans l'exemple précédent, la congestion provoquée par le dispositif client C2 était temporaire et isolée et n'aurait pas dû affecter l'abonnement des dispositifs clients C3 à C6 aux sessions de diffusion groupée. Une solution proposée par S.MAC CANNE et V. JACOBSON, ACM SIGCOMM 96, appelée "Receiver Layered Multicast" ou RLM a été proposée pour éviter des réactions intempestives sur un réseau de communication. Dans son principe, la solution RLM prévoit que, lorsqu'un client essaye de s'abonner à une session de diffusion groupée additionnelle, il informe les autres clients du réseau de communication en envoyant un message multidiffusé ("multicast message" en anglais. However, this congestion affects the transfer of video data to all client devices C2 to C6 connected to the third router R3. FIG. 3 illustrates the conventional reaction of the client devices C2 to C6 during the detection of data losses due to network congestion at the level of the router R3. In such a case, when data losses are detected by the client devices C2 to C6, they unsubscribe from the higher level multicast session. Thus, in the example illustrated in FIG. 3, the client device C2 at the origin of the congestion unsubscribes from the third multicast session, while the client devices C3 to C6 unsubscribe from the second multicast session . This conventional method of controlling the transfer of the video sequence thus has the disadvantage of causing unwanted reactions at the client devices of the communication network. In fact, in the previous example, the congestion caused by the client device C2 was temporary and isolated and should not have affected the subscription of the client devices C3 to C6 to the multicast sessions. A solution proposed by S.MAC CANNE and V. JACOBSON, ACM SIGCOMM 96, called "Receiver Layered Multicast" or RLM has been proposed to avoid untimely reactions on a communication network. In principle, the RLM solution provides that, when a customer tries to subscribe to an additional multicast session, it informs other clients of the communication network by sending a multicast message ("multicast message").
Les autres dispositifs clients sont ainsi informés qu'un des dispositifs clients essaye de s'abonner à une session additionnelle et que cette tentative peut entrainer une congestion temporelle dans le réseau de communication. Si une telle congestion a lieu immédiatement après la réception d'un tel message par les dispositifs clients, ces derniers ne réagissent pas à la détection de pertes de données affectant les données vidéo reçues, et en particulier, ne modifient pas leur abonnement au sous-ensemble de sessions de diffusion groupée. Toutefois, cette solution nécessite la création d'un protocole permettant au client d'informer les autres clients par un message multidiffusé. Par ailleurs, cette solution est adaptée uniquement à ce type de congestion et n'est pas adaptée à gérer les congestions temporaires créées par d'autres applications. On a illustré à la figure 4 le comportement d'un dispositif client mettant en oeuvre la solution RLM pour contrôler le transfert d'une séquence vidéo transmise par un sous-ensemble de sessions de diffusion groupée. Pendant les trois premières périodes de temps A, le dispositif client s'abonne successivement à trois premières sessions de diffusion groupée. Puisqu'aucune congestion n'apparaît, à la période suivante, il tente de s'abonner à une session de diffusion groupée supplémentaire. Cependant, comme illustré à la figure 4, une congestion du réseau de communication, détectée à partir des pertes de données affectant les données vidéo reçues, apparaît dès lors que le débit cumulé des quatre sessions de diffusion groupée est supérieur au débit disponible sur le réseau de communication. Dès lors que des pertes de données sont détectées, le dispositif client se désabonne de la session de diffusion groupée de plus haut niveau. Ensuite, le dispositif client essaye de nouveau de s'abonner à cette quatrième session de diffusion groupée, mais la période de temps entre chaque tentative de souscription est augmentée, et par exemple doublée. The other client devices are thus informed that one of the client devices is trying to subscribe to an additional session and that this attempt may cause temporal congestion in the communication network. If such congestion takes place immediately after the receipt of such a message by the client devices, the latter do not react to the detection of data loss affecting the video data received, and in particular, do not change their subscription to the subsystem. set of multicast sessions. However, this solution requires the creation of a protocol allowing the client to inform other clients by a multicast message. Moreover, this solution is adapted only to this type of congestion and is not adapted to manage temporary congestion created by other applications. FIG. 4 illustrates the behavior of a client device implementing the RLM solution for controlling the transfer of a video sequence transmitted by a subset of multicast sessions. During the first three periods of time A, the client device subscribes successively to three first multicast sessions. Since there is no congestion, in the next period it attempts to subscribe to an additional multicast session. However, as illustrated in FIG. 4, a congestion of the communication network, detected from the loss of data affecting the video data received, appears as soon as the cumulative bit rate of the four multicast sessions is greater than the bit rate available on the network. Communication. When data loss is detected, the client device unsubscribes from the higher level multicast session. Then, the client device tries to subscribe again to this fourth multicast session, but the time period between each subscription attempt is increased, for example doubled.
L'augmentation de cette période de temps évite de provoquer des congestions trop nombreuses et trop fréquentes sur le réseau de communication. Comme indiqué précédemment, cette solution RLM présente l'inconvénient d'entrainer un désabonnement à la session de diffusion groupée de plus haut niveau systématiquement lors de la détection de pertes de données. Lorsque la congestion est temporaire, l'utilisation des possibilités de transmission du réseau de communication n'est pas optimisée. The increase of this period of time avoids causing too many and too frequent congestions on the communication network. As mentioned above, this RLM solution has the disadvantage of causing the top-level multicast session always to be unsubscribed when data loss is detected. When the congestion is temporary, the use of the transmission possibilities of the communication network is not optimized.
Par ailleurs, comme bien illustré à la figure 4, en augmentant la période de temps entre chaque essai d'abonnement, le système perd en réactivité. Il empêche le dispositif client ainsi de réagir efficacement lorsque le débit du réseau de communication augmente. Par exemple, comme illustré à la figure 4, lorsque la période de temps est égale par exemple à huit A, une augmentation de la bande passante du réseau en début de cette période ne permettra pas un abonnement à la quatrième session de diffusion groupée avant la fin de cette période alors que la bande passante disponible permettrait un abonnement amélioré par le dispositif client aux différentes sessions disponibles de diffusion groupée. Furthermore, as well illustrated in Figure 4, by increasing the time period between each subscription trial, the system loses responsiveness. It prevents the client device from reacting effectively when the throughput of the communication network increases. For example, as illustrated in FIG. 4, when the period of time is equal to, for example, eight A, an increase in the bandwidth of the network at the beginning of this period will not allow a subscription to the fourth multicast session before the end of this period while the available bandwidth would allow an enhanced subscription by the client device to the different available multicast sessions.
La présente invention a notamment pour but d'éviter une réaction intempestive d'un dispositif client dans la gestion de son abonnement à des sessions de diffusion groupée pour le transfert d'une séquence vidéo transmise sur un réseau de communication, sans nécessité de communication entre les dispositifs clients du réseau de communication. The present invention is intended in particular to avoid an unwanted reaction of a client device in the management of its subscription to multicast sessions for the transfer of a video sequence transmitted over a communication network, without the need for communication between the client devices of the communication network.
A cet effet, la présente invention concerne selon un premier aspect un procédé de contrôle par un dispositif client du transfert d'une séquence vidéo transmise sur un ensemble de sessions de diffusion groupée par un serveur dans un réseau de communication, la séquence vidéo étant codée selon un codage vidéo hiérarchique sur un ensemble de niveaux hiérarchiques, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée, le dispositif client s'abonnant à au moins un sous-ensemble de sessions de diffusion groupée. For this purpose, the present invention relates, according to a first aspect, to a method of control by a client device of the transfer of a video sequence transmitted on a set of multicast sessions by a server in a communication network, the video sequence being coded according to a hierarchical video coding on a set of hierarchical levels, each hierarchical level being transmitted on the communication network respectively by a multicast session, the client device subscribing to at least a subset of multicast sessions.
Le procédé de contrôle comprend les étapes suivantes : - détection, sur un premier ensemble d'images de la séquence vidéo, de pertes de données affectant des données vidéo du premier ensemble d'images ; - sélection d'une technique de décodage en fonction de la localisation des données vidéo affectées par les pertes de données dans le premier ensemble d'images ; - détection, sur un second ensemble d'images de la séquence vidéo, la longueur du second ensemble d'images étant supérieure à la longueur du premier ensemble d'images, des pertes de données affectant des données vidéo du second ensemble d'images ; - évaluation de l'importance des pertes de données affectant les données vidéo du second ensemble d'images ; et - adaptation de l'abonnement par le dispositif client à un sous- ensemble de sessions de diffusion groupée en fonction de l'importance des pertes de données affectant les données vidéo du second ensemble d'images. Le procédé de contrôle selon l'invention permet ainsi de choisir le sous-ensemble de sessions de diffusion groupée auxquelles s'abonne le dispositif client en prenant en compte les pertes de données sur une période de temps supérieure à celle utilisée pour traiter les pertes au niveau du décodage, afin d'éviter notamment le désabonnement à une session de diffusion groupée en cas de pertes de données dues à une congestion temporaire du réseau de communication. Ainsi, une étape de détection d'erreurs à court terme sur un premier ensemble d'images est utilisée pour déterminer quels niveaux hiérarchiques doivent être décodés, alors qu'une étape de détection d'erreurs à long terme sur un second ensemble d'images est utilisée pour déterminer le sous-ensemble de sessions de diffusion groupée auxquelles est abonné le dispositif client. The control method comprises the following steps: detecting, on a first set of images of the video sequence, data losses affecting video data of the first set of images; selecting a decoding technique according to the location of the video data affected by the data losses in the first set of images; detecting, on a second set of images of the video sequence, the length of the second set of images being greater than the length of the first set of images, data losses affecting video data of the second set of images; - evaluating the importance of the data losses affecting the video data of the second set of images; and - adapting the subscription by the client device to a subset of multicast sessions based on the amount of data loss affecting the video data of the second set of images. The control method according to the invention thus makes it possible to choose the subset of multicast sessions to which the client device subscribes, taking into account the losses of data over a period of time greater than that used to process the losses at the time. level of decoding, in particular to avoid unsubscribing to a multicast session in the event of data loss due to temporary congestion of the communication network. Thus, a short-term error detection step on a first set of images is used to determine which hierarchical levels must be decoded, while a long-term error detection step on a second set of images is used to determine the subset of multicast sessions to which the client device subscribes.
Le procédé de contrôle permet ainsi d'adapter la réaction du dispositif client dans le contrôle de la transmission d'une séquence vidéo en fonction du type de congestion, de longue durée ou transitoire, sur le réseau de communication. Par ailleurs, le procédé de contrôle peut être mis en oeuvre par chaque dispositif client sans requérir d'informations sur le comportement des autres clients et notamment les abonnements ou désabonnements des autres dispositifs clients à un ensemble de sessions de diffusion groupée sur le réseau de communication. Le procédé de contrôle conforme à l'invention permet ainsi d'adapter l'abonnement du dispositif client de façon optimisée sur le réseau de communication, quelles que soient la nature et l'origine des congestions apparaissant sur le réseau de communication. Selon un mode de réalisation pratique de l'invention, l'étape de sélection d'une technique de décodage est adaptée à sélectionner au moins un niveau hiérarchique à ne pas décoder. The control method thus makes it possible to adapt the reaction of the client device in the control of the transmission of a video sequence depending on the type of congestion, long-term or transient, on the communication network. Moreover, the control method can be implemented by each client device without requiring information on the behavior of other clients and in particular the subscriptions or unsubscriptions of other client devices to a set of multicast sessions on the communication network. . The control method according to the invention thus makes it possible to adapt the subscription of the client device in an optimized manner on the communication network, whatever the nature and origin of the congestions appearing on the communication network. According to a practical embodiment of the invention, the step of selecting a decoding technique is adapted to select at least one hierarchical level not to be decoded.
En pratique, à l'étape d'évaluation, l'importance des pertes de données est évaluée sur des données vidéo d'un niveau hiérarchique donné et à l'étape d'adaptation, le dispositif client se désabonne d'une session de diffusion groupée transmettant le niveau hiérarchique donné lorsque le nombre de pertes de données évaluées dépasse une valeur seuil prédéterminée de pertes de données. De préférence, la valeur seuil prédéterminée a une valeur dépendante du niveau hiérarchique donné. Par exemple, la valeur seuil prédéterminée est d'autant plus élevée que le niveau hiérarchique donné est bas. In practice, at the evaluation stage, the importance of data loss is evaluated on video data of a given hierarchical level and at the adaptation stage, the client device unsubscribes from a broadcast session. group conveying the given hierarchy level when the number of evaluated data losses exceeds a predetermined threshold value of data loss. Preferably, the predetermined threshold value has a value dependent on the given hierarchical level. For example, the predetermined threshold value is even higher than the given hierarchical level is low.
Selon une caractéristique avantageuse, à l'étape d'adaptation, le dispositif client se désabonne en outre d'au moins une session de diffusion groupée transmettant des données vidéo de niveau hiérarchique supérieur au niveau hiérarchique donné. Ainsi, lorsque des congestions importantes apparaissent sur le 30 réseau de communication, il est possible d'obtenir le désabonnement du dispositif client à plusieurs sessions de diffusion groupée simultanément, ce qui permet d'accélérer l'adaptation de la transmission de la séquence vidéo en fonction du débit disponible sur le réseau de communication. On peut ainsi obtenir le désabonnement à une ou plusieurs sessions de diffusion groupée transmettant des données vidéo de niveau hiérarchique supérieur au niveau hiérarchique affecté par des pertes de données, en particulier lorsque les données vidéo du niveau hiérarchique supérieur dépendent des données vidéo du niveau hiérarchique inférieur affectées par les pertes de données. Avantageusement, les données vidéo reçues par un dispositif client sont décodables dans la mesure où elles ne sont pas dépendantes d'un hiérarchique inférieur affecté par des pertes. En pratique, un niveau hiérarchique peut être caractérisé par trois indices représentant respectivement un niveau de hiérarchie spatiale, un niveau de hiérarchie temporelle et un niveau de hiérarchie en qualité, et un premier niveau hiérarchique est supérieur à un second niveau hiérarchique lorsqu'au moins un des indices représentatifs du premier niveau a une valeur supérieure à la valeur du même indice représentatif du second niveau. Selon une mise en pratique de l'invention, le procédé de contrôle comprend les étapes suivantes lorsque le serveur insère des niveaux de priorité respectivement dans des paquets de données vidéo transférés respectivement sur un ensemble de sessions de diffusion groupée, le niveau de priorité inséré dans un paquet de données vidéo étant dépendant du niveau hiérarchique des données vidéo du paquet : - identification du niveau de priorité associé à un paquet de données vidéo affectées par les pertes de données détectées lors de l'étape de détection 25 sur un second ensemble d'images de la séquence vidéo ; et - adaptation de l'abonnement par le dispositif client au sous-ensemble de sessions de diffusion groupée en fonction du niveau de priorité identifié. Selon une caractéristique avantageuse de l'invention, le procédé de 30 contrôle comprend une étape de variation de la longueur dudit second ensemble d'images en fonction de l'adaptation de l'abonnement par le dispositif client au sous-ensemble de sessions de diffusion groupée à ladite étape d'adaptation. En pratique, à ladite étape de variation, la longueur du second ensemble d'images est diminuée lorsqu'à ladite étape d'adaptation, le dispositif client se désabonne d'au moins une session de diffusion groupée. Alternativement, à ladite étape de variation, la longueur du second ensemble d'images est augmentée lorsqu'à ladite étape d'adaptation, le dispositif client maintient son abonnement au sous-ensemble de sessions de diffusion groupée. According to an advantageous characteristic, in the adaptation step, the client device also unsubscribes from at least one multicast session transmitting video data of hierarchical level higher than the given hierarchical level. Thus, when large congestions occur on the communication network, it is possible to unsubscribe the client device to multiple multicast sessions simultaneously, thereby speeding up the adaptation of the transmission of the video sequence. function of the available flow on the communication network. This can result in unsubscribing at one or more multicast sessions transmitting video data at a higher hierarchical level than the hierarchical level affected by data loss, especially when the video data of the higher hierarchical level depends on the video data of the lower hierarchical level. affected by data loss. Advantageously, the video data received by a client device are decodable to the extent that they are not dependent on a lower hierarchy affected by losses. In practice, a hierarchical level can be characterized by three indices respectively representing a level of spatial hierarchy, a level of temporal hierarchy and a hierarchy level in quality, and a first hierarchical level is greater than a second hierarchical level when at least one representative indices of the first level have a value greater than the value of the same representative index of the second level. According to one embodiment of the invention, the control method comprises the following steps when the server inserts priority levels respectively into video data packets respectively transferred on a set of multicast sessions, the priority level inserted in a video data packet being dependent on the hierarchical level of the video data of the packet: identification of the priority level associated with a video data packet affected by the loss of data detected during the detection step on a second set of data images of the video sequence; and - adapting the subscription by the client device to the subset of multicast sessions according to the identified priority level. According to an advantageous characteristic of the invention, the control method comprises a step of varying the length of said second set of images according to the adaptation of the subscription by the client device to the subset of broadcast sessions. grouped at said adaptation step. In practice, at said step of variation, the length of the second set of images is decreased when at said adaptation step, the client device unsubscribes from at least one multicast session. Alternatively, at said step of variation, the length of the second set of images is increased when at said adaptation step, the client device maintains its subscription to the subset of multicast sessions.
En pratique, le premier ensemble d'images est un groupe d'images, le second ensemble d'images étant constitué d'un ensemble de groupes d'images successifs incluant le premier ensemble d'images. En pratique, la longueur du second ensemble d'images est augmentée ou diminuée de la longueur d'un groupe d'images. In practice, the first set of images is a group of images, the second set of images consisting of a set of successive image groups including the first set of images. In practice, the length of the second set of images is increased or decreased by the length of a group of images.
Selon une autre caractéristique préférée de l'invention, lorsque la longueur du second sous-ensemble d'images est égale à une valeur minimale préfixée, un intervalle de temps entre deux tentatives d'abonnement par ledit dispositif client à une session additionnelle de diffusion groupée, s'ajoutant audit sous-ensemble de sessions de diffusion groupée, est augmenté. According to another preferred feature of the invention, when the length of the second subset of images is equal to a minimum prefixed value, a time interval between two subscription attempts by said client device to an additional multicast session , in addition to said subset of multicast sessions, is increased.
On évite ainsi de multiplier les tentatives d'abonnement à une session additionnelle de diffusion groupée lorsque cet abonnement provoque systématiquement une congestion sur le réseau de communication. Selon un second aspect, la présente invention concerne un procédé de décodage par un dispositif client d'une séquence vidéo transmise sur un ensemble de sessions de diffusion groupée par un serveur dans un réseau de communication, ladite séquence vidéo étant codée selon un codage vidéo hiérarchique sur un ensemble de niveaux hiérarchiques, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée, ledit dispositif client s'abonnant à au moins un sous-ensemble de sessions de diffusion groupée, le procédé de décodage comprenant les étapes suivantes : - détection, sur un premier ensemble d'images de la séquence vidéo, de pertes de données affectant des données vidéo du premier ensemble d'images ; - décodage d'une sélection de niveaux hiérarchique en fonction de la 5 localisation des données vidéo affectées par les pertes de données dans le premier ensemble d'images ; - détection, sur un second ensemble d'images de la séquence vidéo, la longueur du second ensemble d'images étant supérieure à la longueur du premier ensemble d'images, des pertes de données affectant des données 10 vidéo du second ensemble d'images ; - évaluation de l'importance des pertes de données affectant les données vidéo du second ensemble d'images ; et - adaptation de l'abonnement par le dispositif client au sous-ensemble de sessions de diffusion groupée en fonction de l'importance des 15 pertes de données affectant les données vidéo du second ensemble d'images. Corrélativement, la présente invention concerne également un dispositif de contrôle du transfert d'une séquence vidéo transmise sur un ensemble de sessions de diffusion groupée par un serveur dans un réseau de communication, ladite séquence vidéo étant codée selon un codage vidéo 20 hiérarchique sur un ensemble de niveaux hiérarchiques, chaque niveau hiérarchique étant transmis sur le réseau de communication respectivement par une session de diffusion groupée, ledit dispositif client s'abonnant à au moins un sous-ensemble de sessions de diffusion groupée, le dispositif de contrôle comprenant : 25 - des moyens de détection, sur un premier ensemble d'images de la séquence vidéo, de pertes de données affectant des données vidéo du premier ensemble d'images ; - des moyens de sélection d'une technique de décodage en fonction de la localisation des données vidéo affectées par les pertes de données dans 30 le premier ensemble d'images ; - des moyens de détection, sur un second ensemble d'images de la séquence vidéo, la longueur du second ensemble d'images étant supérieure à la longueur du premier ensemble d'images, des pertes de données affectant des données vidéo du second ensemble d'images ; - des moyens d'évaluation de l'importance des pertes de données affectant les données vidéo du second ensemble d'images ; et - des moyens d'adaptation de l'abonnement par le dispositif client au sous-ensemble de sessions de diffusion groupée en fonction de l'importance des pertes de données affectant les données vidéo du second ensemble d'images. Ce dispositif de contrôle présente des caractéristiques et avantages 10 analogues à ceux décrits précédemment en relation avec le procédé de contrôle. La présente invention propose aussi un dispositif client dans un réseau de communication, comportant des moyens de calcul, des moyens de stockage et des moyens de communication avec le réseau, les moyens de 15 calcul coopérant avec les moyens de stockage et les moyens de communication avec le réseau pour mettre en oeuvre le procédé de contrôle et/ou le procédé de décodage conforme à l'invention. Elle vise également un moyen de stockage d'informations lisibles par un ordinateur ou un microprocesseur conservant des instructions d'un 20 programme informatique, adapté à mettre en oeuvre le procédé de contrôle et/ou le procédé de décodage tels que ceux succinctement décrits ci-dessus. Finalement, la présente invention vise aussi un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, comportant des séquences d'instructions pour mettre en oeuvre un procédé de contrôle 25 et/ou un procédé de décodage tels que décrits succinctement ci-dessus, lorsque ce programme est chargé dans et exécuté par l'appareil programmable. Les caractéristiques particulières et les avantages du dispositif client, du moyen de stockage d'informations et du produit programme d'ordinateur sont similaires à ceux des procédés succinctement décrits ci-dessus. 30 Ces caractéristiques et avantages ne sont donc pas répétés ici. D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après. This avoids multiplying the subscription attempts to an additional multicast session when this subscription systematically causes congestion on the communication network. According to a second aspect, the present invention relates to a method for decoding by a client device a video sequence transmitted on a set of multicast sessions by a server in a communication network, said video sequence being encoded according to a hierarchical video coding on a set of hierarchical levels, each hierarchical level being transmitted over the communication network respectively by a multicast session, said client device subscribing to at least a subset of multicast sessions, the decoding method comprising the following steps: - detecting, on a first set of images of the video sequence, data losses affecting video data of the first set of images; decoding a hierarchical level selection according to the location of the video data affected by the data losses in the first set of images; detection, on a second set of images of the video sequence, the length of the second set of images being greater than the length of the first set of images, data losses affecting video data of the second set of images ; - evaluating the importance of the data losses affecting the video data of the second set of images; and - adapting the subscription by the client device to the subset of multicast sessions based on the amount of data loss affecting the video data of the second set of images. Correlatively, the present invention also relates to a device for controlling the transfer of a video sequence transmitted on a set of multicast sessions by a server in a communication network, said video sequence being coded according to a hierarchical video coding on a set hierarchical levels, each hierarchical level being transmitted over the communication network respectively by a multicast session, said client device subscribing to at least a subset of multicast sessions, the control device comprising: means for detecting, on a first set of images of the video sequence, data losses affecting video data of the first set of images; means for selecting a decoding technique according to the location of the video data affected by the data losses in the first set of images; detection means, on a second set of images of the video sequence, the length of the second set of images being greater than the length of the first set of images, data losses affecting video data of the second set of images; 'images; means for evaluating the importance of the loss of data affecting the video data of the second set of images; and means for adapting the subscription by the client device to the subset of multicast sessions as a function of the importance of the data losses affecting the video data of the second set of images. This control device has features and advantages similar to those previously described in connection with the control method. The present invention also proposes a client device in a communication network, comprising calculation means, storage means and means of communication with the network, the calculation means co-operating with the storage means and the means of communication with the network. the network for implementing the control method and / or the decoding method according to the invention. It also relates to a means for storing information readable by a computer or a microprocessor retaining instructions of a computer program adapted to implement the control method and / or the decoding method such as those briefly described below. above. Finally, the present invention is also directed to a computer program product that can be loaded into a programmable apparatus, including instruction sequences for implementing a control method and / or a decoding method as briefly described above. when this program is loaded into and executed by the programmable device. The particular features and advantages of the client device, the information storage means and the computer program product are similar to those of the methods briefly described above. These features and advantages are therefore not repeated here. Other features and advantages of the invention will become apparent in the description below.
Aux dessins annexés, donnés à titre d'exemples non limitatifs : - les figures 1 à 3 illustrent le principe du contrôle du transfert d'une séquence vidéo mis en oeuvre dans l'Art Antérieur sur un réseau de communication ; - la figure 4 est un schéma illustrant l'adaptation d'un abonnement d'un dispositif client dans l'Art Antérieur en fonction du débit disponible sur un réseau de communication ; - la figure 5 représente de façon schématique un mode particulier de réalisation d'un système de transmission vidéo adapté à mettre en oeuvre la présente invention ; - la figure 6 est un organigramme illustrant les étapes principales du procédé de contrôle conforme à un mode particulier de réalisation de la présente invention ; - les figures 7 et 8 sont des organigrammes illustrant plus en détail, dans un mode particulier de réalisation, l'étape de détection de pertes illustrée à la figure 6 ; - les figures 9 et 10 sont des organigrammes illustrant, selon un mode particulier de réalisation, l'étape de sélection des niveaux hiérarchiques à décoder illustrée à la figure 6 ; - la figure 11 est un organigramme illustrant, selon un mode particulier de réalisation, l'étape d'évaluation de l'importance des pertes de données illustrée à la figure 6 ; et - les figures 12 et 13 sont des schémas illustrant l'adaptation d'un abonnement d'un dispositif client mettant en oeuvre la présente invention, en fonction du débit disponible sur un réseau de communication. Dans la suite de la description, on considère une séquence vidéo transmise entre un serveur d'un réseau de communication et un ou plusieurs clients sur ce réseau de communication. La séquence vidéo est transmise selon un flux continu par un 30 ensemble de sessions de diffusion groupée adressé par un serveur à un dispositif client du réseau de communication. In the accompanying drawings, given by way of non-limiting examples: FIGS. 1 to 3 illustrate the principle of controlling the transfer of a video sequence implemented in the prior art over a communication network; FIG. 4 is a diagram illustrating the adaptation of a subscription of a client device in the prior art as a function of the bit rate available on a communication network; - Figure 5 schematically shows a particular embodiment of a video transmission system adapted to implement the present invention; FIG. 6 is a flowchart illustrating the main steps of the control method according to a particular embodiment of the present invention; FIGS. 7 and 8 are flowcharts illustrating in greater detail, in a particular embodiment, the loss detection step illustrated in FIG. 6; FIGS. 9 and 10 are flowcharts illustrating, according to a particular embodiment, the step of selecting the hierarchical levels to be decoded illustrated in FIG. 6; FIG. 11 is a flowchart illustrating, according to a particular embodiment, the step of evaluating the importance of the losses of data illustrated in FIG. 6; and FIGS. 12 and 13 are diagrams illustrating the adaptation of a subscription of a client device embodying the present invention, as a function of the available data rate on a communication network. In the remainder of the description, a video sequence transmitted between a server of a communication network and one or more clients on this communication network is considered. The video sequence is transmitted in a continuous stream by a set of multicast sessions addressed by a server to a client device of the communication network.
La présente invention a pour objet de contrôler l'abonnement du dispositif client à un sous-ensemble de sessions de diffusion groupée en vue d'optimiser le décodage de la séquence vidéo, notamment en améliorant la réaction à des pertes détectées, à la fois à court terme et à long terme. The present invention aims to control the subscription of the client device to a subset of multicast sessions in order to optimize the decoding of the video sequence, in particular by improving the reaction to detected losses, both short term and long term.
Dans cet exemple particulier de réalisation, les données vidéo sont codées selon un codage vidéo hiérarchique sur un ensemble de niveau hiérarchique (en anglais "Scalable Layer"). Les données vidéo peuvent être codées par exemple conformément à une norme de codage vidéo avec compression de données telle que H.264 ou SVC, où intervient la notion d'entité NAL décrite dans la partie introductive de la présente description. Le procédé de contrôle et de décodage est mis en oeuvre du côté d'un dispositif client au sens de l'architecture client/serveur. Comme illustré à la figure 5, un système de transmission vidéo 15 adapté à mettre en oeuvre la présente invention comporte un serveur 11 et un dispositif client 12. Le serveur 11 comporte une unité de stockage 14 adaptée à mémoriser par exemple une vidéo codée. Le serveur 11 comporte en outre une unité de calcul 13 adaptée à 20 exécuter des programmes ainsi qu'une unité réseau 15 adaptée à émettre des données vidéo sur le réseau. Une unité d'acquisition de données (non représentée) telle qu'une caméra vidéo, peut être ajoutée afin de saisir des vidéos en direct, l'unité de calcul 13 prenant en charge la compression des données vidéo. 25 Le dispositif client 12 comporte de même une unité de stockage 16 adaptée à mémoriser des programmes du dispositif client, et notamment un programme de décodage et d'affichage d'une vidéo. Une unité de calcul 17 est adaptée à exécuter ces programmes. En particulier, l'unité de stockage 16 du dispositif client comporte un 30 ou plusieurs programmes qui comportent des séquences d'instructions pour mettre en oeuvre le procédé de contrôle et le procédé de décodage conforme à l'invention, lorsque ce ou ces programmes sont chargés dans le dispositif client 12 et exécutés par l'unité de calcul 17. Le dispositif client 12 comporte également une unité réseau 18 adaptée à recevoir des paquets de données transmis sur le réseau de 5 communication. Finalement, le dispositif client 12 comporte également une unité d'affichage 19 adaptée à afficher les données vidéo décompressées. On se place ici dans un réseau de communication dans lequel les données sont transportées sur le réseau suivant le protocole RTP. 10 Ainsi, chaque paquet RTP transmis sur le réseau de communication transporte une tranche SVC ("slice" en anglais). Chaque paquet comporte en particulier des données sur le numéro de séquence du paquet RTP et l'estampille temporelle du paquet RTP ; ces données sont placées dans l'en-tête RTP. 15 Par ailleurs, la NAL comprend dans un en-tête appelé en-tête d'extension SVC (en anglais "SCV NAL Extension Header'), les paramètres DId, QId et TId définis dans la partie introductive de la présente description. L'ensemble de ces informations est géré au niveau du dispositif client 12 pour contrôler les pertes de données comme cela sera décrit 20 ultérieurement. On va décrire à présent en référence à la figure 6 un exemple de réalisation du procédé de contrôle et de décodage mis en oeuvre par le dispositif client du réseau de communication. Ici, le serveur transmet en continu le flux SVC sur un ensemble de 25 sessions de diffusion groupée (en anglais "Multicast sessions"). Chaque niveau hiérarchique défini par un niveau de couche spatiale DId, de couche de qualité QId et de couche temporelle TId est associé à une session de diffusion groupée. Ainsi, chaque session de diffusion groupée est associée à un triplet 30 Did, Qid, Tid, défini par les valeurs respectivement des paramètres DId, QId, TId contenus dans l'en-tête de NAL SVC. In this particular embodiment, the video data is coded according to a hierarchical video coding on a set of hierarchical level (in English "Scalable Layer"). The video data may be encoded for example in accordance with a data compression video coding standard such as H.264 or SVC, where the notion of NAL entity described in the introductory part of the present description is involved. The control and decoding method is implemented on the side of a client device in the sense of the client / server architecture. As illustrated in FIG. 5, a video transmission system 15 adapted to implement the present invention comprises a server 11 and a client device 12. The server 11 comprises a storage unit 14 adapted to store, for example, an encoded video. The server 11 further comprises a computing unit 13 adapted to execute programs as well as a network unit 15 adapted to transmit video data on the network. A data acquisition unit (not shown) such as a video camera can be added to capture live video, the computing unit 13 supporting the compression of the video data. The client device 12 likewise comprises a storage unit 16 adapted to store programs of the client device, and in particular a program for decoding and displaying a video. A computing unit 17 is adapted to execute these programs. In particular, the storage unit 16 of the client device comprises one or more programs that include sequences of instructions for implementing the control method and the decoding method according to the invention, when this or these programs are The client device 12 also includes a network unit 18 adapted to receive data packets transmitted over the communication network. Finally, the client device 12 also includes a display unit 19 adapted to display the decompressed video data. Here we place ourselves in a communication network in which the data are transported on the network according to the RTP protocol. Thus, each RTP packet transmitted on the communication network carries a slice (SVC). In particular, each packet includes data on the sequence number of the RTP packet and the time stamp of the RTP packet; these data are placed in the RTP header. Furthermore, the NAL comprises in a header called SVC Extension Header (in English "SCV NAL Extension Header"), the parameters DId, QId and TId defined in the introductory part of the present description. all of this information is managed at the level of the client device 12 to control the loss of data as will be described later .. Reference will now be made to Figure 6 an embodiment of the control and decoding method implemented by the client device of the communication network Here, the server continuously transmits the SVC stream on a set of 25 multicast sessions, each hierarchical level defined by a spatial layer level DId of Qid quality layer and TId time layer is associated with a multicast session.Thus, each multicast session is associated with a triplet Did, Qid, Tid, defined by the vale respectively of the DId, QId, TId parameters contained in the NAL SVC header.
Comme illustré à la figure 6, le procédé de contrôle et de décodage d'une séquence vidéo commence par une étape d'abonnement 600 par le dispositif client à une première session de diffusion groupée qui contient le niveau hiérarchique le plus bas. As illustrated in FIG. 6, the method for controlling and decoding a video sequence begins with a subscription step 600 by the client device at a first multicast session that contains the lowest hierarchical level.
Cette étape d'abonnement 600 est suivie par une étape d'initialisation 601. Lors de cette étape d'initialisation 601, la taille d'une fenêtre d'analyse à long terme WS (en anglais "Long Term Analysis Window") est déterminée. Comme cela ressortira de la suite du procédé, cette fenêtre d'analyse à long terme WS est une fenêtre glissante (en anglais "sliding window"), utilisée pour permettre au dispositif client d'analyser les effets à long terme des pertes de données sur le décodage afin d'adapter l'abonnement du dispositif client à différentes sessions de diffusion groupée. A titre d'exemple, la taille de la fenêtre d'analyse à long terme WS peut être initialisée à la longueur temporelle de deux GOP (acronyme du terme anglais "Group Of Pictures" contenant un nombre prédéterminé d'images, par exemple 16 ou 32) notée dans la suite 2A. Chaque paquet RTP transporte une NAL ou une portion de NAL (si la NAL est trop grosse). Dans SVC, un GOP commence par une NAL correspondant à l'indice de hiérarchie spatiale le plus bas (Did=O), l'indice de hiérarchie temporelle le plus bas (Tid=O), et l'indice de qualité le plus bas (Qid=O). Ce GOP se terminera lorsqu'on recevra la prochaine NAL ayant les mêmes indices (Did=O, Tid=O, Qid=O). Ce sont les données contenues dans le NAL Header et le SVC extension Header, qui permettent d'identifier le début et la fin d'une NAL. Lors de l'étape d'initialisation 601, une variable LST (acronyme du terme anglais "Low Subscription Time") permet de fixer la durée s'écoulant entre deux tentatives du dispositif client pour s'abonner à une nouvelle session de diffusion groupée, comprenant un niveau hiérarchique de données vidéo supérieur à celui des sessions de diffusion groupée auquel il est déjà abonné. La valeur de cette variable LST est par exemple initialisée à un GOP, LST = A. This subscription step 600 is followed by an initialization step 601. During this initialization step 601, the size of a Long Term Analysis Window (WS) is determined. . As will be apparent from the rest of the method, this long-term analysis window WS is a sliding window, used to enable the client device to analyze the long-term effects of data loss on decoding to adapt the client device subscription to different multicast sessions. For example, the size of the long-term analysis window WS may be initialized to the time length of two GOPs (acronym for "Group Of Pictures") containing a predetermined number of images, for example 16 or 32) noted in the following 2A. Each RTP packet carries a NAL or a portion of NAL (if the NAL is too big). In SVC, a GOP starts with a NAL corresponding to the lowest spatial hierarchy index (Did = O), the lowest time hierarchy index (Tid = O), and the lowest quality index. (Qid = O). This GOP will end when we receive the next NAL with the same indices (Did = O, Tid = O, Qid = O). These are the data contained in the NAL Header and the SVC Extension Header, which identify the beginning and end of a NAL. During the initialization step 601, an LST variable (acronym for the term "Low Subscription Time") makes it possible to set the duration that elapses between two attempts by the client device to subscribe to a new multicast session. comprising a hierarchical level of video data higher than that of the multicast sessions to which it is already subscribed. The value of this variable LST is for example initialized to a GOP, LST = A.
Cette étape d'initialisation 601 est suivie d'une étape de réception 602 correspondant à la réception d'une NAL. Une étape de détection de pertes 603 est ensuite mise en oeuvre. Si des pertes sont détectées, l'identification des données vidéo affectées par ces pertes est mise en oeuvre lors d'une étape d'identification 605. Cette étape d'identification 605 consiste à localiser les données perdues, c'est-à-dire les positions des NALs perdues dans le groupe d'images GOP et à mémoriser ces positions dans la mémoire du dispositif client. Ces étapes de détection et d'identification de pertes 603, 605 sont détaillées en référence aux figures 7 et 8. Comme le montre la figure 7, le processus de détection/localisation des étapes 603, 605 de la figure 6 débute lors d'un test 701 qui consiste à comparer le numéro de séquence, noté SeqNum, du dernier paquet reçu, et le numéro de séquence, noté SeqNum_, du paquet reçu immédiatement avant le dernier paquet reçu. Si la différence entre ces deux numéros de séquence est de 1 (test 701 positif), on peut en déduire qu'aucune perte ne s'est produite. Dans ce cas, le processus de détection/localisation prend fin. Sinon (test 701 négatif), on sait déjà à ce stade qu'au moins un paquet est perdu, sans cependant encore savoir quelle NAL est affectée. This initialization step 601 is followed by a reception step 602 corresponding to the reception of a NAL. A loss detection step 603 is then implemented. If losses are detected, the identification of the video data affected by these losses is implemented during an identification step 605. This identification step 605 consists in locating the lost data, that is to say the positions of the NALs lost in the group of GOP images and to store these positions in the memory of the client device. These loss detection and identification steps 603, 605 are detailed with reference to FIGS. 7 and 8. As shown in FIG. 7, the detection / location process of steps 603, 605 of FIG. test 701 which consists in comparing the sequence number, denoted SeqNum, of the last packet received, and the sequence number, denoted SeqNum_, of the packet received immediately before the last packet received. If the difference between these two sequence numbers is 1 (test 701 positive), it can be deduced that no loss has occurred. In this case, the detection / location process ends. Otherwise (test 701 negative), it is already known at this stage that at least one packet is lost, without however yet knowing which NAL is affected.
Dans ce cas, on effectue un test 703, consistant à comparer l'estampille temporelle, notée Timestamp, du dernier paquet reçu, et l'estampille temporelle, notée Timestamp_, du paquet reçu immédiatement avant le dernier paquet reçu. Si ces deux paquets consécutifs n'ont pas la même valeur d'estampille temporelle (test 703 négatif), on passe à l'étape 801, décrite plus loin en liaison avec la figure 8. Si en revanche les deux paquets consécutifs ont la même valeur d'estampille temporelle (test 703 positif), on compare lors du test suivant 707 Did et Did_. In this case, a test 703 is performed, comparing the Timestamp, the timestamp, of the last received packet, and the Timestamp_ timestamp, of the received packet immediately before the last received packet. If these two consecutive packets do not have the same value of time stamp (negative test 703), step 801, described later in connection with FIG. 8, is carried out. On the other hand, the two consecutive packets have the same value. time stamp value (test 703 positive), we compare in the next test 707 Did and Did_.
La notation Did représente la valeur du paramètre DId du dernier paquet reçu et la notation Did_ représente la valeur du paramètre DId du paquet reçu immédiatement avant le dernier paquet reçu. The notation Did represents the value of the parameter DId of the last packet received and the notation Did_ represents the value of the parameter DId of the packet received immediately before the last received packet.
Si Did = Did , on teste si Qid = Qid_ lors du test suivant 709. La notation Qid représente la valeur du paramètre QId du dernier paquet reçu et la notation Qid_ représente la valeur du paramètre QId du paquet reçu immédiatement avant le dernier paquet reçu. Si le test 709 est positif (Qid = Qid_), cela signifie qu'il manque au moins une tranche dans la même AU, dans la même couche spatiale et dans la même couche de qualité que celles de la NAL reçue en dernier (événement 725). Si le test 709 est négatif, on teste si Qid = Qid_+1 lors du test 711. Si le test 711 est positif (Qid = Qid_-F1), on peut en déduire qu'il manque au moins une tranche dans la même AU et dans la même couche spatiale et avec une couche de qualité égale à Qid ou Qid_ (événement 727). Si le test 711 est négatif (Qid n'est pas égal à Qid_-F1), on peut en déduire que les NALs pour lesquelles QId est compris entre Qid_ et Qid sont perdues (événement 713). If Did = Did, we test if Qid = Qid_ during the next test 709. The notation Qid represents the value of the parameter QId of the last received packet and the notation Qid_ represents the value of the parameter QId of the packet received immediately before the last received packet. If the test 709 is positive (Qid = Qid_), this means that at least one slice is missing in the same AU, in the same spatial layer and in the same quality layer as those of the NAL received last (event 725 ). If the test 709 is negative, one tests if Qid = Qid_ + 1 during the test 711. If the test 711 is positive (Qid = Qid_-F1), one can deduce that it misses at least a slice in the same AU and in the same spatial layer and with a quality layer equal to Qid or Qid_ (event 727). If the test 711 is negative (Qid is not equal to Qid_-F1), it can be deduced that the NALs for which QId is between Qid_ and Qid are lost (event 713).
Si les deux paquets consécutifs ont des valeurs différentes de Did (test 707 négatif), on teste lors d'un test 715 si Did = Did_-F1. Si ce n'est pas le cas (test 715 négatif), on peut en déduire que les NALs pour lesquelles Did est compris entre Did et Did_ sont perdues (événement 721). Sinon, c'est-à-dire si Did = Did_+1 (test 715 positif), on teste si Qid = 0 (test 717). Si Qid n'est pas nul (test 717 positif), cela signifie que des NALs avec QId = 0 et QId < Qid ont été perdues (événement 723). Sinon (c'est-à-dire si Qid = 0, i.e. test 717 négatif), on peut en déduire qu'on se trouve dans la même AU, dans une nouvelle couche spatiale et avec QId = O. On en déduit ainsi qu'il manque au moins une tranche avec QId = 0 (événement 719). If the two consecutive packets have values different from Did (test 707 negative), one tests during a test 715 if Did = Did_-F1. If this is not the case (test 715 negative), we can deduce that the NALs for which Did is between Did and Did_ are lost (event 721). Otherwise, that is to say if Did = Did_ + 1 (positive test 715), we test if Qid = 0 (test 717). If Qid is not zero (test 717 positive), it means that NALs with QId = 0 and QId <Qid have been lost (event 723). Otherwise (ie if Qid = 0, ie test 717 negative), we can deduce that we are in the same AU, in a new spatial layer and with QId = O. We thus deduce that at least one slice with QId = 0 is missing (event 719).
Comme représenté sur la figure 8, la partie complémentaire du processus de détection/localisation débute lorsque les deux paquets consécutifs n'ont pas la même valeur d'estampille temporelle (test 703 négatif). On effectue alors un test 801 pour déterminer si la différence entre les deux valeurs d'estampille temporelle (notées Timestamp et Timestamp_) est égale à une unité de temps, notée A, qui correspond à la longueur temporelle d'un groupe d'images GOP. As shown in FIG. 8, the complementary part of the detection / location process starts when the two consecutive packets do not have the same time stamp value (negative test 703). A test 801 is then performed to determine whether the difference between the two time stamp values (denoted Timestamp and Timestamp_) is equal to a unit of time, denoted by A, which corresponds to the time length of a group of GOP images. .
Si ce n'est pas le cas (test 801 négatif), on peut considérer que toutes les NALs dont les valeurs d'estampille temporelle sont comprises entre Timestamp_ et Timestamp, qui auraient donc dû être reçues entre Timestamp_ et Timestamp, ont été perdues (événement 803). If this is not the case (test 801 negative), we can consider that all the NALs whose timestamp values are between Timestamp_ and Timestamp, which should have been received between Timestamp_ and Timestamp, have been lost ( event 803).
Le test 801 et l'étape 803 sont suivis par le test 805, qui consiste à déterminer si Did < Did_. Si Did < Did_ (test 805 positif), on détermine lors d'un test 807 si Did_ et Qid_ prennent leur valeur maximale, c'est-à-dire qu'on teste si Did_ = MaxDid et Qid_ = MaxQid. Si ce n'est pas le cas (test 807 négatif), cela signifie qu'il manque des NALs avec QId > Qid_ et DId > Did_ à la fin de la dernière AU (événement 809). Le test 807 et l'événement 809 sont suivis par un test 811 qui consiste à déterminer si Did prend sa valeur minimale pour la valeur courante de Tid, c'est-à-dire si Did = minDid(Tid). The test 801 and the step 803 are followed by the test 805, which consists in determining if Did <Did_. If Did <Did_ (test 805 positive), one determines during a test 807 if Did_ and Qid_ take their maximum value, that is to say one tests if Did_ = MaxDid and Qid_ = MaxQid. If this is not the case (negative 807 test), it means that NALs with QId> Qid_ and DId> Did_ are missing at the end of the last AU (event 809). The test 807 and the event 809 are followed by an 811 test which consists in determining if Did takes its minimum value for the current value of Tid, that is to say if Did = minDid (Tid).
Si tel est le cas (test 811 positif), on peut en déduire (événement 813) qu'une nouvelle AU a été reçue et qu'il manque au moins une tranche, soit avec DId = minDid(Tid) dans l'AU courante, soit avec DId = MaxDid ou QId = MaxQid dans l'AU reçue précédemment. Si le test 811 est négatif, c'est-à-dire si Did est différent de minDid(Tid), on peut en déduire qu'il manque des couches spatiales avec DId < Did au début de l'AU courante (événement 815). Si le test 817 est positif, c'est-à-dire si Did=Did_=0, on détermine lors d'un test 819 si la valeur maximale de DId est nulle (soit MaxDid = 0). Si tel est le cas, on passe au test 821 décrit ci-après. Sinon, cela signifie que seules les NALs correspondant à DId = 0 ont été reçues pour l'AU précédente, et que les NALs de cette AU ayant des valeurs de DId plus élevées sont perdues (événement 820). Le test 821 consiste à examiner si Qid < Qid_. Si tel est le cas (test 821 positif), on détermine lors d'un test 823 si Qid_ = MaxQid. Si tel est le cas (test 823 positif), on peut en déduire (événement 833) que les premières tranches avec QId Qid sont manquantes dans l'AU courante. If this is the case (test 811 positive), it can be deduced (event 813) that a new AU has been received and that at least one slice is missing, ie with DId = minDid (Tid) in the current AU , either with DId = MaxDid or QId = MaxQid in the AU received previously. If the 811 test is negative, ie if Did is different from minDid (Tid), we can deduce that it lacks spatial layers with DId <Did at the beginning of the current AU (event 815) . If the test 817 is positive, that is to say if Did = Did_ = 0, it is determined during a test 819 if the maximum value of DId is zero (ie MaxDid = 0). If this is the case, proceed to test 821 described below. Otherwise, it means that only the NALs corresponding to DId = 0 have been received for the previous AU, and that the NALs of this AU having higher DId values are lost (event 820). The test 821 is to examine if Qid <Qid_. If this is the case (test 821 positive), it is determined during a test 823 if Qid_ = MaxQid. If this is the case (positive test 823), it can be deduced (event 833) that the first slices with QId Qid are missing in the current AU.
Si le test 823 est négatif, il est suivi par un test 825 où on examine si Qid = minQid(Tid). Si ce n'est pas le cas (test 825 négatif), on peut en déduire que les premières couches de qualité de la couche spatiale courante dans l'AU courante sont manquantes (événement 827). Si en revanche Qid = minQid(Tid) (test 825 positif), cela signifie qu'il manque les dernières couches de qualité dans l'AU précédente (événement 835). Si on n'a pas Qid < Qid_ (test 821 négatif), on examine lors d'un test 829 si Qid = Qid_ = O. Si tel est le cas, cela signifie que les premières tranches de l'AU courante avec QId = 0 sont manquantes (événement 831). Sinon (test 829 négatif), on peut en déduire (événement 837) qu'il manque les premières couches de qualité de l'AU courante. Si le test 817 est négatif, c'est-à-dire si Did et Did_ ne sont pas égaux et sont non nuls, on retourne au test 807 décrit plus haut. A l'issue de ce processus, les NALs affectées par des pertes de données sont ainsi parfaitement identifiées et localisées. En revenant à la figure 6, on vérifie ensuite dans un test 607 si la dernière NAL réceptionnée correspond à un nouveau groupe d'images GOP ou si elle appartient toujours à un groupe d'images précédemment détecté. Si le groupe d'images GOP n'est pas fini, on retourne à l'étape de réception 602 afin de réceptionner les autres NALs du même GOP. En revanche, si un nouveau groupe d'images GOP est détecté, on vérifie dans l'étape de test 608 si des erreurs se sont produites sur le groupe d'images GOP précédent. Dans la négative, l'étape de test 608 est suivie d'une étape d'abonnement 609 dans laquelle le dispositif client peut s'abonner à une session additionnelle de diffusion groupée s'il n'est pas déjà abonné à l'ensemble des sessions de diffusion groupée disponibles sur le réseau de communication. En pratique, lors de l'étape d'abonnement 609, on vérifie si la durée écoulée depuis la dernière tentative d'abonnement par le dispositif client est supérieure ou non à la variable LST. If the 823 test is negative, it is followed by a test 825 where we examine if Qid = minQid (Tid). If this is not the case (negative test 825), it can be deduced that the first quality layers of the current spatial layer in the current AU are missing (event 827). If, on the other hand, Qid = minQid (Tid) (test 825 positive), this means that the last quality layers are missing in the previous AU (event 835). If we do not have Qid <Qid_ (test 821 negative), we examine during a test 829 if Qid = Qid_ = O. If this is the case, it means that the first slices of the current AU with QId = 0 are missing (event 831). If not (829 negative test), we can deduce (event 837) that the first quality layers of the current AU are missing. If the test 817 is negative, that is to say if Did and Did_ are not equal and are non-zero, we return to the test 807 described above. At the end of this process, the NALs affected by data loss are thus perfectly identified and localized. Returning to FIG. 6, a test 607 then checks whether the last received NAL corresponds to a new group of GOP images or whether it still belongs to a previously detected group of images. If the group of GOP images is not finished, it returns to the receiving step 602 to receive the other NALs of the same GOP. On the other hand, if a new GOP image group is detected, it is checked in the test step 608 whether errors have occurred on the previous GOP image group. If not, the test step 608 is followed by a subscribe step 609 in which the client device can subscribe to an additional multicast session if it is not already subscribed to all of the subscriptions. multicast sessions available on the communication network. In practice, during the subscription step 609, it is checked whether or not the duration elapsed since the last subscription attempt by the client device is greater than the variable LST.
Si cette durée dépasse la valeur courante de LST, alors une tentative d'abonnement par le dispositif client peut être mise en oeuvre. En revanche, si la durée écoulée est inférieure à la valeur courante de LST, aucune tentative d'abonnement n'est mise en oeuvre sur le réseau de 5 communication. Par ailleurs, une étape de décodage 610 des données vidéos reçues dans le groupe d'images GOP est mise en oeuvre. L'étape d'abonnement 609 et l'étape de décodage 610 sont suivies de l'étape d'initialisation 601 décrite précédemment et l'ensemble des étapes 10 précédentes est réitéré. Sinon, si à l'issue de l'étape de test 608, des erreurs ont été détectées dans le groupe d'images GOP précédent, une étape de sélection 611 d'une technique de décodage en fonction de la localisation des données vidéo affectées par les pertes de données est mise en oeuvre. 15 Dans ce mode de réalisation, il s'agit de sélectionner les niveaux hiérarchiques pouvant être décodés en tenant compte de l'impact des pertes de données détectées et localisées sur un premier ensemble d'images correspondant, dans ce mode de réalisation et de manière non limitative, à un groupe d'images GOP. 20 Cette étape de sélection 611 des niveaux hiérarchiques à décoder est décrite en détail en référence aux figures 9 et 10. Le processus de sélection de niveau(x) hiérarchique(s) 611 consiste tout d'abord à initialiser les variables Did, Qid, Tid et NumFrame à la valeur 0 (étape 905). La variable NumFrame indique le numéro de l'image traitée. 25 Puis lors d'un test 907, on recherche la NAL qui a été identifiée comme étant perdue lors de l'exécution du processus de détection/localisation d'erreurs. Si la NAL ayant une valeur donnée de Did, Qid et Tid (ce qu'on note NAL(Did, Qid, Tid)) est perdue, l'image correspondante est marquée comme perdue (même si seule une tranche de cette image est perdue) lors d'une étape 30 913. Cette étape est suivie d'un test 915 qui sera décrit ci-après. Si le test 907 est négatif, c'est-à-dire que la NAL considérée NAL(Did, Qid, Tid) n'est pas perdue, on détermine lors d'un test 909 si l'image de référence de cette NAL a été perdue. Si ce n'est pas le cas (test 909 négatif), on effectue le test 915 décrit ci-après. Si en revanche l'image de référence de cette NAL a été perdue (test 909 positif), l'image concernée est marquée comme perdue (étape 911). If this duration exceeds the current value of LST, then a subscription attempt by the client device can be implemented. On the other hand, if the elapsed time is less than the current value of LST, no subscription attempt is implemented on the communication network. Moreover, a decoding step 610 of the video data received in the GOP image group is implemented. The subscription step 609 and the decoding step 610 are followed by the initialization step 601 previously described and all of the preceding steps are reiterated. Otherwise, if at the end of the test step 608, errors have been detected in the preceding GOP image group, a step of selecting a decoding technique according to the location of the video data affected by data loss is implemented. In this embodiment, it is a question of selecting the hierarchical levels that can be decoded taking into account the impact of the detected and localized data losses on a first set of corresponding images, in this embodiment and in a manner that non-limiting, to a group of GOP images. This selection step 611 of the hierarchical levels to be decoded is described in detail with reference to FIGS. 9 and 10. The hierarchical level (s) selection process (s) 611 consists first of all in initializing the variables Did, Qid, Tid and NumFrame at value 0 (step 905). The NumFrame variable indicates the number of the processed image. Then, during a test 907, the NAL which has been identified as lost during the execution of the error detection / localization process is searched. If the NAL having a given value of Did, Qid and Tid (which we note NAL (Did, Qid, Tid)) is lost, the corresponding image is marked as lost (even if only a slice of this image is lost ) in a step 913. This step is followed by a test 915 which will be described below. If the test 907 is negative, that is to say that the NAL considered NAL (Did, Qid, Tid) is not lost, it is determined during a test 909 if the reference image of this NAL has been lost. If this is not the case (test 909 negative), the test 915 described below is carried out. If, on the other hand, the reference image of this NAL has been lost (test 909 positive), the image concerned is marked as lost (step 911).
Le test 915 consiste à déterminer si toutes les couches de qualité ont été analysées. Pour cela, on teste si Qid MaxQid, où MaxQid désigne la plus haute couche de qualité. Si toutes les couches de qualité n'ont pas encore été analysées, c'est-à-dire si Qid MaxQid (test 915 positif), on augmente Qid, en incrémentant par exemple d'une unité la valeur de Qid (étape 916), puis le processus se poursuit avec une nouvelle NAL (retour au test 907). Si toutes les valeurs de Qid ont été testées (test 915 négatif), on passe au test 917, lors duquel on teste si toutes les couches spatiales ont été analysées. Pour cela, on teste si Did MaxDid, où MaxDid désigne la plus haute couche spatiale. Si toutes les couches spatiales n'ont pas été analysées (test 917 positif), lors d'une étape 919 on augmente Did, en incrémentant par exemple d'une unité la valeur de Did, et on attribue à Qid la valeur minimale autorisée de Qid pour la valeur courante de Tid (notée minQid(Tid)). Si en revanche toutes les valeurs de Did et de Qid pour l'AU courante ont été analysées, on examine lors d'un test 921 si toutes les images dans le GOP pour la couche temporelle courante (notée Tid) ont été analysées. Pour cela, on teste si NumFrame NumFrame (Did, Tid). Si les images du GOP pour Tid n'ont pas toutes été analysées (test 921 positif), le processus se poursuit avec l'image suivante et la variable NumFrame est incrémentée d'une unité (étape 923). En outre, à l'étape 923, le paramètre DId est fixé à sa valeur minimale autorisée pour la valeur courante de Tid (cette valeur minimale est notée MinDid(Tid)). De plus, à l'étape 923, le paramètre QId est fixé à sa valeur minimale autorisée pour la valeur courante de Tid (cette valeur minimale est notée MinQid(Tid)). The 915 test consists of determining whether all the quality layers have been analyzed. For this, we test if Qid MaxQid, where MaxQid designates the highest quality layer. If all the quality layers have not yet been analyzed, ie if Qid MaxQid (test 915 positive), we increase Qid, for example by incrementing by one unit the value of Qid (step 916) then the process continues with a new NAL (return to test 907). If all the values of Qid have been tested (test 915 negative), we pass test 917, in which we test if all the spatial layers have been analyzed. For this, we test if Did MaxDid, where MaxDid designates the highest spatial layer. If all the spatial layers have not been analyzed (test 917 positive), during a step 919 we increase Did, by incrementing for example by one unit the value of Did, and we attribute to Qid the minimum authorized value of Qid for the current value of Tid (noted minQid (Tid)). If, on the other hand, all the values of Did and Qid for the current AU have been analyzed, a test 921 examines whether all the images in the GOP for the current temporal layer (denoted Tid) have been analyzed. For that, one tests if NumFrame NumFrame (Did, Tid). If the GOP images for Tid have not all been analyzed (positive test 921), the process continues with the next image and the NumFrame variable is incremented by one (step 923). In addition, in step 923, the parameter DId is set to its minimum authorized value for the current value of Tid (this minimum value is denoted MinDid (Tid)). In addition, in step 923, the QId parameter is set to its minimum allowed value for the current value of Tid (this minimum value is noted MinQid (Tid)).
Lorsque toutes les images de la couche temporelle courante ont été analysées (test 921 négatif), on examine lors d'un test 925 si toutes les couches temporelles ont été testées. Pour cela, on teste si Tid MaxTid, où MaxTid désigne la plus haute couche temporelle. Si toutes les couches temporelles n'ont pas été analysées (test 925 positif), on passe à l'étape 929, où on passe à la couche temporelle supérieure (Tid + 1) et où on fixe les paramètres DId et QId à leurs valeurs minimales respectives pour la valeur courante de Tid (ces valeurs minimales sont respectivement notées minDid(Tid) et minQid(Tid). When all the images of the current temporal layer have been analyzed (negative test 921), a test 925 examines whether all the temporal layers have been tested. For this, we test if Tid MaxTid, where MaxTid designates the highest time layer. If all the temporal layers have not been analyzed (test 925 positive), go to step 929, where we go to the upper temporal layer (Tid + 1) and where the parameters DId and QId are fixed to their values. respective minimum values for the current value of Tid (these minimum values are respectively denoted minDid (Tid) and minQid (Tid).
Lorsque toutes les couches temporelles ont été analysées (test 925 négatif), toutes les images perdues, soit directement (par perte de paquets), soit indirectement (par propagation d'erreurs) sont identifiées (état 931). Le processus de sélection des couches à décoder peut alors débuter. Ce processus est illustré sur l'organigramme de la figure 10. When all the temporal layers have been analyzed (negative test 925), all the lost images, either directly (by packet loss) or indirectly (by error propagation) are identified (state 931). The process of selecting the layers to be decoded can then begin. This process is illustrated on the flowchart in Figure 10.
Le processus de sélection débute lors d'une étape 1001 par l'initialisation de Did, Qid et Tid à la valeur O. De plus, le processus démarre avec la première image ayant les valeurs courantes de Did et Tid (soit NumFrame(Did, Tid)=0). Ces variables vont permettre d'analyser (en anglais "to parse") toute la structure du GOP. En outre, une variable Nloss(x,y,z) désignant le nombre de pertes est aussi initialisée à la valeur nulle lors de l'étape 1001 (les variables x, y et z prenant respectivement toutes les valeurs possibles de Did, Qid et Tid). Puis lors d'un test 1003, on examine si l'image considérée est perdue. Si elle n'est pas perdue (test 1003 négatif), l'image concernée est marquée comme affichée dans la représentation de la structure du GOP (étape 1005). L'étape 1005 est suivie d'un test 1017 décrit plus loin. Si en revanche l'image considérée est perdue (test 1003 positif), on incrémente la variable Nloss(Did,Qid,Tid) d'une unité (étape 1007). Puis lors d'un test 1009, on examine si la valeur de la variable Nloss(Did,Qid,Tid) est strictement supérieure à un seuil qui dépend des valeurs de Did, Qid et Tid. The selection process starts at a step 1001 by the initialization of Did, Qid and Tid at the value O. Moreover, the process starts with the first image having the current values of Did and Tid (ie NumFrame (Did, tid) = 0). These variables will allow to analyze (in English "to parse") the whole structure of the GOP. In addition, a variable Nloss (x, y, z) designating the number of losses is also initialized to the zero value during step 1001 (the variables x, y and z taking respectively all the possible values of Did, Qid and tid). Then during a test 1003, we examine if the image considered is lost. If it is not lost (test 1003 negative), the image concerned is marked as displayed in the representation of the structure of the GOP (step 1005). Step 1005 is followed by a test 1017 described later. If, on the other hand, the image considered is lost (test 1003 positive), the variable Nloss (Did, Qid, Tid) of one unit is incremented (step 1007). Then during a test 1009, we examine if the value of the Nloss variable (Did, Qid, Tid) is strictly greater than a threshold which depends on the values of Did, Qid and Tid.
Ce seuil est noté Th(Did,Qid,Tid). Il représente la quantité acceptable de pertes pour un triplet donné de valeurs de Did, Qid et Tid. En effet, chaque triplet représente un niveau hiérarchique. Etant donné que certains niveaux sont plus importants que d'autres, le niveau de pertes acceptable ne peut être le même pour tous les niveaux hiérarchiques. Ainsi, la valeur seuil Th(Did,Qid,Tid) a une valeur dépendante du niveau hiérarchique associé au triplet de valeurs Did,Qid,Tid. Si le seuil n'est pas dépassé (test 1009 négatif), on passe au test 1017. Sinon (test 1009 positif), toutes les images avec DId Did, QId Qid et TId Tid sont marquées comme non affichées lors d'une étape 1011. Puis, lors d'une étape 1013, on modifie les valeurs de MaxQid, de MaxTid et de MaxDid. On évite ici l'analyse (en anglais "parsing") de l'intégralité de la structure du GOP si on sait déjà que la qualité des couches suivantes ne sera pas acceptable. This threshold is noted Th (Did, Qid, Tid). It represents the acceptable amount of losses for a given triplet of values of Did, Qid and Tid. Indeed, each triplet represents a hierarchical level. Since some levels are higher than others, the acceptable level of loss can not be the same for all hierarchical levels. Thus, the threshold value Th (Did, Qid, Tid) has a value dependent on the hierarchical level associated with the triplet of values Did, Qid, Tid. If the threshold is not exceeded (test 1009 negative), we go to test 1017. Otherwise (test 1009 positive), all the images with DId Did, QId Qid and TId Tid are marked as not displayed during a step 1011 Then, during a step 1013, the values of MaxQid, MaxTid and MaxDid are modified. We avoid here the analysis (in English "parsing") of the entire structure of the GOP if we already know that the quality of the following layers will not be acceptable.
Ainsi, lors de l'étape 1013, la valeur de MaxQid pour les valeurs de DId supérieures ou égales à Did et pour les valeurs de TId supérieures ou égales à Tid est fixée, soit à la valeur (Qid ù 1), soit à la valeur nulle si Qid = O. Toujours à l'étape 1013, la valeur de MaxTid pour les valeurs de DId supérieures ou égales à Did est fixée, soit à la valeur (Tid ù 1), soit à la valeur nulle si Tid = 0, et la valeur de MaxDid est fixée, soit à la valeur (Did ù 1), soit à la valeur nulle si Did = O. L'étape 1013 est suivie par un test 1019 qui sera décrit plus loin. Lors du test 1017, on examine si toutes les images avec le triplet courant (Did, Qid, Tid) ont été traitées. Si les images correspondant à ce triplet n'ont pas encore toutes été traitées (test 1017 négatif), on passe à l'image suivante (étape 1015) puis on retourne au test 1003 décrit plus haut. Lorsque toutes les images ayant le triplet courant (Did, Qid, Tid) ont été traitées (test 1017 positif), on passe au test 1019. Lors du test 1019, on examine si Did a atteint sa valeur maximale. Thus, in step 1013, the value of MaxQid for the values of DId greater than or equal to Did and for the values of TId greater than or equal to Tid is fixed either at the value (Qid ù 1) or at the null value if Qid = 0. Also in step 1013, the value of MaxTid for the values of DId greater than or equal to Did is fixed either at the value (Tid ù 1) or at the value zero if Tid = 0 and the value of MaxDid is set either to the value (Did ù 1) or to the null value if Did = O. Step 1013 is followed by a test 1019 which will be described later. In test 1017, we examine whether all the images with the current triplet (Did, Qid, Tid) were processed. If the images corresponding to this triplet have not yet been processed (test 1017 negative), we go to the next image (step 1015) and then return to the test 1003 described above. When all the images having the current triplet (Did, Qid, Tid) have been processed (test 1017 positive), one passes to the test 1019. During the test 1019, one examines if Did reached its maximum value.
Pour cela, on teste si la valeur Did est inférieure ou égale à MaxDid. For that, one tests if the Did value is lower or equal to MaxDid.
Si Did n'a pas atteint sa valeur maximale (test 1019 positif), on augmente Did, en incrémentant par exemple d'une unité la valeur de Did (étape 1021), puis on retourne au test 1003. Si Did a atteint sa valeur maximale MaxDid (test 1019 négatif), on effectue un test 1023, consistant à examiner si Tid a atteint sa valeur maximale pour la valeur courante de Did. Pour cela, on teste si la valeur Tid est inférieure ou égale à MaxTid(Did). Si Tid n'a pas atteint cette valeur maximale (test 1023 positif), on augmente Tid, en incrémentant par exemple d'une unité la valeur de Tid (étape 1025), puis on retourne au test 1003. De plus, à l'étape 1025, Did est réinitialisé à sa valeur minimale pour la valeur donnée de Tid. Si Tid a atteint sa valeur maximale pour la valeur courante de Did, soit Tid = MaxTid(Did) (test 1023 négatif), on effectue un test 1027, consistant à examiner si Qid a atteint sa valeur maximale pour les valeurs courantes de Did et Tid. Pour cela, on teste si la valeur Qid est inférieure ou égale à MaxQid(Did,Tid). Si Qid n'a pas atteint cette valeur maximale (test 1027 positif), on augmente la valeur de Qid, en incrémentant par exemple d'une unité la valeur de Qid (étape 1029), puis on retourne au test 1003. De plus, à l'étape 1029, Did est réinitialisé à sa valeur minimale pour Tid = 0 et Tid est réinitialisé à la valeur nulle. Si Qid a atteint sa valeur maximale pour les valeurs courantes de Did et Tid, soit Qid = MaxQid(Did,Tid) (test 1027 négatif), le processus de sélection de niveaux hiérarchiques 611 est terminé. If Did has not reached its maximum value (test 1019 positive), increase Did, for example by incrementing the value of Did (step 1021) by one unit, then return to test 1003. If Did has reached its value MaxDid maximum (test 1019 negative), we perform a test 1023, consisting of examining whether Tid has reached its maximum value for the current value of Did. For that, one tests if the value Tid is lower or equal to MaxTid (Did). If Tid has not reached this maximum value (test 1023 positive), Tid is increased, for example by incrementing by one unit the value of Tid (step 1025), then returns to the test 1003. Moreover, at step 1025, Did is reset to its minimum value for the given value of Tid. If Tid has reached its maximum value for the current value of Did, that is Tid = MaxTid (Did) (test 1023 negative), a test 1027 is carried out, consisting in examining whether Qid has reached its maximum value for the current values of Did and tid. For that, one tests if the value Qid is lower or equal to MaxQid (Did, Tid). If Qid has not reached this maximum value (test 1027 positive), the value of Qid is increased, for example by incrementing the value of Qid by a unit (step 1029), then returns to the test 1003. Moreover, in step 1029, Did is reset to its minimum value for Tid = 0 and Tid is reset to zero. If Qid has reached its maximum value for the current values of Did and Tid, ie Qid = MaxQid (Did, Tid) (test 1027 negative), the process of selecting hierarchical levels 611 is finished.
Il est à noter que, dans les organigrammes des figures 7 à 10, les descriptions des tests consistant à tester, soit si une valeur est atteinte et/ou dépassée, soit si une valeur est strictement supérieure à un seuil, soit si toutes les images ont été traitées, etc., ont été données à titre d'exemples nullement limitatifs, conformément aux modes particuliers de réalisation décrits. En variante, ces tests pourraient tout aussi bien consister à tester la condition inverse, à savoir, respectivement, soit si la valeur considérée n'est pas atteinte et/ou n'est pas dépassée, soit si la valeur considérée est inférieure ou égale au seuil fixé, soit s'il reste au moins une image non encore traitée, etc. Les traitements illustrés sur la figure 10 sont suivis par l'étape 613 de décodage de NAL illustrée sur la figure 6. It should be noted that, in the flowcharts of FIGS. 7 to 10, the descriptions of the tests consisting in testing, whether a value is reached and / or exceeded, or whether a value is strictly greater than a threshold, or whether all the images have been processed, etc., have been given as non-limiting examples, in accordance with the particular embodiments described. As a variant, these tests could equally well consist in testing the inverse condition, namely, respectively, or if the value considered is not reached and / or is not exceeded, or if the value considered is less than or equal to threshold, or if there is at least one image not yet processed, etc. The processes illustrated in Fig. 10 are followed by the NAL decoding step 613 illustrated in Fig. 6.
Avant de décoder la NAL courante, le dispositif client vérifie si l'image concernée a été marquée comme étant perdue, dans la structure du GOP mémorisée dans l'unité de stockage 6 du client. Si l'image courante a été marquée comme perdue, le décodeur SVC rejette la NAL courante sans la décoder. Si cette image n'est pas marquée 10 comme perdue, la NAL est décodée. L'étape de décodage 613 est suivie ensuite de l'étape de test 615 sur la taille de la fenêtre d'analyse glissante WS. On vérifie ainsi à l'étape de test 615 si la taille de la fenêtre d'analyse glissante WS est atteinte, c'est-à-dire si une quantité suffisante de groupes 15 d'images GOP a été analysée aux étapes 603 et 605. Dans la négative, on réitère l'ensemble des étapes à partir de l'étape 602 en recevant des NALs supplémentaires. En revanche, si la taille de la fenêtre d'analyse glissante WS est atteinte, c'est-à-dire si WS est égale ici à 2A, une étape d'évaluation des pertes et d'adaptation de l'abonnement 617 est mise 20 en oeuvre à partir de l'examen de l'impact des pertes à long terme sur les groupes d'images GOP. Cette étape d'évaluation de pertes et d'adaptation de l'abonnement est décrite en détail en référence à la figure 11. Dans son principe, l'évaluation de l'importance des pertes de 25 données sur les données vidéo reçues à long terme, c'est-à-dire sur un second ensemble d'images de longueur, ici 2A, supérieure à la longueur, ici A, du premier ensemble d'images, réutilise le principe décrit précédemment en référence à la figure 9. Alors que la figure 9 permet d'évaluer les pertes sur un premier 30 ensemble d'images de petite taille, correspondant ici à un groupe d'images GOP, l'étape d'évaluation des pertes telle que décrite ultérieurement en référence à la figure 11 consiste à évaluer les pertes sur un second ensemble d'images de longueur supérieure, correspondant à la taille de la fenêtre d'analyse glissante WS, ici égale à deux groupes d'images GOP. On notera ainsi que ce second ensemble d'images, correspondant à la fenêtre d'analyse glissante WS, est constitué d'un ensemble de groupes d'images GOP successifs incluant le premier ensemble d'images GOP analysé précédemment, sur lequel des pertes de données ont été détectées. Cette étape d'évaluation des pertes et d'adaptation de l'abonnement 617 débute par une étape d'initialisation 1100. Le dispositif client initialise les valeurs Did, Tid et Qid à leurs valeurs maximales, ces valeurs correspondant au niveau hiérarchique le plus élevé reçu dans la session de diffusion groupée la plus élevée. Did = MaxDid ; Qid = MaxQid (Did) et Tid = MaxTid (Did). Toutes les images correspondant à ces valeurs de Did, Qid et Tid dans l'ensemble des groupes d'images GOP correspondant à la fenêtre 15 d'analyse glissante WS devront être analysées. Une variable n est utilisée pour énumérer l'ensemble des images dans le niveau hiérarchique le plus élevé, cette variable n étant initialisée à zéro. Par ailleurs, une variable N est initialisée à la valeur NumFrame (Did, 20 Tid, Qid) correspondant au nombre d'images dans le niveau hiérarchique le plus élevé. Finalement, la valeur Nloss est initialisée à zéro et représente le nombre d'images perdues dans le niveau le plus élevé. On considère dans une première étape 1101 une première image 25 dans le niveau hiérarchique donné. Une étape de vérification 1103 permet de vérifier si l'image est perdue. Dans la négative, cette étape de vérification 1103 est suivie par une étape 1108 dans laquelle on vérifie si toutes les images ont été analysées. 30 En pratique, on vérifie si n < N. Si toutes les images ont été vérifiées (c'est-à-dire si l'étape de test 1108 est négative), l'étape de test 1108 est suivie d'une étape d'adaptation d'abonnement 1113 consistant à maintenir le niveau d'abonnement courant du dispositif client. En revanche, si certaines images n'ont pas été analysées, à l'issue de l'étape de test 1108, une étape d'incrémentation 1109 est mise en oeuvre afin d'augmenter d'une unité l'indice n et on réitère l'étape 1103 à partir d'une image suivante. Si à l'issue de l'étape de test 1103, l'image est détectée comme perdue, le nombre de pertes Nloss est augmenté d'une unité à l'étape d'incrémentation 1105. Before decoding the current NAL, the client device verifies whether the image concerned has been marked as lost, in the structure of the GOP stored in the storage unit 6 of the client. If the current image has been marked as lost, the SVC decoder rejects the current NAL without decoding it. If this image is not marked as lost, the NAL is decoded. The decoding step 613 is then followed by the test step 615 on the size of the sliding analysis window WS. Thus, in test step 615, it is checked whether the size of the sliding analysis window WS is reached, that is, whether a sufficient quantity of GOP image groups has been analyzed at steps 603 and 605. If not, all the steps are repeated from step 602 while receiving additional NALs. On the other hand, if the size of the sliding analysis window WS is reached, that is to say if WS is equal here to 2A, a loss evaluation and adaptation step of the subscription 617 is set 20 from the examination of the impact of long-term losses on GOP image groups. This loss evaluation and subscription adaptation step is described in detail with reference to FIG. 11. In principle, the evaluation of the importance of the data losses on the video data received over the long term. , that is to say on a second set of images of length, here 2A, greater than the length, here A, of the first set of images, reuses the principle described above with reference to FIG. FIG. 9 makes it possible to evaluate the losses on a first set of small images, corresponding here to a group of GOP images, the loss evaluation step as described later with reference to FIG. to evaluate the losses on a second set of images of greater length, corresponding to the size of the sliding analysis window WS, here equal to two groups of GOP images. It will thus be noted that this second set of images, corresponding to the sliding analysis window WS, consists of a set of successive GOP image groups including the first set of GOP images analyzed above, on which losses of data was detected. This loss evaluation and adaptation step of the subscription 617 begins with an initialization step 1100. The client device initializes the values Did, Tid and Qid to their maximum values, these values corresponding to the highest hierarchical level. received in the highest multicast session. Did = MaxDid; Qid = MaxQid (Did) and Tid = MaxTid (Did). All images corresponding to these values of Did, Qid and Tid in the set of GOP image groups corresponding to the sliding analysis window WS will have to be analyzed. A variable n is used to enumerate all the images in the highest hierarchical level, this variable n being initialized to zero. On the other hand, a variable N is initialized to the value NumFrame (Did, Tid, Qid) corresponding to the number of images in the highest hierarchical level. Finally, the Nloss value is initialized to zero and represents the number of images lost in the highest level. In a first step 1101, a first image 25 is considered in the given hierarchical level. A verification step 1103 makes it possible to check whether the image is lost. If not, this verification step 1103 is followed by a step 1108 in which it is checked whether all the images have been analyzed. In practice, it is checked whether n <N. If all the images have been verified (i.e. if the test step 1108 is negative), the test step 1108 is followed by a step d subscription adaptation 1113 of maintaining the current subscription level of the client device. On the other hand, if certain images have not been analyzed, at the end of the test step 1108, an incrementation step 1109 is implemented in order to increase by one unit the index n and it is repeated step 1103 from a next image. If at the end of the test step 1103, the image is detected as lost, the number of Nloss losses is increased by one unit in the incrementation step 1105.
Une étape de comparaison 1107 est mise en oeuvre pour comparer le nombre de pertes Nloss à la valeur seuil Th (Did, Qid, Tid), décrite précédemment, correspondant ici au nombre acceptable de pertes dans le niveau hiérarchique le plus élevé. Si le nombre de pertes Nloss est supérieur à la valeur seuil, l'étape d'adaptation d'abonnement 1111 est mise en oeuvre de telle sorte que le dispositif client prend la décision de se désabonner du niveau hiérarchique le plus élevé. Sinon, l'étape de comparaison 1107 se poursuit par les étapes 1108 et suivantes décrites précédemment. A comparison step 1107 is used to compare the number of losses Nloss with the threshold value Th (Did, Qid, Tid), described above, corresponding here to the acceptable number of losses in the highest hierarchical level. If the number of Nloss losses is greater than the threshold value, the subscription adaptation step 1111 is implemented so that the client device makes the decision to unsubscribe from the highest hierarchical level. Otherwise, the comparison step 1107 continues with the steps 1108 and following described previously.
Ainsi, en revenant à la figure 6, une étape de test 619 permet d'identifier la décision qui a été prise lors des étapes d'adaptation d'abonnement 1111, 1113 à la figure 11. Ainsi, si le désabonnement à un niveau hiérarchique donné à été décidé, l'étape de test 619 est suivie de l'étape de test 625 où on vérifie si la taille de la fenêtre d'analyse glissante WS est différente de la valeur A correspondant à la longueur temporelle d'un groupe d'images GOP. Dans l'affirmative, la taille de la fenêtre d'analyse glissante WS est réduite d'une valeur A telle que WS = WS ùA à une étape de soustraction 627. En revanche, si à l'issue de l'étape de comparaison 625, la taille de la fenêtre d'analyse glissante WS est déjà égale à la valeur minimale A, elle conserve sa valeur. Thus, returning to FIG. 6, a test step 619 makes it possible to identify the decision that was taken during the subscription adaptation steps 1111, 1113 in FIG. 11. Thus, if the unsubscription at a hierarchical level given, the test step 619 is followed by the test step 625 where it is checked whether the size of the sliding analysis window WS is different from the value A corresponding to the time length of a group d GOP images. If so, the size of the sliding analysis window WS is reduced by a value A such that WS = WS ùA at a subtraction step 627. On the other hand, if at the end of the comparison step 625 , the size of the sliding analysis window WS is already equal to the minimum value A, it retains its value.
En revanche, la variable LST correspondant à la période de temps s'écoulant entre deux tentatives d'abonnement à une session de diffusion groupée de niveau supérieur par le dispositif client, est augmentée de la valeur A, correspondant à la taille d'un GOP, à une étape d'addition 629 telle que LST = LST+A. L'ensemble du processus est ensuite réitéré à partir de l'étape de réception d'une NAL 602. En revanche, si à l'issue de l'étape de test 619, l'adaptation de l'abonnement consiste à maintenir le même niveau d'abonnement, l'étape de test 619 est suivie d'une étape d'addition 621 dans laquelle la taille de la fenêtre d'analyse glissante WS est augmentée d'une valeur A correspondant à la taille d'un groupe d'images GOP. L'étape d'addition 621 est suivie d'une étape de réinitialisation 623 consistant à réinitialiser la valeur LST à A. L'ensemble du processus est ensuite 15 réitéré à partir de l'étape de réception d'une NAL 602. Ainsi, la longueur de la fenêtre d'analyse glissante WS varie en fonction de l'adaptation de l'abonnement par le dispositif client au sous-ensemble de sessions de diffusion groupée. La longueur de la fenêtre d'analyse glissante WS est diminuée, si 20 elle n'a pas atteint sa taille minimale A, lorsque le dispositif client se désabonne d'au moins une session de diffusion groupée. En revanche, la longueur de la fenêtre d'analyse glissante WS est augmentée lorsque le dispositif client maintient son abonnement à un sous-ensemble de sessions de diffusion groupée. 25 Dans ce mode de réalisation, la longueur de cette fenêtre d'analyse glissante WS est augmentée ou diminuée à chaque fois de la longueur A d'un groupe d'images GOP. Par ailleurs, l'intervalle de temps LST entre deux tentatives d'abonnement par le dispositif client à une session additionnelle de diffusion 30 groupée est augmenté lorsque la longueur de la fenêtre d'analyse glissante WS atteint sa valeur minimale préfixée, ici égale à A correspondant à un GOP. In contrast, the LST variable corresponding to the period of time between two attempts to subscribe to a higher-level multicast session by the client device is increased by the A value, which is the size of a GOP at an addition step 629 such that LST = LST + A. The whole process is then reiterated from the step of receiving a NAL 602. On the other hand, if at the end of the test step 619, the adaptation of the subscription consists in maintaining the same subscription level, the test step 619 is followed by an addition step 621 in which the size of the sliding analysis window WS is increased by an A value corresponding to the size of a group of GOP images. The addition step 621 is followed by a reset step 623 of resetting the value LST to A. The entire process is then reiterated from the receiving step of a NAL 602. Thus, the length of the sliding analysis window WS varies according to the adaptation of the subscription by the client device to the subset of multicast sessions. The length of the sliding analysis window WS is decreased, if it has not reached its minimum size A, when the client device unsubscribes from at least one multicast session. In contrast, the length of the WS rolling scan window is increased when the client device maintains its subscription to a subset of multicast sessions. In this embodiment, the length of this sliding analysis window WS is increased or decreased in each case by the length A of a group of GOP images. On the other hand, the LST time interval between two subscription attempts by the client device to an additional multicast session is increased when the length of the sliding analysis window WS reaches its minimum prefixed value, here equal to A corresponding to a GOP.
On a illustré aux figures 12 et 13, le principe obtenu par un tel procédé de contrôle dans l'abonnement d'un dispositif client à un sous-ensemble de sessions de diffusion groupée. Comme illustré à la figure 12, pendant trois premières périodes de temps successives Ti, T2, T3, de longueur A = GOP, le dispositif client s'abonne à des sessions de diffusion groupée additionnelles correspondant à des niveaux hiérarchiques de plus en plus élevés (niveau 0, niveau 1, niveau 2). En effet, dès lors que le débit lié à la transmission de ces sessions de diffusion groupée reste inférieur au débit ou bande passante disponible sur le réseau de communication, il n'y a pas d'erreurs et de pertes de données détectées (ce qui correspond à une réponse négative à l'étape de test de présence d'erreurs 608). Ensuite, lorsque le dispositif client cherche à s'abonner à une session de diffusion groupée supplémentaire (correspondant au niveau hiérarchique 3), des erreurs apparaissent dans la transmission des données puisque le débit cumulé dépasse la bande passante disponible sur le réseau de communication. Cependant, tant que la quantité d'erreurs évaluée dans la session de diffusion groupée la plus élevée est considérée comme acceptable, c'est-à-dire que le nombre de pertes de données évaluées ne dépasse pas la valeur seuil prédéterminée qui dépend de ce niveau hiérarchique donné, le procédé de contrôle et de décodage conserve inchangé l'abonnement du dispositif client, et en particulier conserve l'abonnement à la session de diffusion groupée la plus élevée. En revanche, comme illustré à la figure 13, si le nombre de pertes de données évaluées à la quatrième période T4 n'est pas acceptable pour le décodage, le dispositif client continue à recevoir pendant cette période T4 les quatre sessions de diffusion groupée (niveau hiérarchique 0 à niveau hiérarchique 3), bien que le contenu du niveau hiérarchique 3 de la session de diffusion groupée la plus élevée ne soit pas décodé. FIGS. 12 and 13 illustrate the principle obtained by such a control method in the subscription of a client device to a subset of multicast sessions. As illustrated in FIG. 12, during the first three successive periods of time T1, T2, T3, of length A = GOP, the client device subscribes to additional multicast sessions corresponding to hierarchical levels that are higher and higher ( level 0, level 1, level 2). Indeed, since the bit rate linked to the transmission of these multicast sessions remains lower than the available bandwidth or bandwidth on the communication network, there are no errors and losses of detected data (which corresponds to a negative response to the error presence test step 608). Then, when the client device seeks to subscribe to an additional multicast session (corresponding to the hierarchical level 3), errors appear in the data transmission since the accumulated bitrate exceeds the available bandwidth on the communication network. However, as long as the amount of errors evaluated in the highest multicast session is considered acceptable, i.e. the number of evaluated data losses does not exceed the predetermined threshold value which depends on it. given hierarchical level, the control and decoding method keeps unchanged the subscription of the client device, and in particular keeps the subscription to the highest multicast session. On the other hand, as illustrated in FIG. 13, if the number of data losses evaluated at the fourth period T4 is not acceptable for the decoding, the client device continues to receive during this period T4 the four multicast sessions (level hierarchical 0 at hierarchical level 3), although the content of hierarchical level 3 of the highest multicast session is not decoded.
Après la cinquième période T5, la quantité de pertes évaluées sur la fenêtre d'analyse glissante WS, correspondant à la quatrième et à la cinquième période T4, T5 est considérée comme non acceptable dès lors que le nombre de pertes de données évaluées dépasse la valeur seuil prédéterminée associée à ce niveau hiérarchique (ici niveau 3). Dans ce cas, le dispositif client se désabonne de la quatrième session de diffusion groupée (et ne reçoit plus le niveau 3). Ce désabonnement est visible sur la sixième période T6 à la figure 13. After the fifth period T5, the amount of losses evaluated on the sliding analysis window WS, corresponding to the fourth and the fifth period T4, T5 is considered unacceptable if the number of evaluated data losses exceeds the value predetermined threshold associated with this hierarchical level (here level 3). In this case, the client device unsubscribes from the fourth multicast session (and no longer receives level 3). This unsubscription is visible on the sixth period T6 in Figure 13.
Dans ce cas, comme expliqué en référence à la figure 6, la longueur de la fenêtre d'analyse glissante WS est réduite d'une valeur A et le dispositif client tente de nouveau de s'abonner à la quatrième session de diffusion groupée à l'expiration de la sixième période T6. Ce nouvel abonnement provoque à la septième période T7, de 15 nouveau des pertes de données dont le nombre dépasse la valeur seuil prédéterminée. Dans ce cas, le dispositif client se désabonne de nouveau pour la huitième période T8 de la quatrième session de diffusion groupée. La taille de la fenêtre d'analyse glissante WS étant égale à son 20 minimum A, la longueur de l'intervalle de temps entre deux tentatives d'abonnement LST est augmentée d'une valeur A de telle sorte qu'une nouvelle tentative d'abonnement à la quatrième session de diffusion groupée n'a lieu qu'à la dixième période T10. Ainsi, le procédé de contrôle et de décodage permet au dispositif 25 client d'espacer les tentatives d'abonnement à une session de diffusion groupée de niveau supérieur lorsque cet abonnement entraine systématiquement une congestion du réseau de communication. Par ailleurs, grâce à l'utilisation d'une fenêtre d'analyse glissante WS de taille supérieure à la longueur d'un GOP, il est possible de ne pas réagir 30 systématiquement par le désabonnement du dispositif client à une session de diffusion groupée de niveau supérieur lorsque la congestion du réseau est de courte durée. In this case, as explained with reference to FIG. 6, the length of the sliding analysis window WS is reduced by an value A and the client device again attempts to subscribe to the fourth multicast session at the same time. expiry of the sixth period T6. This new subscription causes the seventh period T7 again to lose data whose number exceeds the predetermined threshold value. In this case, the client device unsubscribes again for the eighth period T8 of the fourth multicast session. Since the size of the sliding analysis window WS is equal to its minimum A, the length of the time interval between two LST subscription attempts is increased by an A value so that a new attempt of subscription to the fourth multicast session only occurs in the tenth T10 period. Thus, the control and decoding method allows the client device to space out subscription attempts to a higher level multicast session when this subscription systematically causes congestion in the communication network. On the other hand, through the use of a sliding scan window WS larger than the length of a GOP, it is possible not to systematically react by unsubscribing the client device to a multicast session of higher level when network congestion is short-lived.
On a décrit précédemment un mode de réalisation pratique de l'invention dans lequel l'évaluation des pertes de données sur le niveau hiérarchique le plus élevé reçu entraine le désabonnement à la session de diffusion groupée transmettant ce niveau hiérarchique le plus élevé. A practical embodiment of the invention has previously been described in which the evaluation of the loss of data on the highest hierarchical level received results in the unsubscription of the multicast session transmitting this highest hierarchical level.
Toutefois, lorsque des congestions importantes du réseau se produisent, il peut être intéressant d'autoriser le désabonnement simultané à plusieurs sessions de diffusion groupée. Une solution consiste à utiliser l'insertion par le serveur d'un niveau de priorité associé à chaque paquet de données vidéo transféré. However, when significant network congestion occurs, it may be beneficial to allow simultaneous unsubscribing to multiple multicast sessions. One solution is to use the insertion by the server of a priority level associated with each packet of video data transferred.
Le niveau de priorité inséré dans chaque paquet de données vidéo dépend du niveau hiérarchique des données vidéo insérées ainsi que de la dépendance de ces données vidéo avec d'autres données vidéo insérées dans des paquets différents. En pratique, ce niveau de priorité peut être inséré dans l'en-tête de la NAL, dans le champ priority_ID ou dans l'en-tête d'un paquet de données. En pratique, un niveau de priorité élevé sera associé avec une session de diffusion groupée transportant un niveau hiérarchique bas. A contrario, un niveau de priorité faible sera associé à une session de diffusion groupée transportant un niveau hiérarchique élevé. The priority level inserted in each video data packet depends on the hierarchical level of the inserted video data as well as the dependence of that video data with other video data inserted into different packets. In practice, this priority level can be inserted in the NAL header, in the priority_ID field or in the header of a data packet. In practice, a high priority level will be associated with a multicast session carrying a low hierarchical level. On the other hand, a low priority level will be associated with a multicast session carrying a high hierarchical level.
De manière classique, dans un réseau de communication mettant en oeuvre des niveaux de priorité associés à des paquets RTP, un routeur rejette systématiquement les paquets selon l'ordre de priorité lorsqu'une congestion du réseau de communication se produit. Aussi, en cas de congestion du réseau de communication, les paquets de données vidéo ayant les niveaux de priorité les plus faibles seront rejetés en premier. Ainsi, si un paquet de données associé à un niveau de priorité élevé est perdu, le dispositif client peut déduire d'une part qu'une congestion importante du réseau se produit et d'autre part que les paquets de données vidéo associés à un niveau de priorité plus faible seront également perdus. Dès lors qu'à l'issue des étapes d'identification et de localisation de pertes telles que décrites en référence aux figures 7 et 8, il est possible de connaître exactement quelle NAL est perdue, il est également possible de connaître le niveau de priorité de chaque NAL perdue, mémorisé par exemple dans l'en-tête de la NAL, dans le champ priority_ID. Chaque niveau de priorité étant associé respectivement à un paquet 5 de données, la session de diffusion groupée associée avec un paquet de données perdues peut être identifiée. Il est possible alors d'adapter l'abonnement du dispositif client au sous-ensemble de sessions de diffusion groupée en fonction du niveau de priorité identifié d'un paquet de données vidéo affectées par des pertes de 10 données. En pratique, l'étape d'adaptation d'abonnement 617 est adaptée pour s'appliquer de manière séquentielle à tous les niveaux hiérarchiques affectés par des pertes, en commençant par le niveau hiérarchique le plus bas. Si le nombre de pertes de données évaluées dépasse la valeur seuil 15 prédéterminée de pertes de données associée au niveau hiérarchique analysé, lors de l'adaptation de l'abonnement, non seulement la session de diffusion groupée correspondant au niveau hiérarchique analysé est rejetée, mais également l'ensemble des sessions de diffusion groupée transmettant des données vidéo de niveaux hiérarchiques supérieurs au niveau hiérachique 20 analysé. Ainsi, le dispositif client se désabonne à plusieurs sessions de diffusion groupée à la fois. Conventionally, in a communication network implementing priority levels associated with RTP packets, a router systematically rejects the packets in order of priority when congestion of the communication network occurs. Also, in case of congestion of the communication network, the video data packets having the lowest priority levels will be rejected first. Thus, if a data packet associated with a high priority level is lost, the client device can deduce on the one hand that significant congestion of the network occurs and on the other hand that the video data packets associated with a level lower priority will also be lost. As soon as at the end of the steps of identification and location of losses as described with reference to Figures 7 and 8, it is possible to know exactly what NAL is lost, it is also possible to know the level of priority of each lost NAL, stored for example in the NAL header, in the priority_ID field. Each priority level being respectively associated with a data packet, the multicast session associated with a lost data packet can be identified. It is then possible to tailor the client device subscription to the subset of multicast sessions based on the identified priority level of a video data packet affected by data loss. In practice, subscription adaptation step 617 is adapted to apply sequentially to all hierarchical levels affected by losses, starting with the lowest hierarchical level. If the number of evaluated data losses exceeds the predetermined threshold value of loss of data associated with the analyzed hierarchical level, when the subscription is adapted, not only is the multicast session corresponding to the analyzed hierarchical level rejected, but also the set of multicast sessions transmitting video data hierarchical levels above the hierarchical level 20 analyzed. Thus, the client device unsubscribes to several multicast sessions at a time.
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0958767A FR2953675B1 (en) | 2009-12-08 | 2009-12-08 | METHOD FOR CONTROLLING A CLIENT DEVICE FOR TRANSFERRING A VIDEO SEQUENCE |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0958767A FR2953675B1 (en) | 2009-12-08 | 2009-12-08 | METHOD FOR CONTROLLING A CLIENT DEVICE FOR TRANSFERRING A VIDEO SEQUENCE |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2953675A1 true FR2953675A1 (en) | 2011-06-10 |
FR2953675B1 FR2953675B1 (en) | 2012-09-21 |
Family
ID=42062828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0958767A Expired - Fee Related FR2953675B1 (en) | 2009-12-08 | 2009-12-08 | METHOD FOR CONTROLLING A CLIENT DEVICE FOR TRANSFERRING A VIDEO SEQUENCE |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2953675B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2677761A1 (en) * | 2012-06-21 | 2013-12-25 | Sony Corporation | Information processor, signal format changing method, program, and image display apparatus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003009581A1 (en) * | 2001-07-19 | 2003-01-30 | British Telecommunications Public Limited Company | Video stream switching |
WO2006134110A1 (en) * | 2005-06-14 | 2006-12-21 | Thomson Licensing | Method and apparatus for transmitting encoded video data, and method and apparatus for decoding video data |
FR2894421A1 (en) * | 2005-12-07 | 2007-06-08 | Canon Kk | METHOD AND DEVICE FOR DECODING A VIDEO STREAM CODE FOLLOWING A HIERARCHICAL CODING |
WO2007080480A2 (en) * | 2006-01-09 | 2007-07-19 | Nokia Corporation | Error resilient mode decision in scalable video coding |
-
2009
- 2009-12-08 FR FR0958767A patent/FR2953675B1/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003009581A1 (en) * | 2001-07-19 | 2003-01-30 | British Telecommunications Public Limited Company | Video stream switching |
WO2006134110A1 (en) * | 2005-06-14 | 2006-12-21 | Thomson Licensing | Method and apparatus for transmitting encoded video data, and method and apparatus for decoding video data |
FR2894421A1 (en) * | 2005-12-07 | 2007-06-08 | Canon Kk | METHOD AND DEVICE FOR DECODING A VIDEO STREAM CODE FOLLOWING A HIERARCHICAL CODING |
WO2007080480A2 (en) * | 2006-01-09 | 2007-07-19 | Nokia Corporation | Error resilient mode decision in scalable video coding |
Non-Patent Citations (2)
Title |
---|
LI X ET AL: "Layered video multicast with retransmissions (LVMR): evaluation of hierarchical rate control", INFOCOM '98. SEVENTEENTH ANNUAL JOINT CONFERENCE OF THE IEEE COMPUTER AND COMMUNICATIONS SOCIETIES. PROCEEDINGS. IEEE SAN FRANCISCO, CA, USA 29 MARCH-2 APRIL 1998, NEW YORK, NY, USA,IEEE, US LNKD- DOI:10.1109/INFCOM.1998.662916, vol. 3, 29 March 1998 (1998-03-29), pages 1062 - 1072, XP010270383, ISBN: 978-0-7803-4383-2 * |
MCCANNE S ET AL: "Receiver-driven Layered Multicast", COMPUTER COMMUNICATION REVIEW, ACM, NEW YORK, NY, US LNKD- DOI:10.1145/248157.248168, no. 4, 1 October 1996 (1996-10-01), pages 117 - 130, XP002452811, ISSN: 0146-4833 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2677761A1 (en) * | 2012-06-21 | 2013-12-25 | Sony Corporation | Information processor, signal format changing method, program, and image display apparatus |
Also Published As
Publication number | Publication date |
---|---|
FR2953675B1 (en) | 2012-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2948249A1 (en) | METHODS AND DEVICES FOR ESTIMATING A LEVEL OF USE OF A COMMUNICATION NETWORK AND ADAPTING A SUBSCRIPTION LEVEL TO MULTIPOINT GROUPS | |
FR2916600A1 (en) | METHOD AND DEVICE FOR DATA TRANSMISSION | |
EP2510701B1 (en) | Method and apparatus for determining coding parameters of bitstreams of variable resolution | |
FR2936926A1 (en) | SYSTEM AND METHOD FOR DETERMINING ENCODING PARAMETERS | |
FR2894421A1 (en) | METHOD AND DEVICE FOR DECODING A VIDEO STREAM CODE FOLLOWING A HIERARCHICAL CODING | |
FR2840495A1 (en) | METHOD AND DEVICE FOR SELECTING A TRANSCODING METHOD AMONG A SET OF TRANSCODING METHODS | |
EP1829377A1 (en) | Method for a variable bit rate transmission through a transmission channel | |
FR2933263A1 (en) | METHOD OF RECEIVING DATA STREAMS AND METHOD OF TRANSMITTING THE SAME | |
FR2898757A1 (en) | METHOD AND DEVICE FOR ADAPTING A TIME FREQUENCY OF A SEQUENCE OF VIDEO IMAGES | |
EP3707900B1 (en) | Method for forming an output image sequence from an input image sequence, method for reconstructing an input image sequence from an output image sequence, associated devices, server equipment, client equipment and computer programs | |
FR2932938A1 (en) | METHOD AND DEVICE FOR DATA TRANSMISSION | |
FR2942095A1 (en) | METHOD AND DEVICE FOR IDENTIFYING VIDEO LOSSES | |
FR2953675A1 (en) | Method for controlling transfer of video sequence transmitted over set of broadcasting sessions in communication network, involves adapting subscription to sub assembly of broadcasting sessions based on importance of loss of data | |
EP1834489A1 (en) | Video encoding method and device | |
FR2893470A1 (en) | METHOD AND DEVICE FOR CREATING A VIDEO SEQUENCE REPRESENTATIVE OF A DIGITAL VIDEO SEQUENCE AND METHODS AND DEVICES FOR TRANSMITTING AND RECEIVING VIDEO DATA THEREOF | |
FR2913163A1 (en) | Digital video data transmitting method for multicast telecommunication network, involves sending crossover signals to sub-group of clients based on information representing behavior of congestion control algorithms | |
EP3840335B1 (en) | Reception of digital content in trick mode | |
FR2898459A1 (en) | METHOD AND APPARATUS FOR RECEIVING IMAGES HAVING FOUND LOSS DURING TRANSMISSION | |
EP1241894A1 (en) | Method of coding digital images based on error concealment | |
FR3067541A1 (en) | TRANSMITTING AND RECEIVING A DATA STREAM | |
EP2025174A1 (en) | Use of a feedback channel for image broadcasting | |
EP3350931B1 (en) | Optimised transmission of video data over a wireless network | |
FR2917919A1 (en) | METHOD AND DEVICE FOR TRANSMITTING IMAGES | |
EP2594069B1 (en) | Method for broadcasting video data sequences by a server to a client terminal | |
FR2958473A1 (en) | Error correction code adapting method for communication network, involves determining alternation probability between classes, and selecting protection strategy according to alternation probability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 7 |
|
ST | Notification of lapse |
Effective date: 20170831 |