Brevet FR2908585A1 — publié le 20080516

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) 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 REVENDICATIONS 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) 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 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) 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.