FR2908585A1 - Procede et dispositif de transmission de donnees video. - Google Patents
Procede et dispositif de transmission de donnees video. Download PDFInfo
- Publication number
- FR2908585A1 FR2908585A1 FR0654918A FR0654918A FR2908585A1 FR 2908585 A1 FR2908585 A1 FR 2908585A1 FR 0654918 A FR0654918 A FR 0654918A FR 0654918 A FR0654918 A FR 0654918A FR 2908585 A1 FR2908585 A1 FR 2908585A1
- Authority
- FR
- France
- Prior art keywords
- image
- images
- transcoded
- data
- network
- 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 24
- 238000005259 measurement Methods 0.000 title claims abstract description 14
- 238000004891 communication Methods 0.000 claims abstract description 14
- 238000004590 computer program Methods 0.000 claims abstract description 6
- 230000005540 biological transmission Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 12
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000750 progressive effect Effects 0.000 description 3
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000003012 network analysis Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101710157392 Macrophage-expressed gene 1 protein Proteins 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- 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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- 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/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- 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/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- 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
-
- 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/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- 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/234309—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 transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- 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/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- 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/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Ce procédé permet la transmission de données codées représentant une séquence d'images numériques (300). Une quantité prédéterminée de ces données est mémorisée dans une mémoire tampon (304) avant transmission sur un réseau de communication. Le procédé comporte une étape (312) de détermination d'un sous-ensemble de données de la mémoire tampon (304) à transcoder, en fonction d'au moins une grandeur représentative de la bande passante disponible pour le réseau de communication.
Description
1 PROCEDE ET DISPOSITIF DE TRANSMISSION DE DONNEES VIDEO La présente
invention se rapporte à un procédé et à un dispositif de transmission de données vidéo.
Elle appartient au domaine de là compression et de la transmission vidéo sur un réseau. Comme le montre la figure 1, la situation envisagée par la présente invention est la suivante. Une vidéo initiale 100 est comprimée par un codeur vidéo 101 pour être transmise sur un réseau, d'un serveur vers un client.
Le codeur vidéo peut être un codeur MPEG1, 2, 4, Motion JPEG ou H264. Cependant, dans le cadre de la présente invention, on suppose que ce codeur n'est pas un codeur dit progressif ("scalable" en anglais). C'est le cas pour H264 ou pour certains profils de MPEG2 ou MPEG4. Le train binaire 102 obtenu est découpé en paquets dans une unité 103 avant d'être provisoirement mémorisé dans une mémoire tampon 104. Un module 107 d'analyse réseau permet de mesurer la bande passante disponible entre le serveur et le client. Cette mesure de bande passante est transmise à un module 105 de contrôle d'écoulement, qui va écouler ces paquets vers une carte réseau 109 en respectant une contrainte de bande passante B(t) (t désignant l'instant courant) calculée par le module d'analyse 107. Cette mesure de bande passante est généralement calculée régulièrement, selon la fréquence de réception des paquets RTCP. Dans certains cas, un paquet RTCP est reçu toutes les secondes. De ce fait, les baisses brutales de la bande passante constatées à la sortie de la carte réseau 109 ne sont pas toujours prises en compte. Par suite, il peut arriver que le tampon de la carte réseau sature et bloque l'écoulement des paquets par le module 105. La consigne de bande passante B(t) donnée par le module d'analyse 107 n'est alors plus respectée.
La mesure d'écoulement réelle est mesurée par un module 106 de mesure d'écoulement et est transmise à un module 108 de contrôle de débit qui 2908585 2 va coder la vidéo en fonction de l'état de la mémoire tampon 104 et de la vitesse d'écoulement mesurée par le module 106. Pour chaque nouvelle image, le module 108 de contrôle de débit prend en compte la mesure de bande passante B(t) fournie en dernier par le 5 module 106 de mesure d'écoulement et le niveau de remplissage I(t) de la mémoire tampon 104. Toutefois, cette mesure d'écoulement peut chuter continuellement. Dans un tel cas, la consigne donnée au module 108 de contrôle de débit est différente de la vraie consigne de transmission de la vidéo. En effet, la valeur 10 de la bande passante disponible peut fortement varier pendant le laps de temps nécessaire au codage d'une image. Le module 108 de contrôle de débit prenant sa consigne avant le codage de l'image, cette consigne peut différer de la réalité à la fin du codage de l'image. Dans ce cas, le niveau de la mémoire tampon 104 peut augmenter dangereusement au point de saturer (en anglais 15 "overfloW'). Le codeur vidéo doit donc s'arranger pour comprimer la vidéo avec une qualité maximale tout en évitant la saturation de la mémoire tampon 104. Plus la mémoire tampon est remplie, plus le taux de compression appliqué aux images doit être important. En cas de saturation de la mémoire tampon, 20 certaines images peuvent ne pas être codées. Cela conduit à l'application d'un taux de compression excessif des nouvelles images afin d'éviter la saturation de la mémoire tampon. On a proposé diverses solutions à ce problème, dont aucune n'est cependant jugée satisfaisante.
25 En particulier, l'article de I. V. BAJIC et al. intitulé "End-to-End Buffer Management and congestion control for scalable video communication", ICIP 2003, utilise le mode progressif d'un codeur vidéo. La paquetisation prend en compte la couche de base, jugée comme prioritaire et placée dans des paquets prioritaires, et la couche rehaussée, jugée comme facultative et placée dans 30 des paquets de moindre importance. En cas de saturation de la mémoire tampon de sortie, les paquets non prioritaires sont simplement supprimés. Cette solution ne convient pas dans le cadre de la présente invention, c'est-à-dire 2908585 dans le cas d'un codeur vidéo non progressif, car la suppression directe de paquets provoquerait des erreurs dl reconstruction importantes. Dans l'article de J. I. KHAN, Q. GU et R. ZAGHAL intitulé "Rate Control in an MPEG-2 Video Transcoder for Transport Feedback based Quality- 5 Rate Tradeoff', Packet video 2002, un routeur transcode tous les paquets provenant d'un premier réseau vers un second réseau. La taille des nouveaux paquets est directement calculée en appliquant les consignes de régulation de débit issues d'un protocole TCP. Cependant, cette solution n'envisage pas la présence d'une mémoire tampon d'images car tous les paquets sont transcodés 10 à la volée. Or tous les paquets ne sont pas nécessairement transcodables, suivant leur contenu et le temps de transcodage requis. Enfin, l'article de P. A. A. ASSUNCAO et M. GHANBARI intitulé "A Frequency-Domain Video Transcoder for Dynamic Bit-Rate Reduction of MPEG-2 Bit Streams", IEEE Transactions on Circuits and Systems For Video 15 Technology, vol. 8, n 8, décembre 1998, propose un algorithme de transcodage d'images dans lequel un flux MPEG est pris en entrée et, de même que dans l'article précédemment cité, toutes les images sont transcodées. La présente invention a pour but de remédier aux inconvénients 20 précités. Dans ce but, la présente invention propose un procédé de transmission de données codées représentant une séquence d'images numériques, une quantité prédéterminée de ces données étant mémorisée dans une mémoire tampon avant transmission sur un réseau de 25 communication, ce procédé étant remarquable en ce qu'il comporte une étape de détermination d'un sous-ensemble de données de la mémoire tampon à transcoder, en fonction d'au moins une grandeur représentative de la bande passante disponible pour le réseau de communication. Ainsi, l'invention permet de libérer de la place dans la mémoire 30 tampon par transcodage et réduction de l'information associée à un sous- ensemble d'images. Par conséquent, la compression des nouvelles images n'est pas aussi forte que lorsque la mémoire tampon était proche de la 2908585 4 saturation, amenant ainsi une meilleure homogénéité de la qualité des images transmises. Selon une caractéristique particulière, l'étape de détermination comporte une sous-étape de calcul d'un couple de paramètres (K,X1) où le 5 paramètre K représente l'indice de la première image à transcoder et X1 représente le nombre d'images à transcoder. Cela permet de calculer le nombre maximal d'images qui peuvent être transcodées et ainsi, d'obtenir davantage de place dans la mémoire tampon pour le codage des nouvelles images. Cela permet par suite d'obtenir 10 une qualité d'image plus constante. Selon une caractéristique particulière, l'étape de calcul du couple de paramètres (K,Xl) comporte une étape consistant à calculer la valeur de K la plus faible possible et la valeur d'un paramètre X la plus grande possible de façon à toujours avoir i(t) < n(t), X étant le nombre d'images qu'il est possible de 15 transcoder, i(t) désignant l'indice de l'image en cours de transmission en fonction du temps et n(t) désignant l'indice de l'image en cours de transcodage en fonction du temps. Cela permet d'éviter que le transcodage interfère avec la transmission : on évite ainsi par exemple de transcoder une image qui est en 20 cours de transmission. En effet, si tel était le cas, soit le transcodage ne pourrait être effectué, soit la transmission devrait être interrompue, ce qui causerait un retard à la réception. Selon une caractéristique particulière, l'indice n(t) de l'image en cours de transcodage est donné par : si to < t <to + où le signe L J désigne la partie entière, to désigne l'instant de décision où on estime le nombre X1 d'images à transcoder, i désigne l'image en cours de transmission au temps to et tl désigne la durée de transcodage d'une image. L'équation ci-dessus contribue à empêcher l'interférence entre le 30 transcodage et la transmission. 25 n(t)=i+K+ tût t 2908585 5 Selon une caractéristique particulière, lorsque les données sont transmises par une carte réseau, la grandeur représentative de la bande passante disponible est une mesure d'écoulement de la carte réseau. C'est une mesure de la bande passante qui peut s'avérer plus 5 précise que la valeur de la bande passante estimée uniquement à partir des paquets RTCP fournie par le module d'analyse réseau 107 de la figure 1. Dans un mode particulier de réalisation, les données à transcoder sont des paquets correspondant à des blocs d'images qui ne servent pas au codage d'autres images de la séquence d'images.
10 Cela permet d'éviter les problèmes de dérive (en anglais "drift'). En effet, si une image A utilisée comme référence par une autre image B lors du codage est transcodée, le codage de cette autre image B n'est plus optimal et des artefacts peuvent être visibles. Ces artefacts peuvent être supprimés en compensant la dérive du transcodage. Cependant, dans ce cas, l'image B doit 15 aussi être transcodée. Le coût calculatoire est alors plus élevé. Transcoder une image qui ne sert pas de référence est donc moins coûteux et évite d'avoir à prendre en compte des problèmes de propagation de dérive. Dans un autre mode particulier de réalisation, les données à transcoder sont des images de la séquence d'images.
20 Dans ce dernier mode de réalisation, la dernière image à transcoder est située avant une image codée en mode "intra" dans la séquence d'images. Cela permet de garantir que le transcodage appliqué n'engendre pas de dérive sur des images qui seront ultérieurement codées (pour lesquelles la dérive ne pourra être compensée) et qui ne sont pas encore dans la mémoire 25 tampon. En effet, on considère qu'on ne peut agir que sur les images de la mémoire tampon. Le codeur ne sera donc pas informé que des images de la mémoire tampon ont été modifiées. Si l'image en cours de codage dépend (de façon directe ou indirecte) d'une image de la mémoire tampon, une dérive apparaîtra lors du décodage sur cette image. Il est donc préférable de ne pas 30 transcoder des images de la mémoire tampon qui serviront au codage de l'image en cours de codage. L'image de la mémoire tampon la plus ancienne qui présente une dépendance par rapport à l'image en cours de codage étant la 2908585 6 dernière image intra de la mémoire tampon, il convient d'arrêter le transcodage juste avant cette image : la dérive est ainsi évitée. Dans le même but que celui indiqué plus haut, la présente invention propose également un dispositif de transmission de données codées 5 représentant une séquence d'images numériques, une quantité prédéterminée de ces données étant mémorisée dans une mémoire tampon avant transmission sur un réseau de communication, ce dispositif étant remarquable en ce qu'il comporte un module de détermination d'un sous-ensemble de données de la mémoire tampon à transcoder, en fonction d'au moins une 10 grandeur représentative de la bande passante disponible pour le réseau de communication. Toujours dans le même but, la présente invention propose également un système de télécommunications comprenant une pluralité de dispositifs terminaux reliés à travers un réseau de télécommunications, 15 comprenant au moins un dispositif terminal équipé d'un dispositif de transmission tel que succinctement décrit ci-dessus. Toujours dans le même but, la présente invention vise aussi un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, 20 remarquable en ce qu'il permet la mise en oeuvre d'un procédé de transmission tel que succinctement décrit ci-dessus. Dans un mode particulier de réalisation, ce moyen de stockage est partiellement ou totalement amovible. Toujours dans le même but, la présente invention vise aussi un 25 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 transmission tel que succinctement décrit ci-dessus, lorsque ce programme est chargé et exécuté par l'appareil programmable. Les caractéristiques particulières et les avantages du dispositif de 30 transmission, du système de télécommunications, du moyen de stockage d'informations et du produit programme d'ordinateur étant similaires à ceux du procédé de transmission, ils ne sont pas répétés ici.
2908585 7 D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit d'un mode particulier de réalisation, donné à titre d'exemple non limitatif. La description se réfère aux dessins qui l'accompagnent, dans lesquels : 5 - la figure 1, déjà décrite, représente schématiquement le contexte de la présente invention ; - la figure 2 représente schématiquement un mode particulier de réalisation d'un appareil susceptible de mettre en oeuvre la présente invention ; - la figure 3 représente schématiquement un mode particulier de 10 réalisation de la présente invention ; et - les figures 4 et 5 illustrent des exemples non limitatifs de détermination d'un sous-ensemble d'images à transcoder conformément à la présente invention. Comme représenté sur la figure 2, un dispositif mettant en oeuvre 15 l'invention est par exemple un micro-ordinateur 110 connecté à différents périphériques, par exemple une caméra numérique 1107 (ou un scanner, 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 110 comporte une interface de communication 1112 20 reliée à un réseau 1113 apte à recevoir des données numériques à traiter ou inversement à transmettre des données traitées par le dispositif. Le dispositif 110 comporte également un moyen de stockage 1108 tel qu'un disque dur. Il comporte aussi un lecteur 1109 de disques 1110. Ce disque 1110 peut être une disquette, un CD-ROM, ou un DVD-ROM, par 25 exemple. Le disque 1110 comme le disque 1108 peuvent contenir des données traitées selon l'invention ainsi que le ou les programmes mettant en oeuvre l'invention qui, une fois lus par le dispositif 110, seront stockés dans le disque dur 1108. En variante, le ou les programmes permettant au dispositif de mettre en oeuvre l'invention pourront être stockés en mémoire morte 1102 (appelée 30 ROM sur le dessin). Dans une autre variante, ce ou ces programmes pourront être reçus pour être stockés de façon identique à celle décrite précédemment par l'intermédiaire du réseau de communication 1113.
2908585 8 Le dispositif 110 est relié à un microphone 1111. Les données à traiter selon l'invention seront dans ce cas du signal audio. Ce même dispositif possède un écran 1104 permettant de visualiser les données à traiter ou de servir d'interface avec l'utilisateur qui peut ainsi 5 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 sur le dessin) exécute les instructions relatives à la mise en oeuvre de l'invention, instructions stockées dans la mémoire morte 1102 ou dans les autres éléments de stockage. Lors de 10 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 contiendra 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.
15 De façon 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 totalement ou partiellement amovible, mémorise un programme mettant en oeuvre le procédé de transmission. Le bus de communication 1101 permet la communication entre les 20 différents éléments inclus dans le micro-ordinateur 110 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 110 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 110.
25 La figure 3 illustre un mode particulier de réalisation de l'invention. Une vidéo 300 est codée par un codeur 301, par exemple un codeur MPEG, sous forme d'un train binaire 302. A partir de ce train binaire, des paquets sont fabriqués par un module 303 de formation de paquets (appelée également "paquetisation", l'opération inverse étant appelée "dépaquetisation") et placés 30 dans une mémoire tampon 304 du réseau.
2908585 9 Un module 305 de contrôle d'écoulement contrôle l'écoulement des paquets vers une carte réseau 309 en fonction de l'estimation de la bande passante B(t) effectuée par un analyseur réseau 307. Le module 308 de contrôle de débit calcule la taille des nouvelles 5 images en fonction du niveau de remplissage I(t) de la mémoire tampon 304 et de la bande passante B'(t) mesurée par un module de mesure d'écoulement 306. Conformément à la présente invention, lors de la détection d'un niveau haut de la mémoire tampon 310, on calcule le couple (K,Xl) permettant 10 de sélectionner les images 311 de la mémoire tampon 304 qui seront transcodées par un module 316 de transcodage. La valeur de K représente l'indice de la première image de la mémoire tampon à transcoder. Le paramètre X1 représente le nombre d'images à transcoder. Comme décrit plus loin, il convient de calculer une valeur X puis la valeur de X1 se déduit de celle de X.
15 Le transcodage consiste à réduire la taille des images déjà codées et présentes dans la mémoire tampon 304. Après transcodage, la taille de ces images sera plus faible, libérant de la place pour les nouvelles images à coder par le codeur 301 et permettant ainsi une meilleure homogénéité de la qualité des images codées.
20 Lorsque le niveau haut de la mémoire tampon a été détecté par un module 310 de détection de niveau haut, la taille moyenne cible des images à transcoder est fixée dans un module 318 de calcul de la taille des images transcodées. On note P+ la valeur de cette taille moyenne. Cette valeur sera la nouvelle taille comprimée des images.
25 Le couple de valeurs (K,X1) est ensuite calculé, les paquets/images à transcoder sont sélectionnés par un module 312 de sélection, dépaquetisés par un module 313 de dépaquetisation et transcodés par le module 316 de transcodage, en respectant la consigne de bande passante P+ grâce à un module 317 de contrôle de débit. Le transcodage est un transcodage en qualité.
30 Il ne consiste pas à supprimer des images. La qualité des images sélectionnées est seulement réduite.
2908585 10 On décrit ci-après le mode de calcul des valeurs des paramètres K et X1, en référence à la figure 4, qui illustre un exemple où le schéma de compression vidéo du codeur 301 code les images de façon indépendante (une image est dite indépendante si elle n'est pas utilisée comme référence par 5 d'autres images du codeur vidéo : c'est le cas par exemple des images codées avec Motion JPEG, ou des images dites bidirectionnelles dans la norme MPEG) et en référence à la figure 5, qui illustre un exemple où des images peuvent être codées de façon dépendante (par exemple, les images Inter de MPEG1, 2, 4...).
10 Dans un premier temps, il convient de calculer une valeur X, qui représente le nombre d'images qu'il est possible de transcoder. On décrit donc tout d'abord une façon de calculer X. Ensuite, pour des questions de réalisabilité, seul un sous-ensemble X1 de ces X images pourront être transcodées. Dans le cadre de la figure 4, on aura X = Xl. En revanche, dans 15 le cas de la figure 5, X et Xl auront deux valeurs différentes. Le calcul de X implique de fixer la valeur P+ de la taille moyenne cible des images à transcoder. Pour cela, lorsque le niveau haut de la mémoire tampon 304 est détecté par le module 310 de détection, un module 308 de contrôle de débit estime la taille des nouvelles images à coder en fonction de ce 20 niveau haut. On note Po cette taille. Comme la mémoire tampon 304 est presque pleine, cette valeur est très faible. Le taux de compression est élevé. Cette valeur Po est la valeur qu'aurait calculée le module 308 de contrôle de débit. La taille moyenne des images déjà codées et présentes dans la 25 mémoire tampon 304 étant notée P-, on fixe la valeur : P+_ Po+P-2 On suppose ici que Po < P-, puisque le taux de compression devient d'autant plus élevé que la mémoire tampon est proche de la saturation. La nouvelle taille des images P+ sera donc inférieure à l'ancienne taille moyenne P- 30 et de la place supplémentaire sera libérée dans la mémoire tampon. Le couple (K,X) est alors calculé comme suit.
2908585 11 II convient de s'assurer que l'image qui est en cours de transcodage n'est pas transmise avant la fin de l'opération de transcodage. Pour cela, on calcule les indices i(t) des images en cours de transmission (en fonction du temps) et on calcule les indices n(t) des images en cours de transcodage (en 5 fonction du temps). Conformément à la présente invention, on calcule la valeur de K la plus faible possible et la valeur de X la plus grande possible de façon qu'on ait toujours : i(t) < n(t) 10 Cela permet de garantir que le dispositif est toujours en mesure de transmettre les images dans l'ordre séquentiel et que suffisamment de temps est laissé au transcodage. La figure 3 montre que la mesure d'écoulement de la carte réseau est effectuée par le module 306 de mesure d'écoulement. Cette valeur est 15 connue à tout instant et se note B'(t). En théorie, la valeur d'écoulement B'(t) devrait correspondre à la bande passante estimée du réseau. La mémoire tampon 104 de la figure 1 est en effet ouverte à la vitesse correspondant à la bande passante du réseau B(t). Toutefois, dans certains cas, un paquet issu de la mémoire tampon 104 et 20 transmis à la carte réseau peut ne pas être directement transmis sur le réseau. En effet, la carte réseau 109 peut ne pas être en mesure d'écouler un paquet reçu car le réseau ne le permet pas. Dans ce cas, quand la mémoire tampon interne de la carte réseau est pleine, le paquet issu de la mémoire tampon 104 est refusé et reste dans cette mémoire tampon tant que la mémoire tampon 25 interne de la carte réseau 109 est pleine. De ce fait, la vitesse d'écoulement est inférieure ou égale à la bande passante estimée par le module d'analyse 107. Comme la taille de chaque image codée ou transcodée est connue, on peut à tout instant savoir quelle image est en cours de transmission. Si t = 0 est l'instant de démarrage de la transmission vidéo, l'indice i 30 de l'image en cours de transmission (au temps t) vérifie l'équation : i = max(z) tel que f B' (s)ds = B' (t) . t > E S(k) zeN 0 k=0 2908585 12 où N désigne l'ensemble des entiers positifs et S(i) est la taille de la ième image codée. A l'instant de décision to où on estime le nombre d'images à transcoder, il convient d'évaluer au cours du temps (dans le futur) les indices n(t) des images transmises. Ces indices sont évalués comme suit. On a : 5 i(t) = max(z) tel que B'(to ).(t û to) > ES(I) zEN où S(I) est la taille de l'image codée ou transcodée. i est l'indice de l'image en cours de transmission au temps to. On aura : S(I) = P+ si i + K <û I <û i + K + X ; sinon, S(I) aura la taille de l'image initialement codée.
10 L'indice de l'image qu'on transcode est donné par : n(t) = i + K + t t t si to t <to + X.t, 1 où le signe L J désigne la partie entière et tl désigne la durée de transcodage d'une image. Le calcul décrit précédemment est aisément simulable par une 15 machine. Dans le mode particulier de réalisation décrit ici, seule la mémoire tampon 304 du serveur est prise en compte. Néanmoins, conformément à la présente invention, on pourrait tout aussi bien prendre en compte la mémoire tampon du client ou encore d'autres paramètres.
20 La figure 4 illustre sous la référence 400 un état possible de la mémoire tampon 304. Dans cet exemple, l'état de la mémoire tampon est représenté sous forme d'images pour simplifier l'explication du raisonnement tenu. On voit que toutes ces images sont des images Intra (représentées par la lettre "I" sur le dessin). Ces images sont donc indépendantes les unes des 25 autres. Elles peuvent provenir soit d'un codeur Motion-JPEG, qui n'utilise pas la redondance temporelle, soit d'un codeur MPEG, qui n'utilise que les images Intra. Dans ce cas, on a X1 = X. Bien que la mémoire tampon ait été représentée sous forme d'images, elle est en réalité composée de paquets de données. Même si on a 2908585 13 décrit ci-dessus le calcul d'une valeur de X fondée sur des images, le même raisonnement peut être tenu au niveau du paquet. La figure 5 illustre sous la référence 500 un état possible de la mémoire tampon 304. Dans cet exemple, l'état de la mémoire tampon est 5 représenté sous forme d'images Intra (désignées par la lettre "I" sur le dessin) et Inter (désignées par la lettre "P"). Une image Intra est une image autonome. Elle peut se décoder sans l'utilisation d'images précédentes. Une image Inter est une image prédite. Sa reconstruction ou décodage dépend d'une image de référence.
10 Le transcodage peut commencer sur n'importe quel type d'image. En effet, des algorithmes de transcodage existent et peuvent prendre en compte l'effet de la re-quantification sur les images ultérieures. En revanche, le transcodage ne peut pas se terminer n'importe où. II doit se terminer juste avant une image Intra. Si ce n'est pas le cas, une erreur de transcodage peut exister.
15 De ce fait, on ne va pas transcoder les X images. On ne sélectionnera que X1 images et la dernière image sélectionnée se situera avant une image Intra. Les X1 images à transcoder sont illustrées sous la référence 501.
Claims (15)
1. Procédé de transmission de données codées représentant une séquence d'images numériques (300), une quantité prédéterminée desdites données étant mémorisée dans une mémoire tampon (304) avant transmission sur un réseau de communication, ledit procédé étant caractérisé en ce qu'il comporte une étape (312) de détermination d'un sous-ensemble de données de la mémoire tampon (304) à transcoder, en fonction d'au moins une grandeur représentative de la bande passante disponible pour ledit réseau de communication.
2. Procédé selon la revendication 1, caractérisé en ce que l'étape (312) de détermination comporte une sous-étape (311) de calcul d'un couple de paramètres (K,X1) où le paramètre K représente l'indice de la première image à transcoder et X1 représente le nombre d'images à transcoder.
3. Procédé selon la revendication 2, caractérisé en ce que ladite étape (311) de calcul du couple de paramètres (K,X1) comporte une étape consistant à calculer la valeur de K la plus faible possible et la valeur d'un paramètre X la plus grande possible de façon à toujours avoir i(t) < n(t), X étant le nombre d'images qu'il est possible de transcoder, i(t) désignant l'indice de l'image en cours de transmission en fonction du temps et n(t) désignant l'indice de l'image en cours de transcodage en fonction du temps.
4. Procédé selon la revendication 3, caractérisé en ce que l'indice n(t) de l'image en cours de transcodage est donné par : si to t <to + XII où le signe L J désigne la partie entière, to désigne l'instant de décision où on estime le nombre X1 d'images à transcoder, i désigne l'indice de l'image en cours de transmission au temps to et t1 désigne la durée de transcodage d'une image.
5. Procédé selon l'une quelconque des revendications précédentes, 30 caractérisé en ce que lorsque les données sont transmises par une carte n(t)=i+K+ t ù t t 2908585 15 réseau (306), la grandeur représentative de la bande passante disponible est une mesure d'écoulement de la carte réseau.
6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les données à transcoder sont des paquets 5 correspondant à des blocs d'images qui ne servent pas au codage d'autres images de la séquence d'images.
7. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que les données à transcoder sont des images de la séquence d'images. 10
8. Procédé selon la revendication précédente, caractérisé en ce que la dernière image à transcoder est située avant une image codée en mode "intra" dans la séquence d'images.
9. Dispositif de transmission de données codées représentant une séquence d'images numériques (300), une quantité prédéterminée desdites 15 données étant mémorisée dans une mémoire tampon (304) avant transmission sur un réseau de communication, ledit dispositif étant caractérisé en ce qu'il comporte des moyens de détermination d'un sous-ensemble de données de la mémoire tampon (304) à transcoder, en fonction d'au moins une grandeur représentative de la bande passante disponible pour ledit réseau de 20 communication.
10. Dispositif selon la revendication 9, caractérisé en ce que lesdits moyens de détermination comportent des moyens de calcul d'un couple de paramètres (K,X1) où le paramètre K représente l'indice de la première image à transcoder et X1 représente le nombre d'images à transcoder. 25
11. Dispositif selon la revendication 10, caractérisé en ce que lesdits moyens de calcul du couple de paramètres (K,X1) comportent des moyens pour calculer la valeur de K la plus faible possible et la valeur d'un paramètre X la plus grande possible de façon à toujours avoir i(t) < n(t), X étant le nombre d'images qu'il est possible de transcoder, i(t) désignant l'indice de l'image en cours de transmission en fonction du temps et n(t) désignant l'indice de l'image en cours de transcodage en fonction du temps. 2908585 16
12. Système de télécommunications comprenant une pluralité de dispositifs terminaux reliés à travers un réseau de télécommunications, caractérisé en ce qu'il comprend au moins un dispositif terminal équipé d'un dispositif de transmission selon la revendication 9, 10 ou 11. 5
13. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre d'un procédé de transmission selon l'une quelconque des revendications 1 à 8.
14. Moyen de stockage d'informations selon la revendication 13, 10 caractérisé en ce qu'il est partiellement ou totalement amovible.
15. Produit programme d'ordinateur pouvant être chargé dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé de transmission selon l'une quelconque des revendications 1 à 8, lorsque ce programme est chargé et 15 exécuté par l'appareil programmable.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0654918A FR2908585B1 (fr) | 2006-11-15 | 2006-11-15 | Procede et dispositif de transmission de donnees video. |
US11/939,846 US8379670B2 (en) | 2006-11-15 | 2007-11-14 | Method and device for transmitting video data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0654918A FR2908585B1 (fr) | 2006-11-15 | 2006-11-15 | Procede et dispositif de transmission de donnees video. |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2908585A1 true FR2908585A1 (fr) | 2008-05-16 |
FR2908585B1 FR2908585B1 (fr) | 2008-12-26 |
Family
ID=37836766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0654918A Expired - Fee Related FR2908585B1 (fr) | 2006-11-15 | 2006-11-15 | Procede et dispositif de transmission de donnees video. |
Country Status (2)
Country | Link |
---|---|
US (1) | US8379670B2 (fr) |
FR (1) | FR2908585B1 (fr) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2910211A1 (fr) * | 2006-12-19 | 2008-06-20 | Canon Kk | Procedes et dispositifs pour re-synchroniser un flux video endommage. |
FR2915342A1 (fr) * | 2007-04-20 | 2008-10-24 | Canon Kk | Procede et dispositif de codage video |
US8897364B2 (en) * | 2007-08-31 | 2014-11-25 | Canon Kabushiki Kaisha | Method and device for sequence decoding with error concealment |
FR2920632A1 (fr) * | 2007-08-31 | 2009-03-06 | Canon Kk | Procede et dispositif de decodage de sequences video avec masquage d'erreurs |
FR2929787B1 (fr) | 2008-04-04 | 2010-12-17 | Canon Kk | Procede et dispositif de traitement d'un flux de donnees |
FR2930387B1 (fr) * | 2008-04-17 | 2010-09-24 | Canon Kk | Procede de traitement d'un flux de donnees codes |
FR2932938B1 (fr) * | 2008-06-19 | 2012-11-16 | Canon Kk | Procede et dispositif de transmission de donnees |
US20100080286A1 (en) * | 2008-07-22 | 2010-04-01 | Sunghoon Hong | Compression-aware, video pre-processor working with standard video decompressors |
GB2505912B (en) * | 2012-09-14 | 2015-10-07 | Canon Kk | Method and device for generating a description file, and corresponding streaming method |
US10057346B1 (en) * | 2013-12-06 | 2018-08-21 | Concurrent Ventures, LLC | System, method and article of manufacture for automatic detection and storage/archival of network video |
WO2019192870A1 (fr) | 2018-04-05 | 2019-10-10 | Canon Kabushiki Kaisha | Procédé et appareil pour encapsuler des images ou des séquences d'images avec des informations propriétaires dans un fichier |
US10623791B2 (en) | 2018-06-01 | 2020-04-14 | At&T Intellectual Property I, L.P. | Field of view prediction in live panoramic video streaming |
US10812774B2 (en) | 2018-06-06 | 2020-10-20 | At&T Intellectual Property I, L.P. | Methods and devices for adapting the rate of video content streaming |
US10616621B2 (en) | 2018-06-29 | 2020-04-07 | At&T Intellectual Property I, L.P. | Methods and devices for determining multipath routing for panoramic video content |
US11019361B2 (en) | 2018-08-13 | 2021-05-25 | At&T Intellectual Property I, L.P. | Methods, systems and devices for adjusting panoramic view of a camera for capturing video content |
US10708494B2 (en) | 2018-08-13 | 2020-07-07 | At&T Intellectual Property I, L.P. | Methods, systems and devices for adjusting panoramic video content |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308222B1 (en) * | 1996-06-03 | 2001-10-23 | Microsoft Corporation | Transcoding of audio data |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058143A (en) * | 1998-02-20 | 2000-05-02 | Thomson Licensing S.A. | Motion vector extrapolation for transcoding video sequences |
US7369161B2 (en) * | 1999-06-08 | 2008-05-06 | Lightsurf Technologies, Inc. | Digital camera device providing improved methodology for rapidly taking successive pictures |
FR2812502B1 (fr) | 2000-07-25 | 2002-12-20 | Canon Kk | Insertion et extraction de message dans des donnees numeriques |
FR2816153B1 (fr) | 2000-10-27 | 2002-12-20 | Canon Kk | Procede de controle prealable de la detectabilite d'un signal de marquage |
US20020186769A1 (en) * | 2001-06-12 | 2002-12-12 | O'brien Royal | System and method for transcoding |
US7292602B1 (en) * | 2001-12-27 | 2007-11-06 | Cisco Techonology, Inc. | Efficient available bandwidth usage in transmission of compressed video data |
US7649937B2 (en) * | 2004-06-22 | 2010-01-19 | Auction Management Solutions, Inc. | Real-time and bandwidth efficient capture and delivery of live video to multiple destinations |
US7705884B2 (en) * | 2004-07-21 | 2010-04-27 | Zoran Corporation | Processing of video data to compensate for unintended camera motion between acquired image frames |
KR100689489B1 (ko) * | 2004-12-07 | 2007-03-02 | 삼성전자주식회사 | 연속적인 비디오 디스플레이를 위한 트랜스코딩 방법 |
US7616779B2 (en) * | 2005-11-09 | 2009-11-10 | National Chiao Tung University | Method for automatic key posture information abstraction |
FR2897741B1 (fr) | 2006-02-17 | 2008-11-07 | Canon Kk | Procede et dispositif de generation de donnees representatives d'un degre d'importance de blocs de donnees et procede et dispositif de transmission d'une sequence video encodee |
-
2006
- 2006-11-15 FR FR0654918A patent/FR2908585B1/fr not_active Expired - Fee Related
-
2007
- 2007-11-14 US US11/939,846 patent/US8379670B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308222B1 (en) * | 1996-06-03 | 2001-10-23 | Microsoft Corporation | Transcoding of audio data |
Non-Patent Citations (2)
Title |
---|
BAJIC I V ET AL: "Integrated end-to-end buffer management and congestion control for scalable video communications", PROCEEDINGS 2003 INTERNATIONAL CONFERENCE ON IMAGE PROCESSING. ICIP-2003. BARCELONA, SPAIN, SEPT. 14 - 17, 2003, INTERNATIONAL CONFERENCE ON IMAGE PROCESSING, NEW YORK, NY : IEEE, US, vol. VOL. 2 OF 3, 14 September 2003 (2003-09-14), pages 257 - 260, XP010670339, ISBN: 0-7803-7750-8 * |
PEDRO A A ASSUNCAÕ ET AL: "Transactions PapersA Frequency-Domain Video Transcoder for Dynamic Bit-Rate Reduction of MPEG-2 Bit Streams", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 8, no. 8, December 1998 (1998-12-01), XP011014522, ISSN: 1051-8215 * |
Also Published As
Publication number | Publication date |
---|---|
US8379670B2 (en) | 2013-02-19 |
US20080130739A1 (en) | 2008-06-05 |
FR2908585B1 (fr) | 2008-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2908585A1 (fr) | Procede et dispositif de transmission de donnees video. | |
EP0670663A1 (fr) | Procédé et dispositif de codage de signaux numériques représentatifs d'une séquence d'images | |
FR2975555A1 (fr) | Methode d'adaptation dynamique du debit de reception et recepteur associe | |
FR2897741A1 (fr) | Procede et dispositif de generation de donnees representatives d'un degre d'importance de blocs de donnees et procede et dispositif de transmission d'une sequence video encodee | |
FR2898757A1 (fr) | Procede et dispositif d'adaptation d'une frequence temporelle d'une sequence d'images video | |
FR2880745A1 (fr) | Procede et dispositif de codage video | |
FR2932938A1 (fr) | Procede et dispositif de transmission de donnees | |
FR2930387A1 (fr) | Procede de traitement d'un flux de donnees codes | |
FR2944938A1 (fr) | Procede et dispositif de correction d'erreurs. | |
FR2946820A1 (fr) | Procede de transmission de donnees et dispositif associe. | |
CN109769125B (zh) | 流媒体码率的动态调整方法、媒体服务器及转码服务器 | |
EP2947888A1 (fr) | Procédé de téléchargement adaptatif de contenus numériques pour plusieurs écrans | |
FR2923124A1 (fr) | Procede et dispositif de determination de la valeur d'un delai a appliquer entre l'envoi d'un premier ensemble de donnees et l'envoi d'un second ensemble de donnees | |
WO2006075070A1 (fr) | Procede et dispositif de codage video | |
EP3840335B1 (fr) | Réception d'un contenu numérique en mode truque | |
EP1172958A1 (fr) | Système de communication, émetteur, mèthode de protection contre des erreurs de transmission | |
CN103475906B (zh) | 用于多媒体流的测量方法和测量装置 | |
Thang et al. | Video streaming over HTTP with dynamic resource prediction | |
US20230048428A1 (en) | A method for estimating bandwidth between a video server and a video client | |
FR2914124A1 (fr) | Procede et dispositif de regulation du debit de codage de sequences d'images video vis-a-vis d'un debit cible | |
FR2941110A1 (fr) | Procede et dispositif de prediction d'un etat de pertes d'un reseau de communication | |
EP2811709A1 (fr) | Qualité de mesures d'expérience dans un réseau de télévision linéaire d'unidiffusion | |
WO2014155017A1 (fr) | Transcodage et diffusion adaptative de contenus multimédia | |
EP3843409A1 (fr) | Procede d'allocation pour liaison bas-debit | |
EP2536075B1 (fr) | Procédé de demande d'accès par un terminal à un contenu numérique apte à être téléchargé depuis un réseau. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20140731 |