FR2917919A1 - Procede et dispositif de transmission d'images. - Google Patents
Procede et dispositif de transmission d'images. Download PDFInfo
- Publication number
- FR2917919A1 FR2917919A1 FR0755941A FR0755941A FR2917919A1 FR 2917919 A1 FR2917919 A1 FR 2917919A1 FR 0755941 A FR0755941 A FR 0755941A FR 0755941 A FR0755941 A FR 0755941A FR 2917919 A1 FR2917919 A1 FR 2917919A1
- Authority
- FR
- France
- Prior art keywords
- images
- information
- network
- image
- time
- 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 34
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 4
- 230000005540 biological transmission Effects 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 26
- 230000006835 compression Effects 0.000 claims description 20
- 238000007906 compression Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 4
- 239000000872 buffer Substances 0.000 description 25
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 10
- 230000001934 delay Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000010355 oscillation Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004434 saccadic eye movement Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained 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/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/23439—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 for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/114—Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/177—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
-
- 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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/23805—Controlling the feeding rate to the network, e.g. by controlling the video pump
-
- 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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
-
- 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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26233—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
-
- 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/643—Communication protocols
- H04N21/64322—IP
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8453—Structuring of content, e.g. decomposing content into time segments by locking or enabling a set of features, e.g. optional functionalities in an executable program
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Le procédé de transmission d'images sur un réseau dans lequel la quantité d'information susceptible d'être envoyée par unité de temps varie de façon sensiblement cyclique, comporte :- une étape (805 à 807, 809, 810) de détermination d'instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est supérieure, respectivement inférieure, à sa moyenne, en fonction de la variation passée sensiblement cyclique de ladite quantité d'information et- une étape (801 à 805, 812 à 816) d'envoi sur ledit réseau, aux dits instants, d'images correspondant à une plus grande, respectivement petite, quantité d'information que la moyenne des images.Au cours de l'étape de détermination, on détermine une période de variation cyclique de la quantité d'information susceptible d'être envoyée sur le réseau.
Description
La présente invention concerne un procédé et un dispositif de transmission
d'images. Elle s'applique, en particulier, à la transmission d'une vidéo sur un réseau à débit variable. Du fait de la bande passante réseau variable, les images d'une vidéo compressées transmises sur un réseau peuvent arriver à des intervalles de temps non réguliers. De ce fait, les images sont quelquefois affichées avec des décalages temporels pouvant entraîner un effet visuel désagréable : une impression de saccade désagréable est constatée. De plus, la gestion des ressources CPU et mémoire du client est plus facile lorsque les images arrivent à intervalle régulier.
Certaines images d'une vidéo compressée ont des tailles (pour une même qualité visuelle) très différentes. Les images INTRA, sont des exemples classiques dans le cadre d'une compression vidéo de type MPEG. Les images INTRA n'utilisent pas de module de prédiction temporelle (estimation du mouvement par mise en correspondance de blocs). Les images INTRA sont plus difficiles à compresser et leur taille est généralement 4 à 5 fois la taille d'une image INTER (pour une même qualité visuelle). Si la bande passante est trop faible pour assurer la transmission d'une telle image durant l'intervalle de temps entre 2 images, une image INTRA risque d'arriver en retard au client. De ce fait, un effet visuel désagréable pourra se produire.
Un moyen de résoudre ce problème est de disposer d'une mémoire tampon (en anglais buffer ) assez grande au niveau du récepteur de façon à absorber les éventuels retards de transmission. Toutefois, certains clients/récepteurs ne disposent pas de mémoire tampon de taille suffisante pour stocker des données images avant leur affichage. Même si le récepteur dispose d'une mémoire tampon suffisante, il peut arriver des évènements qui vident cette mémoire tampon, comme, par exemple une interruption temporaire de l'envoi de données par le serveur. L'effet de saccade se reproduit alors.
De plus, dans le cas d'un système de transmission à latence très faible, par exemple pour la vidéo conférence, l'utilisation d'une mémoire tampon ne convient pas parce qu'elle introduit nécessairement de la latence, c'est-à-dire un délai entre la réception de l'information représentant l'image et son affichage après décodage. La présente invention vise à remédier à ces inconvénients. D'une manière générale, la présente invention permet de synchroniser l'envoi des images de la vidéo les plus lourdes (typiquement les images INTRA) avec les instants pour lesquels la quantité d'information envoyée selon le protocole réseau (par exemple, TCP ou TFRC) est la plus
grande. A cet effet, selon un premier aspect, la présente invention vise un procédé de transmission d'images sur un réseau dans lequel la quantité d'information susceptible d'être envoyée par unité de temps varie de façon 15 sensiblement cyclique, qui comporte : - une étape de détermination d'instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est supérieure à sa moyenne, en fonction de la variation passée sensiblement cyclique de ladite quantité d'information et 20 - une étape d'envoi sur ledit réseau, aux dits instants, d'images correspondant à une plus grande quantité d'information que la moyenne des images. Selon un deuxième aspect, la présente invention vise un procédé de transmission d'images sur un réseau dans lequel la quantité d'information 25 susceptible d'être envoyée par unité de temps varie de façon sensiblement cyclique, qui comporte : - une étape de détermination d'instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est inférieure à sa moyenne, en fonction de la variation 30 passée sensiblement cyclique de ladite quantité d'information et - une étape d'envoi sur ledit réseau, aux dits instants, d'images correspondant à une plus petite quantité d'information que la moyenne des images. Grâce à chacune de ces dispositions, on limite le risque de Jitter (décalage entre le temps d'affichage théorique et le temps d'affichage réel) pouvant se produire au niveau du client. On améliore donc globalement la qualité des vidéos transmises. Selon des caractéristiques particulières, au cours de l'étape de détermination, on détermine une période de variation cyclique de la quantité d'information susceptible d'être envoyée sur le réseau. Selon des caractéristiques particulières, au cours de l'étape de détermination, on détermine des extrémums de quantité d'information susceptible d'être envoyée sur le réseau. Grâce à chacune de ces dispositions, la détermination de la période de variation sensiblement cyclique est automatique et adaptative. Selon des caractéristiques particulières, au cours de l'étape de détermination, on détermine une quantité d'information conservée dans une mémoire et restant à transmettre sur le réseau. Selon des caractéristiques particulières, au cours de l'étape d'envoi d'images, on sélectionne une image à coder avec un taux de compression plus faible que le taux de compression des images qui l'entourent, la transmission des images étant effectuée dans leur ordre chronologique, de manière à ce que la transmission de l'image codée, sur le réseau, corresponde à un instant pour lequel la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est la plus grande. Selon des caractéristiques particulières, au cours de l'étape d'envoi, on effectue une étape de codage d'au moins une image selon une pluralité de modes de codage représentant la même image par des quantités d'information différentes.
Selon des caractéristiques particulières, au cours de l'étape d'envoi, on effectue une étape de codage de la même succession d'une pluralité d'images en une pluralité de trains binaires, chaque train binaire représentant cette succession d'images avec une image spécifique qui est représentée selon un mode de codage représentant un taux de compression plus faible que les autres images de ladite succession d'images. Selon des caractéristiques particulières, au cours de l'étape d'envoi, on transmet le train binaire pour lequel l'image spécifique correspond à un instant pour lequel la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est la plus grande. Selon des caractéristiques particulières, au cours de l'étape d'envoi, on détermine, pour chaque image d'une pluralité d'images, la position, dans le temps, de sa transmission sur le réseau au cas où cette seule image serait codée avec un mode de codage de plus faible taux de compression que les autres images de ladite pluralité d'images et on sélectionne l'image pour laquelle ladite position correspond à un instant pour lequel la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est la plus grande, afin que l'image sélectionnée soit codée avec ledit mode de codage de plus faible taux de compression. Selon des caractéristiques particulières, au cours de l'étape d'envoi, on estime celle des images de la pluralité d'image qui doit être codée avec un mode de codage de plus faible taux de compression que les autres images de ladite pluralité d'images et on constitue une pluralité de trains binaires en tenant compte de cette image. Grâce à chacune de ces dispositions, on augmente la facilité de mise en oeuvre et l'efficacité du procédé objet de chacun des deux premiers aspects de la présente invention.
Selon un troisième aspect, la présente invention vise un dispositif de transmission d'images sur un réseau dans lequel la quantité d'information susceptible d'être envoyée par unité de temps varie de façon sensiblement cyclique, qui comporte : - un moyen de détermination d'instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est supérieure à sa moyenne, en fonction de la variation passée sensiblement cyclique de ladite quantité d'information et - un moyen d'envoi sur ledit réseau, aux dits instants, d'images correspondant à une plus grande quantité d'information que la moyenne des images. Selon un quatrième aspect, la présente invention vise un dispositif de transmission d'images sur un réseau dans lequel la quantité d'information susceptible d'être envoyée par unité de temps varie de façon sensiblement cyclique, caractérisé en ce qu'il comporte : - un moyen de détermination d'instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est inférieure à sa moyenne, en fonction de la variation passée sensiblement cyclique de ladite quantité d'information et - un moyen d'envoi sur ledit réseau, aux dits instants, d'images correspondant à une plus petite quantité d'information que la moyenne des images.
Selon un cinquième aspect, la présente invention vise un programme d'ordinateur chargeable dans un système informatique, ledit programme contenant des instructions permettant la mise en oeuvre du procédé de transmission d'images tel que succinctement exposé ci-dessus. Selon un cinquième aspect, la présente invention vise un support d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé de transmission d'images tel que succinctement exposé ci-dessus. Les avantages, buts et caractéristiques de ces dispositifs, de ce programme et de ce support d'information étant similaires à ceux des procédés de transmission d'images objets de la présente invention, tels que succinctement exposés ci-dessus, ils ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre, faite, dans un but explicatif et nullement limitatif, en regard des dessins annexés, dans lesquels : - la figure 1 représente, schématiquement, une application de la présente invention, - la figure 2 représente, schématiquement, une bande passante cyclique, - la figure 3 illustre, schématiquement, sous forme de signaux un problème que vise à résoudre la présente invention, - la figure 4 représente, schématiquement, sous forme de signaux, différents cas de transmission d'images sur un réseau, - la figure 5 représente, schématiquement, sous forme de signaux un effet de la mise en oeuvre de la présente invention, - la figure 6 représente, sous forme d'un schéma fonctionnel, un premier mode de réalisation mode de réalisation particulier du procédé et du dispositif objets de la présente invention, - la figure 7 illustre, schématiquement, sous forme de signaux, le codage d'un groupe d'images successives, - la figure 8 représente, sous forme d'un schéma fonctionnel, un deuxième mode de réalisation mode de réalisation particulier du procédé et du dispositif objets de la présente invention, - la figure 9 représente, sous forme de signaux, un problème résolu par un troisième mode de réalisation du procédé et du dispositif objets de la présente invention, - la figure 10 représente, sous forme d'un schéma fonctionnel, le troisième mode de réalisation mode de réalisation particulier du procédé et du dispositif objets de la présente invention et - la figure 11 représente, schématiquement, un dispositif objet de la présente invention.
Dans toute la description, on appelle une vidéo , un ensemble d'images numériques successives représentées par un signal. Dans toute la description, on appelle écoulement la transmission de données sur un réseau. Dans toute la description, on appelle paquétisation (en anglais packetization ) la fonction de former des paquets, au sens de la transmission d'information, à partir d'un train binaire, la dépaquétisation (en anglais depacketization ) étant la fonction symétrique.
Dans toute la description, on décrit des modes de réalisation de la présente invention dans lesquels on envoie sur un réseau des images correspondant à une plus grande quantité d'information que la moyenne des images, aux instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est supérieure à sa moyenne. La mise en oeuvre des modes de réalisation de la présente invention dans lesquels on envoie sur un réseau des images correspondant à une plus petite quantité d'information que la moyenne des images, aux instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est inférieure à sa moyenne étant triviale pour l'homme du métier à la lecture de la description qui va suivre, elle n'est pas décrite ci-dessous. On observe, en figure 1, une vidéo 100 qui est acquise pour être transmise, par un terminal émetteur 120 et affichée sur un écran 1104 (voir figure 10) d'un terminal client 130.
Le transport de l'information représentative de la vidéo, sur le réseau (non représenté), peut se faire de différentes manières : - on peut utiliser le protocole TCP qui intègre un contrôle de congestion de type AIMD (acronyme de Additive increase Multiplicative Decrease pour accroissement additif, décroissance multiplicative) - on peut utiliser un transport de vidéo sur RTP (acronyme de Real-Time transport protocol pour protocole de transport temps réel), si un algorithme de contrôle de congestion est implémenté au dessus de RTP. Dans ce cas, des informations spécifiques peuvent être ajoutées dans les messages RTP et des messages spécifiques peuvent être envoyés sur RTCP (acronyme de RTP control protocol pour protocole de contrôle de RTP), la partie contrôle de RTP. Différents algorithmes de contrôle de congestion peuvent être implémentés, par exemple AIMD ou TFRC, - on peut utiliser un transport de vidéo sur DCCP (acronyme de Datagram Congestion Control Protocol pour protocole de contrôle de congestion temporelle), un protocole qui permet d'avoir plusieurs types de contrôle de congestion, par exemple AIMD et TFRC.
La vidéo est d'abord compressée, par un codeur 101, par exemple conforme à une norme MPEG (acronyme de moving picture experts group pour groupe d'experts en images animées), pour former un train binaire 102. Le train binaire 102 est découpé en paquets, par une fonction 103 dite de paquétisation . Les paquets sont mémorisés dans une mémoire tampon, ou buffer 104. Simultanément, dans une boucle d'asservissement fermée, l'écoulement de paquets est mesuré par une fonction 106 et le réseau est analysé par une fonction 107 qui commande un module de contrôle d'écoulement 105, afin de limiter l'écoulement des paquets vers une carte réseau 109. Le module 108 adapte le taux de compression de l'algorithme de compression vidéo 101 pour que le train binaire obtenu corresponde aux possibilités de transmission du réseau.
L'écoulement de paquets se fait en fonction des pertes et des délais estimés entre le serveur 120 et le client 130. Ainsi, l'écoulement des paquets se fait de façon plus rapide lorsque les pertes seront nulles ou faibles et lorsque les délais de transmission sont courts. En cas de pertes de paquets, la vitesse d'écoulement est diminuée. Lorsque le nombre de paquets envoyés dans un intervalle de temps donné augmente, le protocole considère que la bande passante disponible sur le réseau est plus importante. Le module de contrôle d'écoulement 105 est aussi appelé le contrôle de congestion . On peut donc assimiler la vitesse d'écoulement des paquets en sortie du module de contrôle d'écoulement 105, à une bande passante du réseau estimée par ce module 105. Dans le cadre d'un contrôle de congestion sur RTP, les paquets RTCP retournés par le client 130 sont analysés pour en déduire une vitesse d'écoulement des paquets et donc une bande passante. Dans le cadre de la transmission de données sur réseau IP (acronyme de Internet Protocol pour protocole internet), des protocoles de régulation de débit (aussi appelé algorithme de contrôle de congestion) sont utilisés pour éviter la congestion du réseau. Ces protocoles limitent l'envoi de données sur le réseau. Des protocoles connus sont par exemple TCP (acronyme de transmission control protocol pour protocole de contrôle de transmission) ou TFRC (acronyme de TCP friendly rate control pour contrôle de débit compatible avec TCP). Ces protocoles permettent d'envoyer plus de données lorsque les pertes sont faibles et les délais de transmission sont courts et limitent l'envoi de données lorsque les pertes apparaissent ou les délais de transmission augmentent. Ces protocoles fonctionnent généralement en augmentant la quantité d'information transmise jusqu'à ce qu'une perte soit constatée ce qui entraîne une division de la bande passante. Ces protocoles peuvent se comporter de façon stationnaire. Dans ce cas, les instants temporels pour lesquels la quantité d'information envoyée sera grande sont prédictibles. Du côté client 130, les paquets envoyés sont reçus par une mémoire tampon de réception. Les paquets reçus sont ensuite transformés pour reconstituer le train binaire vidéo compressé, par une fonction de dépaquetisation 111 et une mémoire tampon 112, avant d'être décompressés par une fonction de décodage 113, mis en mémoire tampon 114 et affichés sur la base d'un signal de sortie 115. Le signal de sortie 115 représente les différentes images de la vidéo à afficher au cours du temps. Dans la représentation des signaux utilisée dans les figures, les traits larges représentent schématiquement des images INTRA et les traits fins représentent des images INTER. Le client 130 renvoie des informations au serveur 120 pour que le serveur 120 régule la transmission des paquets sur le réseau, par l'intermédiaire de ses fonctions 105, 106 et 107.
Ces paquets renvoyés sont les paquets RTCP, dans le cas de mise en oeuvre de RTP, et des paquets d'ARQ (acronyme de Automatic RepeatreQuest pour requête de répétition automatique) dans le cas de la mise en oeuvre de TCP ou de DCCP. Nous supposons ici que la vidéo est traitée par le client 130 en temps réel. Dès que l'information représentative d'une image arrive, elle est traitée, par les fonctions 111 et 113 pour être affichée. De cette façon, les délais entre l'affichage de l'image et son acquisition sont réduits au minimum.
La figure 2 montre un exemple de comportement du module d'écoulement 105. Cette figure 2 représente grossièrement le comportement d'un algorithme de type TCP. Toutefois, l'invention s'applique aussi, notamment, à tout type de module de contrôle de congestion de débit qui présente un comportement pseudo-périodique en mode stationnaire. Dans l'exemple représenté, la bande passante 200 instantanée estimée B(t) est affichée en fonction du temps t. Comme précisé précédemment, nous assimilons la bande passante instantanée au nombre de paquets écoulés dans un intervalle de temps donné. La bande passante augmente de façon additive et décroît brutalement à intervalles de temps relativement réguliers. L'augmentation se fait lorsque le serveur 120 ne constate pas d'erreurs de transmission de paquets : il teste alors l'envoi d'un taux plus élevé de paquets. Le serveur 120 et fait décroître le taux de paquets par intervalle de temps lorsque des pertes ou des délais sont constatés. Si le réseau est stable, le comportement de la bande passante 200 peut devenir relativement stationnaire sur un certain intervalle de temps. Le comportement totalement périodique présenté sur la figure ne se produit, pour TCP, que dans le cas où le flux TCP se trouve en présence de flux UDP sans contrôle de congestion.
Si on note B la bande passante disponible, P la taille d'un paquet, Rtt le temps de communication aller retour entre le serveur et le client, la période T est alors donnée par la formule : T = B * Rtt2 / 2 * P. Dans le cas où plusieurs flux TCP se trouvent en concurrence sur le réseau, chacun des serveurs essaye d'augmenter sa bande passante de manière additive jusqu'à ce qu'une erreur se produise lorsque le réseau supprime un paquet, aléatoirement. La probabilité d'erreur pour un flux est donc liée à la proportion de bande passante occupée. Pour évaluer cette probabilité pour un flux on peut, par exemple, mesurer la bande passante moyenne Bmoy occupée pendant plusieurs cycles précédents et la comparer à la bande passante courante Bcurr. En première approximation, on peut estimer que la probabilité d'avoir une erreur, et donc une baisse de la bande passante, est plus importante si Bcurr > Bmoy. En supposant le nombre de flux TCP constants, on peut approximer de manière plus précise la probabilité d'erreur Pr sur une courte durée t par 5 exemple avec la formule : Pr = Bcurr * 2 * P * t / Bmoy2 * Rtt2 La présente invention utilise ces périodes où une certaine stationnarité est détectée. La figure 3 illustre le problème de la transmission et de la 10 synchronisation des images de la vidéo au moment de la réception. En une ligne 300, on a représenté l'acquisition des images d'une vidéo le long d'un axe temporel. Les traits en gras représentent les images qui seront compressées en mode INTRA, les traits fins représentent les images qui seront compressées en mode INTER. Dans cet exemple, les images sont acquises toutes les 40 ms. 15 Après compression et paquétisation, les images sont transmises les unes après les autres, comme représenté en 301. Sur une ligne 302, on a représenté, sur un axe temporel les images lorsqu'elles sont reçues par le client 130, de façon symbolique. Les lignes pointillées 303 représentent les instants d'affichage théoriques des images. On voit que les images doivent être reçues 20 suffisamment tôt, avant l'instant d'affichage, pour qu'après dépaquétisation et décompression, elles soient affichées à l'instant théorique. On voit en 304 une image INTRA qui arrive avec un certain retard, ce qui empêche son affichage à temps. Comme cette image arrive en retard, les ressources du client sont mobilisées et le décodage de l'image INTER suivante, qui arrive pourtant à 25 temps, peut ne pas se faire suffisamment tôt, comme illustré sur la figure en 305, pour qu'elle soit affichée à l'instant théorique correspondant. La figure 4 illustre un autre problème liée aux protocoles de type TCP ou TFRC. On a représenté schématiquement sur la figure 4, le comportement d'un protocole de ce genre. La bande passante B(t) 30 correspondant au nombre de paquets envoyés est représentée en fonction du temps t. On observe que la bande passante B(t) augmente tant qu'aucune perte de paquet n'est détectée, puis chute lorsqu'une perte est détectée, par exemple par le serveur 120. L'intervalle de temps entre deux images étant de 40 ms sur cet exemple, l'image compressée doit être envoyée pendant cet intervalle de temps. Pour la première image INTRA 400, la bande passante disponible étant basse, cette image doit être très fortement compressée pour être envoyée suffisamment vite. En plus, du fait qu'une image INTRA est moins efficacement compressée, la bande passante basse pénalise doublement la qualité de cette image. Toujours dans cet exemple, en 401, l'image INTRA est transmise au moment où la bande passante est à son maximum. De ce fait, le taux de compression est moins fort et la qualité de l'image envoyée est supérieure. Dans cet exemple, la qualité des images transmises risque de varier fortement puisque certaines images doivent être très fortement compressées et d'autres beaucoup moins. L'impression visuelle qui en résulte est donc désagréable puisque la qualité d'image varie fortement d'un moment à l'autre.
Dans la suite de la description, on expose une méthode pour remédier aux problèmes exposés dans les figures précédentes (retard à l'affichage, forte variation de la qualité des images à deux instants différents) . Cette méthode est particulièrement applicable lorsque la durée entre deux images est relativement faible par rapport à la durée d'une oscillation de l'algorithme de contrôle de congestion. Comme indiqué dans la description de la figure 2, la durée d'oscillation dépend de la bande passante du réseau. En pratique, avec les réseaux haut débit récents (fonctionnant à 100Mb/s et plus), la période d'un flux, TCP par exemple, devient importante par rapport la durée entre deux images d'une vidéo. Par exemple, avec un débit de 100Mb/s, un RTT à 10 ms et avec une taille de paquet de 1500 octets, on obtient une période de 0,5 seconde si la vidéo est à 60 images par seconde, la durée entre deux images est de 17 ms, ce qui est faible par rapport à la période d'oscillation. La figure 5 décrit, sous forme de signaux, des effets de la mise en oeuvre de la présente invention. L'objectif est de synchroniser l'envoi des images représentées par une plus grande quantité d'information avec des instants où la bande passante est la plus élevée. Dans des modes de réalisation, pour atteindre cet objectif, on effectue les étapes principales suivantes : - détection d'un régime stationnaire d'évolution de la bande passante, - prédiction des pics de la bande passante et - modification des instants de compression des images d'une vidéo en mode INTRA de façon à ce que leurs transmissions correspondent aux pics de la bande passante. Ces étapes sont illustrées en figure 5, par leurs relations avec les signaux et bandes passantes mises en oeuvre. La courbe 500 représente un régime stationnaire de la bande passante. La période T de ce régime est mesurable et les pics de bande passante sont donc prévisibles. En deuxième ligne, la vidéo encodée est représentée symboliquement avec des traits plus épais pour les images codées en mode INTRA. On observe que, à l'instant 501, l'image encodée en mode INTRA par l'encodeur vidéo est envoyée sensiblement au moment du pic de bande passante. En revanche, à l'instant 502, la transmission d'une image INTRA coïncide, selon le modèle prédictif, avec le minimum de la bande passante de transmission. Pour une qualité vidéo constante, l'image INTRA transmise à partir de l'instant 502 risque alors d'arriver trop tard et provoquer un décalage temporel en arrivant après l'instant théorique d'utilisation de cette image, 506. Conformément à la présente invention, au lieu de coder en mode INTRA l'image transmise à l'instant 502, on code en mode INTRA une image transmise pendant le pic de bande passante. En figure 5, il s'agit de l'image précédente, ainsi codée en mode INTRA et transmise à partir de l'instant 503. La transmission de l'image codée en mode INTRA coïncide ainsi avec le pic de la bande passante. De ce fait, l'image a une probabilité plus forte d'arriver à temps et d'être affichée au bon moment 506. La figure 6 décrit, sous une forme hybride représentant des fonctions et des signaux mis en oeuvre par ces fonctions, un mode de réalisation particulier du procédé objet de la présente invention. Une vidéo 600 transmise à un encodeur de type MPEG 601 est encodée. Cette vidéo est encodée sous plusieurs formes 613, 614, 615 dans lesquelles la position de l'image codée en mode INTRA diffère. Nous rappelons sur la figure 7 une structure de groupe d'images 700, connu sous le nom de group of pictures , ou GOP . Un GOP est composée d'une image INTRA et d'images codées en INTER (images P ou images B dans la terminologie MPEG). En figure 7, le groupe d'images comporte sept images, notées 12 et P3 à P8, les images dont la référence commence par P étant codées en mode INTER et les images dont la référence commence par la lettre I étant codées en mode INTRA. L'image INTRA 12 est codée indépendamment des autres images alors que les images INTER P3 à P8 sont codées par référence avec une (images P ) ou plusieurs (images B )autres images du GOP. En figure 7, aucune image B n'est représentée. Dans la forme de codage 615, les images 1 et 2 d'un groupe d'images sont codées en INTER, l'image 3 en INTRA et les images 4 et 5 en INTER. Dans la forme de codage 614, les images 1 , 2 et 3 sont codées en mode INTER, l'image 4 en mode INTRA et l'image 5 à nouveau en mode INTER. Dans le forme de codage 613, l'image 1 est codées en mode INTER, l'image 2 en mode INTRA et les images 3 , 4 et 5 en mode INTER. Dans chacune des formes de codage, l'image suivante, d'indice 6 , est codée en mode INTER en prenant l'image 5 correspondante comme image de prédiction. Trois trains binaires 602 sont donc construits lorsqu'on arrive à la fin d'un GOP, puis paquétisés en 603 et insérés dans la mémoire tampon 604. Dans des variantes préférentielles, lorsque l'image à encoder se situe loin d'une image INTRA, un seul train binaire 602 est créé, paquétisé en 603 et inséré dans une mémoire tampon 604. Simultanément, cette mémoire tampon 604 est vidée à une vitesse dictée par le module de contrôle d'écoulement 605. Ce module 605 implémente, par exemple, un protocole TCP ou TFRC et peut prendre en compte le module 606 d'analyse du réseau à travers les paquets RTCP par exemple.
La mesure d'écoulement est effectuée en 607, avant envoi des images sur le réseau, par l'intermédiaire d'une carte réseau 608, et est analysée en 609. Si un régime stationnaire est détecté en 610 et 611, un algorithme 612 choisit, dans la mémoire tampon 604, les paquets correspondants au train binaire tel que la transmission de l'image INTRA du train binaire corresponde au pic de la bande passante, comme illustré à l'instant 503, en figure 5. Si plusieurs trains binaires sont disponibles, celui dont l'image INTRA coïncide le mieux avec le pic de bande passante du modèle de la bande passante est sélectionné. Coïncider avec le pic de la bande passante veut dire que la transmission de l'image INTRA se termine avant que la bande passante rechute et le plus près possible de cette chute. Pour se faire, le régime stationnaire est donc analysé en 611 et la bande passante moyenne est calculée pour savoir le temps d'écoulement de chacune des images des trains binaires 616, 617 et 618 correspondants aux formes de codage respectivement 613, 614 et 615. Par exemple, le train binaire qui coïncide le mieux est le train binaire 616. Il est alors extrait de la mémoire tampon 604, pour être transmis, alors que les trains binaires 617 et 618 sont supprimés de la mémoire tampon 604. La figure 8 décrit, schématiquement, un autre mode de réalisation particulier du procédé objet de la présente invention, dans lequel au lieu de générer plusieurs trains binaires au niveau de l'encodeur vidéo, un seul train binaire est généré. Une vidéo 800 est envoyée à un encodeur vidéo 801 de type MPEG, qui forme un train binaire 802, qui est ensuite mis en forme de paquets par la fonction 803, paquets stockés en mémoire tampon 804. Les fonctions 805 à 810 sont respectivement similaires aux fonctions 605 à 610. Ainsi, comme décrit en regard de la figure 6, la vitesse d'écoulement des paquets est analysée en 807 et 809, pour détecter si un régime stationnaire de l'algorithme de contrôle d'écoulement existe. Le paramètre principal de ce régime stationnaire est la période entre deux pics de la bande passante. Si un régime stationnaire est établi, cette période est stable, comme représenté en 811. Dans le cas où un régime stationnaire est détecté, la structure des GOPs de l'encodeur vidéo est analysée en 812. Si une fin de GOP, qui correspond à l'encodage d'une nouvelle image en mode INTRA, est bientôt prévue, les blocs fonctionnels 813 à 817 sont utilisés pour voir si la modification de la position de l'image INTRA pour la synchroniser avec le pic du régime stationnaire est possible. A cette fin, une variable i est initialisée à 0, par la fonction 813. En 814, on suppose que l'index de l'image courante est n, plusieurs valeurs pour le choix de l'image INTRA sont testées en incrémentant la valeur de la variable i, en 817. La valeur de i telle que l'image d'indice (n+i) corresponde au pic de la bande passante est sélectionnée en 816. A cet effet, les blocs fonctionnels 815 et 816 effectuent un test pour déterminer si l'instant de transmission de l'image (n+i) coïncidera avec un pic de la bande passante. De manière simple, on peut, en première approximation, se contenter d'évaluer si l'envoi de l'image n+i se trouve dans une phase en dessous ou au dessus de la bande passante moyenne. Dans le premier cas, on retarde la création de l'image codée en mode INTRA et, dans le deuxième cas, on accepte la création de l'image codée en mode INTRA. Dans le premier cas, la valeur courante de i est conservée et le choix de l'index de l'image pour un encodage en mode INTRA est (n+i). Dans le deuxième cas, une valeur incrémentée de i est testée. L'encodage MPEG, par l'encodeur 801, se fait alors en codant en mode INTRA l'image d'indice n+i. On note que le choix de la valeur i peut se faire en prenant en compte le niveau de remplissage de la mémoire tampon 804. En effet, si la mémoire tampon 804 est partiellement remplie et ne peut-être vidée rapidement, on prend en compte le temps d'écoulement des données conservée dans la mémoire tampon 804 et le délai temporel dû au remplissage de la mémoire tampon 804. Dans ce cas, l'évolution de la bande passante, représentée en 811, demande de modéliser plus fidèlement le régime stationnaire. Le module de contrôle d'écoulement 805 évalue la vitesse d'écoulement des données conservées dans la mémoire tampon en fonction des paramètres du modèle et de la vitesse de remplissage de la mémoire tampon 804 par les modules d'encodage MPEG 801 et de paquétisation 803. En fonction de ces paramètres, les modules de mesure et d'analyse d'écoulement 807 et 809 définissent les instants auxquels l'image INTRA (n+i) sera appréhendée par le module de contrôle d'écoulement 805. On note que le premier mode de réalisation, illustré en figure 6 présente l'avantage de choisir le type d'image INTRA juste avant sa transmission sur le réseau. De ce fait, le choix de l'image codée en INTRA est forcément optimal en termes de synchronisation de la transmission de l'image codée en INTRA avec le pic de la bande passante. En revanche, ce choix n'est pas toujours optimal en termes de qualité de compression, comme exposé en regard de la figure 9. Sur cette figure 9, lorsque la fin d'un GOP approche, dans le mode de réalisation décrit en regard de la figure 6, plusieurs trains binaires différents sont générés. Les images f2 à f4 sont encodées sous deux formes de trains binaires. Dans la première forme, l'image f2 est codée en INTRA 900 alors qu'il s'agit d'une image codée en INTER 901 dans la deuxième forme. Il en est de même pour l'image f3 qui est codée en INTRA et en INTER. De ce fait, l'image f4 diffère légèrement en termes de qualité dans les différents trains binaires. Lorsque l'image f5 902 est encodée, on utilise comme référence, pour le module d'estimation du mouvement, l'image compressée/décompressée précédente d'un des deux trains binaires, respectivement 903 ou 904. Si l'image du train binaire 901 est choisie comme image de référence, l'image f5 est optimisée en fonction du train binaire 901. Si le train binaire transmis est le train binaire 900, une légère erreur, connue sous le nom de drift peut apparaître à partir de l'image f5, lors du décodage et de la visualisation sur le client vidéo. A l'inverse, le mode de réalisation illustré en figure 8 est optimal en termes de compression vidéo puisqu'un seul train binaire est généré. Cependant, ce mode de réalisation peut ne pas être optimal en termes de synchronisation avec le pic de la bande passante. En effet, du fait que la mémoire tampon 804 peut ne pas être vide et que les vitesses d'écoulement et de remplissage doivent être modélisés en fonction du modèle 811 et de la taille estimée des images compressées par l'encodeur 801, une petite erreur peut apparaître quant au choix de l'image INTRA.
Un troisième mode de réalisation est destiné à pallier aux légers inconvénients des modes de réalisation illustrés en figures 6 et 8. Ce troisième mode de réalisation est décrit sur la figure 10, qui combine des aspects des deux premiers modes de réalisation. Comme nous l'avons précisé au préalable, dans le mode de réalisation décrit en figure 6, trois trains binaires sont générés, au moins sur certaines parties de la vidéo, c'est-à-dire au moins à proximité de la fin d'un GOP. Préférentiellement, ensuite, un seul train binaire est construit. Ce train binaire commun est la suite d'un seul des trois trains binaires générés à proximité de la fin du GOP (images f5 à f9 sur la figure 9). De ce fait, si le choix du train binaire 612 n'est pas celui servant de référence au train binaire commun, un léger drift apparaîtra à la visualisation de la séquence vidéo décodée. En théorie, la probabilité que le train binaire servant de référence au train binaire commun soit choisi est de 1/3. Le mode de réalisation illustré en figure 10 vise à augmenter cette probabilité en appliquant au mode de réalisation illustré en figure 6, le choix, pour référence du train binaire commun, du train binaire généré dont la probabilité d'être choisi est la plus élevée. Les fonctions 1003 à 1010 sont similaires aux fonctions 603 à 610 illustrées en figure 6. Une vidéo 1000 est transmise à un encodeur de type MPEG 1001 qui l'encode, c'est-à-dire la compresse, pour former un train binaire 1002 stocké dans une mémoire tampon 1004. Comme dans le mode de réalisation décrit en regard de la figure 6, lorsqu'une fin d'un GOP est détectée, trois trains binaires différents sont générés. Ces trois trains binaires 1016, 1017 et 1018 correspondent à trois positions différentes de l'image codée en INTRA. Lorsque l'on ré-encode la vidéo sous forme d'un seul train binaire, le train binaire commun 1019 fait référence à l'un des trois trains binaires. Dans ce cas, en 1015, le fonctionnement du deuxième mode de réalisation (voir figure 8) est simulé pour estimer, parmi ces trois trains binaires, lequel a la plus forte probabilité d'être celui dont l'image INTRA sera synchronisée avec un pic de bande passante modélisée. C'est ce train binaire qui sert de référence à l'encodage des prochaines images de la vidéo. Si par exemple, le train binaire 1018 est choisi comme étant celui pour lequel l'image INTRA coïncide le mieux au pic de bande passante, alors trois trains binaires sont générés mais lorsque la partie commune 1019 de la vidéo est compressée, elle prend le train binaire choisi 1018 comme train binaire de référence. L'algorithme est ensuite le même que celui décrit en regard de la figure 6 avec, en 1012, le choix du train binaire qui effectue la transmission de l'image INTRA la mieux synchronisée avec le pic de bande passante étant effectué. Du fait du test 1015, la probabilité de choisir le train binaire qui ne sert pas de référence au train binaire commun est plus faible. Comme représenté en figure 11 un dispositif mettant en oeuvre l'invention est par exemple un micro-ordinateur 120 connecté à différents périphériques, par exemple une caméra numérique 1107 (ou tout moyen d'acquisition ou de stockage d'image) reliée à une carte graphique et fournissant des informations à traiter selon l'invention. Le dispositif 120 pourrait aussi être une caméra numérique reliée a un réseau par exemple une caméra de vidéo surveillance. Le dispositif 120 comporte une interface de communication 1112 reliée à un réseau 1113 apte à transmettre des données numériques à traiter ou, inversement, à transmettre des données traitées par le dispositif. Le dispositif 120 comporte, de manière optionnelle, un moyen de stockage 1108 tel que par exemple un disque dur, un lecteur 1109 de disque 1110. Ce disque 1110 peut être une disquette, un CD-ROM, ou un DVD-ROM, par exemple. Le moyen de stockage 1108 peut contenir des données traitées selon l'invention ainsi que chaque programme participant à la mise en oeuvre du procédé objet de la présente invention, programme qui, une fois lu par le dispositif 120, est stocké par le moyen de stockage 1108. Selon une variante, le programme permettant au dispositif de mettre en oeuvre le procédé objet de la présente invention, est stocké en mémoire morte 1102 (appelée ROM , acronyme de read only memory pour mémoire morte, en figure 11). En variante, le programme est reçu pour être stocké de façon identique à celle décrite précédemment, par l'intermédiaire du réseau de communication 1113.
Le dispositif 120 est, optionnellement, relié à un microphone 1111. Les données à traiter selon l'invention sont, dans ce cas, du signal audio ou comportent du signal audio. Ce même dispositif 120 possède, de manière optionnelle, un écran 1104 permettant de visualiser les données à traiter ou de servir d'interface avec l'utilisateur qui peut ainsi paramétrer certains modes de traitement, à l'aide du clavier 1114 ou de tout autre moyen (souris par exemple). L'unité centrale 1100 (appelée CPU , acronyme de central processing unit pour unité de traitement centrale, en figure 11) exécute les instructions relatives à la mise en oeuvre du procédé objet de la présente invention, instructions stockées dans la mémoire morte 1102 ou par le moyen de stockage 1108. Lors de la mise sous tension, les programmes de traitement stockés dans une mémoire non volatile, par exemple la ROM 1102, sont transférés dans la mémoire vive RAM 1103 qui contient, alors, le code exécutable de l'invention ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé de codage, de transmission et respectivement de décodage. Le bus de communication 1101 permet la communication entre les différents éléments inclus dans le micro-ordinateur 120 ou reliés à lui. La représentation du bus 1101 n'est pas limitative et notamment l'unité centrale 1100 est susceptible de communiquer des instructions à tout élément du micro- ordinateur 120, directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 120.
Claims (14)
1 - Procédé de transmission d'images sur un réseau dans lequel la quantité d'information susceptible d'être envoyée par unité de temps varie de façon sensiblement cyclique, caractérisé en ce qu'il comporte : - une étape (605 à 607, 609, 610, 805 à 807, 809, 810, 1005 à 1007, 1009, 1010) de détermination d'instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est supérieure à sa moyenne, en fonction de la variation passée sensiblement cyclique de ladite quantité d'information et - une étape (601 à 605, 801 à 805, 812 à 816, 1001 à 1005) d'envoi sur ledit réseau, aux dits instants, d'images correspondant à une plus grande quantité d'information que la moyenne des images.
2 - Procédé de transmission d'images sur un réseau dans lequel la quantité d'information susceptible d'être envoyée par unité de temps varie de façon sensiblement cyclique, caractérisé en ce qu'il comporte : - une étape (605 à 607, 609, 610, 805 à 807, 809, 810, 1005 à 1007, 1009, 1010) de détermination d'instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est inférieure à sa moyenne, en fonction de la variation passée sensiblement cyclique de ladite quantité d'information et - une étape (601 à 605, 801 à 805, 812 à 816, 1001 à 1005) d'envoi sur ledit réseau, aux dits instants, d'images correspondant à une plus petite quantité d'information que la moyenne des images.
3 ù Procédé selon l'une quelconque des revendications 1 à 2, caractérisé en ce que, au cours de l'étape (605 à 607, 609, 610, 805 à 807, 809, 810, 1005 à1007, 1009, 1010) de détermination, on détermine une période de variation cyclique de la quantité d'information susceptible d'être envoyée sur le réseau.
4 ù Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que, au cours de l'étape (605 à 607, 609, 610, 805 à 807, 809, 810, 1005 à 1007, 1009, 1010) de détermination, on détermine des extrémums de quantité d'information susceptible d'être envoyée sur le réseau.
5 ù Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, au cours de l'étape (605 à 607, 609, 610, 805 à 807, 809, 810, 1005 à 1007, 1009, 1010) de détermination, on détermine une quantité d'information conservée dans une mémoire et restant à transmettre sur le réseau.
6 ù Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que, au cours de l'étape (601 à 605, 1001 à 1005) d'envoi d'images, on sélectionne une image à coder avec un taux de compression plus faible que le taux de compression des images qui l'entourent, la transmission des images étant effectuée dans leur ordre chronologique, de manière à ce que la transmission de l'image codée, sur le réseau, corresponde à un instant pour lequel la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est la plus grande.
7 ù Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que, au cours de l'étape (801 à 805, 812 à 816) d'envoi, on effectue une étape de codage d'au moins une image selon une pluralité de modes de codage représentant la même image par des quantités d'information différentes.
8 ù Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que, au cours de l'étape (801 à 805, 812 à 816) d'envoi, on effectue une étape de codage de la même succession d'une pluralité d'images en une pluralité de trains binaires, chaque train binaire représentant cette succession d'images avec une image spécifique qui est représentée selon un mode de codage représentant un taux de compression plus faible que les autres images de ladite succession d'images.
9 ù Procédé selon la revendication 8, caractérisé en ce que, au cours de l'étape (801 à 805, 812 à 816) d'envoi, on transmet le train binaire pour lequel l'imagespécifique correspond à un instant pour lequel la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est la plus grande.
10 û Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que, au cours de l'étape (601 à 605, 801 à 805, 812 à 816, 1001 à 1005) d'envoi, on détermine, pour chaque image d'une pluralité d'images, la position, dans le temps, de sa transmission sur le réseau au cas où cette seule image serait codée avec un mode de codage de plus faible taux de compression que les autres images de ladite pluralité d'images et on sélectionne l'image pour laquelle ladite position correspond à un instant pour lequel la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est la plus grande, afin que l'image sélectionnée soit codée avec ledit mode de codage de plus faible taux de compression.
11 û Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que, au cours de l'étape (601 à 605, 801 à 805, 812 à 816, 1001 à 1005) d'envoi, on estime celle des images de la pluralité d'image qui doit être codée avec un mode de codage de plus faible taux de compression que les autres images de ladite pluralité d'images et on constitue une pluralité de trains binaires en tenant compte de cette image.
12 -Dispositif de transmission d'images sur un réseau dans lequel la quantité d'information susceptible d'être envoyée par unité de temps varie de façon sensiblement cyclique, caractérisé en ce qu'il comporte : - un moyen (1100 à 1103) de détermination d'instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est supérieure à sa moyenne, en fonction de la variation passée sensiblement cyclique de ladite quantité d'information et - un moyen (1100 à 1103) d'envoi sur ledit réseau, aux dits instants, d'images correspondant à une plus grande quantité d'information que la moyenne des images.
13 û Dispositif de transmission d'images sur un réseau dans lequel la quantité d'information susceptible d'être envoyée par unité de temps varie de façon sensiblement cyclique, caractérisé en ce qu'il comporte :-un moyen (1100 à 1103) de détermination d'instants pour lesquels la quantité d'information susceptible d'être envoyée par unité de temps sur le réseau est inférieure à sa moyenne, en fonction de la variation passée sensiblement cyclique de ladite quantité d'information et - un moyen (1100 à 1103) d'envoi sur ledit réseau, aux dits instants, d'images correspondant à une plus petite quantité d'information que la moyenne des images.
14 - Programme d'ordinateur chargeable dans un système informatique, ledit programme contenant des instructions permettant la mise en oeuvre du procédé de transmission d'images selon l'une quelconque des revendications 1 à 11. - Support (1110) d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du 15 procédé de transmission d'images selon l'une quelconque des revendications 1 à 11.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0755941A FR2917919B1 (fr) | 2007-06-21 | 2007-06-21 | Procede et dispositif de transmission d'images. |
US12/137,975 US8126049B2 (en) | 2007-06-21 | 2008-06-12 | Method and a device for transmitting images |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0755941A FR2917919B1 (fr) | 2007-06-21 | 2007-06-21 | Procede et dispositif de transmission d'images. |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2917919A1 true FR2917919A1 (fr) | 2008-12-26 |
FR2917919B1 FR2917919B1 (fr) | 2010-06-11 |
Family
ID=38988064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0755941A Expired - Fee Related FR2917919B1 (fr) | 2007-06-21 | 2007-06-21 | Procede et dispositif de transmission d'images. |
Country Status (2)
Country | Link |
---|---|
US (1) | US8126049B2 (fr) |
FR (1) | FR2917919B1 (fr) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2923118B1 (fr) * | 2007-10-30 | 2016-04-01 | Canon Kk | Procede, dispositif et programme d'ordinateur pour la gestion de la quantite de donnees emises par un dispositif d'emission |
US9568985B2 (en) | 2012-11-23 | 2017-02-14 | Mediatek Inc. | Data processing apparatus with adaptive compression algorithm selection based on visibility of compression artifacts for data communication over camera interface and related data processing method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999000984A1 (fr) * | 1997-06-26 | 1999-01-07 | Citrix Systems, Inc. | Systeme d'acheminement adaptatif de donnes video/audio sur un reseau |
FR2811098A1 (fr) * | 2000-07-03 | 2002-01-04 | Canon Res Ct France Sa | Procede et dispositif de transfert d'un document electronique dans un reseau de communication |
US20040190515A1 (en) * | 2003-03-24 | 2004-09-30 | International Business Machines Corporation | System and method for providing multiplexing and remultiplexing of MPEG-2 streams |
WO2006047324A1 (fr) * | 2004-10-22 | 2006-05-04 | Hewlett-Packard Development Company, L.P. | Procedes et systemes utilisant des informations relatives a une trame de donnees video pour decider de l'envoi de la trame |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6292512B1 (en) * | 1998-07-06 | 2001-09-18 | U.S. Philips Corporation | Scalable video coding system |
US7260826B2 (en) * | 2000-05-31 | 2007-08-21 | Microsoft Corporation | Resource allocation in multi-stream IP network for optimized quality of service |
US6829442B2 (en) * | 2000-12-19 | 2004-12-07 | Lite Cycles, Inc. | High speed optical receiver |
FR2854753B1 (fr) | 2003-05-07 | 2006-03-17 | Canon Kk | Procede de distribution de documents numeriques multi-resolutions |
FR2875030B1 (fr) | 2004-09-08 | 2006-11-24 | Canon Kk | Procede de visualisation d'une sequence de partage de donnees et dispositif de partage correspondant |
US7961618B1 (en) * | 2006-06-30 | 2011-06-14 | Nextel Communications Inc. | System, method and computer-readable medium for on-demand dynamic bandwidth allocation in a network of antennas for multiple base transceiver stations |
US8310920B2 (en) * | 2007-03-02 | 2012-11-13 | Saratoga Data Systems, Inc. | Method and system for accelerating transmission of data between network devices |
-
2007
- 2007-06-21 FR FR0755941A patent/FR2917919B1/fr not_active Expired - Fee Related
-
2008
- 2008-06-12 US US12/137,975 patent/US8126049B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999000984A1 (fr) * | 1997-06-26 | 1999-01-07 | Citrix Systems, Inc. | Systeme d'acheminement adaptatif de donnes video/audio sur un reseau |
FR2811098A1 (fr) * | 2000-07-03 | 2002-01-04 | Canon Res Ct France Sa | Procede et dispositif de transfert d'un document electronique dans un reseau de communication |
US20040190515A1 (en) * | 2003-03-24 | 2004-09-30 | International Business Machines Corporation | System and method for providing multiplexing and remultiplexing of MPEG-2 streams |
WO2006047324A1 (fr) * | 2004-10-22 | 2006-05-04 | Hewlett-Packard Development Company, L.P. | Procedes et systemes utilisant des informations relatives a une trame de donnees video pour decider de l'envoi de la trame |
Also Published As
Publication number | Publication date |
---|---|
US20080317117A1 (en) | 2008-12-25 |
US8126049B2 (en) | 2012-02-28 |
FR2917919B1 (fr) | 2010-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2916600A1 (fr) | Procede et dispositif de transmission de donnees | |
FR2922391A1 (fr) | Procede et dispositif de transmission de donnees | |
FR2908585A1 (fr) | Procede et dispositif de transmission de donnees video. | |
EP3503618B1 (fr) | Procédé de régulation de débit | |
FR2975555A1 (fr) | Methode d'adaptation dynamique du debit de reception et recepteur associe | |
FR2948249A1 (fr) | Procedes et dispositifs d'estimation d'un niveau d'utilisation d'un reseau de communication et d'adaptation d'un niveau d'abonnements a des groupes multipoints | |
FR2932938A1 (fr) | Procede et dispositif de transmission de donnees | |
FR2883692A1 (fr) | Procede d'envoi de commande a un serveur de flux de donnees numeriques et appareil implementant le procede | |
FR2849733A1 (fr) | Dispositif et procede d'ajustement de debit d'un flux de contenus et produits associes | |
EP3167617B1 (fr) | Procédé et dispositif d'enregistrement à distance de programmes vidéo | |
FR2946820A1 (fr) | Procede de transmission de donnees et dispositif associe. | |
FR2944938A1 (fr) | Procede et dispositif de correction d'erreurs. | |
FR2928807A1 (fr) | Procede de transmission sur un reseau de communication d'un signal video pre-encode | |
FR2917919A1 (fr) | Procede et dispositif de transmission d'images. | |
FR2834178A1 (fr) | Procede de decodage de signaux video codes | |
EP2559218B1 (fr) | Reception d'un contenu numerique en mode truque | |
FR2987213A1 (fr) | Systeme video pour representer des donnees d'image et son procede d'application | |
EP2680603A1 (fr) | Technique de traitement pour proposer un contenu temps réel à des entités clientes | |
Stensen | Evaluating QoS and QoE Dimensions in Adaptive Video Streaming | |
JP5643242B2 (ja) | メディアプレイヤパラメタ推定装置及び方法及びプログラム | |
FR2941110A1 (fr) | Procede et dispositif de prediction d'un etat de pertes d'un reseau de communication | |
Ahsan et al. | DASHing towards hollywood | |
FR3075543B1 (fr) | Procede de telechargement de chaine pour le zapping d'une chaine numerique en fonction du comportement utilisateur | |
WO2020234030A1 (fr) | Restitution d'un contenu en arrière-plan ou sous forme d'incrustation dans le cadre d'un téléchargement progressif adaptatif de type has | |
EP2302926B1 (fr) | Technique de supervision d'une qualité d'une insertion d'un deuxième contenu lors d'une diffusion d'un premier contenu |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20140228 |